https经过nginx后struts跳转成http

因为ios审核政策的问题,决定上线https,上线后遇到了这个问题。

用户登录后会跳转到登录后页面,由于经过了nginx,后端tomcat实际上被访问的是http协议,所以出现了 用 https://xxxx.com/login.do 的请求,登录后跳转到 http://xxx.com/aftlog.do 这样的情况。代码使用的是struts2 的 redirect方法。

解决方法如下:

在tomcat的server.xml 的 connector 标签页里,增加 secure="true" scheme="https" proxyPort="443" 三个选项,直接重启tomcat即可。

这样所有访问到tomcat的请求,如果使用struts的redirect方法,都会跳转成https的方法。如果有和我一样,因为历史版本使用了http,新版本使用了https,因为证书的原因,http和https的域名发生了变化,那就要求http和https都要可以用,往下看:

解决方法如下:

在tomcat的server.xml配置文件中增加一个connector标签,内容和之前的一样即可,唯一的区别就是一个里面有https的三个参数,一个不带(这里要注意一下,2个connector的port不能一样,要不然端口冲突,tomcat起不来)。 这样,在前端配置nginx的时候,可以选择把来自http的请求转发到后端 不带https参数的connector 端口上, 把https的请求转发到带https参数的connector 端口上。

最后,建议在app版本更新多个之后取消http的connector,因为暂时还没有测试过增加一个connector对系统资源消耗有多大。

时间: 2024-10-11 00:02:17

https经过nginx后struts跳转成http的相关文章

Stuts2的"struts.devMode"设置成true后,不起作用的解决办法

不用 <constant name="struts.devMode" value="true" /> 改成 <constant name="struts.configuration.xml.reload" value="true"/> 有人说是因为tomcat加了空格的问题,具体不清楚. 下面是4个开发模式常用配置的简介--- <!-- 开启使用开发模式,详细错误提示 --> <!--

让超链接点击后不跳转,可以用href = &quot;#&quot;,但是这个#就会锚点到页面最上边 点击链接后不跳转可以设置成

让超链接点击后不跳转,可以用href = "#",但是这个#就会锚点到页面最上边     点击链接后不跳转可以设置成 1.<a href="javascript:void(0);" >javascript:void(0);</a> 2.<a href="javascript:;" >javascript:;</a> 3.<a href="" onclick="re

nginx http301强制跳转https、域名跳转到带www

http强制跳转到https在nginx配置文件添加:if ($scheme = http) {return 301 https://$server_name$request_uri;} Nginx跳转自动到带www域名规则配置:在nginx大server中添加server{listen 80;listen 443;server_name www.xx.com xx.com;if ($host != 'www.xx.com') {rewrite ^/(.*)$https://www.xx.com

Nginx强制http跳转https访问

Nginx强制http跳转https访问有以下几个方法 nginx的rewrite方法 可以把所有的HTTP请求通过rewrite重写到HTTPS上 配置 方法一 1 server{ 2 listen 80; 3 server_name XXXXX.com; //你的域名 4 rewrite ^(.*)$ https://XXXXXX.com permanent; 5 location ~ / { 6 index index.html index.php index.htm; 7 } 8 } 方

Nginx 实现 Rewrite 跳转

文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 上一篇文章对Nginx的Location配置进行了讲解,本篇主要对于Nginx中的Rewrite跳转进行讲解.因为目前很多工作前端开发都会选择使用Nginx作为反向代理服务器,但是平时业务需要难免碰到重写URL,Nginx的Rewrite跳转有什么使用场景呢? 公司更换域名需要访问旧域名时跳转到新域名 请求静态文件跳转到CDN 根据用户设备不同跳转到不同站点(pc端,移动端) 不得不说的是Apache服务器

js alert()后进行跳转的方法

如果alert()之后再进行跳转本页,按以下方法你将等不到alert(),浏览器就本身刷新本页面了 <script type="text/javascript"> alert("你的资料已经录入!"); window.location.reload(); </script> 想要弹出alert()后再跳转就用window.location.href="http://baidu.com"; ,改成下面方法 就OK了. ale

56.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

#include<iostream> using namespace std; int main() { float sum=0;//注意声明成浮点型 float n=100.0; for(int i=1;i<=10;i++) { sum+=n; n=n*0.5; } cout<<"第十次落下时,经过"<<sum<<"米"<<endl; cout<<"第十次反弹"<

FastDFS整合nginx后,nginx一直报错

FastDFS整合nginx后,nginx一直报错: 报错内容: [2018-06-11 09:41:21] ERROR - file: ../common/fdfs_http_shared.c, line: 148, param "http.mime_types_filename" not exist or is empty 处理过程: #include http.conf是写在/etc/fdfs/mod_fastdfs.conf里,然而在 /etc/fdfs目录中没有 http.c

js input框输入1位数字后自动跳到下一个input框聚焦

// input框输入1位数字后自动跳到下一个input聚焦 function goNextInput(el){ var txts = document.querySelectorAll(el); for(var i = 0; i<txts.length;i++){ var t = txts[i]; t.index = i; t.setAttribute("readonly", true); t.onkeyup=function(){ this.value=this.value.