1. 程式人生 > >如何將https服務所在主機進行nginx配置,完成路由

如何將https服務所在主機進行nginx配置,完成路由

key upstream com 自己 端口號 -h nginx服務器 ima x-real-ip

如何將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

Nginxproxy,後端基於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配置,完成路由