首页 > 代码库 > 如何将https服务所在主机进行nginx配置,完成路由
如何将https服务所在主机进行nginx配置,完成路由
如何将https服务所在主机进行nginx配置,完成路由。如以我自己曾今的部署环境为例。
第一步:将安全证书上传至nginx服务器。如当前路径下/app/opt/nginx/cert/;
第二步:nginx配置文件进行配置,添加以下模块
upstream https_sso {
server 171.96.188.162:6078;//sso服务对应的主机和端口号
}
# HTTPS server
#
server {
listen 9061 ssl; //9091为访问nginx的接口
server_name sso1.zjtelecom.com.cn;
ssl_certificate /app/opt/nginx/cert/server.crt; //安全证书所在路径
ssl_certificate_key /app/opt/nginx/cert/server.key;
ssl_protocols TLSv1;#SSLv3;#TLSv1;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_connect_timeout 240;
proxy_send_timeout 240;
proxy_read_timeout 240;
# note, there is not SSL here! plain HTTP is used
proxy_pass https://https_sso;
}
}
在配这里之前,sso所在的tomcat是已经配置支持https的。
第三步,重启nginx ,便可以通过检验nginx配置是否成功
检验示例:配置nginx前访问路径:https://171.96.188.162:6078/login
配置nginx后,通过nginx路由访问:https://171.96.188.160:9091/login
注意:nginx所在主机为171.96.188.160:9091
Nginx做proxy,后端基于rack时候丢失端口号的问题及解决方案
server {
listen
4567;
server_name
192.168.0.2;
location
/ {
proxy_set_header
Host $host:$server_port;
proxy_set_header
X-Real-IP $remote_addr;
proxy_set_header
REMOTE-HOST $remote_addr;
proxy_set_header
X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass
http://backend_server;
}
}
问题产生的原因是: Nginx没有正确的把端口信息传送到后端,没能正确的配置nginx。
proxy_set_header Host $host:$server_port; 这一行是关键。
如何将https服务所在主机进行nginx配置,完成路由