公司做的小程序项目到部署的时候发现必须要用https协议,这个时候就在阿里云上申请了免费版本的SSL证书,这里证书的申请就不做介绍了,下面直接看怎么处理资源加载问题,从nginx和tomcat的配置文件入手。
1.nginx配置vhost.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
反向代理服务1 upstream monitor_server { server 127.0.0.1:7080;//代理7080端口 } server { listen 443 ssl; server_name www.xxx.cn;//你的域名 ssl_certificate /home/xxx.crt;//crt证书,我放在home文件下 ssl_certificate_key /home/xx.key;//key ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;//这个TLSv1.2必须大于1.2,不然有的检测不通过 ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; error_page 497 https://$host$uri$args; location /项目名{ proxy_pass http://monitor_server/项目名 ; proxy_set_header Host $host; proxy_connect_timeout 4s; proxy_read_timeout 7200s; proxy_send_timeout 12s; proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; client_max_body_size 100m; root html; index index.jsp index.html; } location /{ proxy_pass http://monitor_server/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_redirect http:// $scheme://; #做https跳转 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; #反向代理时透传给后端tomcat,用户使访问协议,tomcat后面也需要添加配置接收此参数 client_max_body_size 100m; root html; index index.jsp index.html; } } server { listen 80;//监听80端口 server_name 你的域名;//用的是www.XXX.cn二级域名 location /{ rewrite ^(.*)$ https://$host$1 last;//这里是强制跳转https } } |
2.nginx的配置文件nginx.conf
1 2 3 |
在nginx.conf最下面添加 ########################## vhost ############################# include vhost.conf;//引入上面的文件,这个是在同一个文件夹里 |
3.接下来配置tomcat的server.xml文件
1 2 3 4 |
修改1 <Connector port="7080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="7443" proxyPort="443"/>;//加一个proxyPort="443"代理端口 |
1 2 3 4 5 6 |
修改2 在host标签里加一句 <Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/>;//大概表示tomcat也仿https请求,这样源代码就不需要改的 |
重启tomcat和nginx,然后输入项目地址就正常访问了,最后注意安全组的端口是否开启
发表评论
要发表评论,您必须先登录。