Nginx
重定向到另一台伺服器時,Nginx 似乎正在丟棄 HTTPS
我有兩台使用 nginx 配置的伺服器 A 和 B,每台都有域
a.domain.com
和b.domain.com
. B 的問題是它的 80 埠被阻塞了,所以我想我會重新路由所有請求,包括伺服器 A 到伺服器 B 的埠 80 和埠 443 流量,並在此過程中將其重寫為 HTTPS。這是我的嘗試。一種
server { listen 80; server_name a.domain.com location / { return 301 https://b.domain.com$request_uri; } } server { listen 443; server_name a.domain.com ssl on; ssl_certificate /* not shown */ ssl_certificate_key /* not shown */ location / { return 301 https://b.domain.com$request_uri; } }
乙
server { listen 443; server_name b.domain.com ssl on; ssl_certificate /* not shown */ ssl_certificate_key /* not shown */ location / { proxy_redirect http://127.0.0.1:8080 https://b.domain.com; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass_request_headers on; proxy_pass http://127.0.0.1:8080; # this is to tomcat proxy_set_header X-Real-IP $remote_addr; } }
問題是它不起作用。直接訪問類似
https://b.domain.com/folder
作品的東西,http://a.domain.com
然後https://a.domain.com
跳轉到https://b.domain.com
,但既不http://a.domain.com/folder
或也不https://a.domain.com/folder
按預期重定向(到https://b.domain.com/folder
)。在此過程中,如我的瀏覽器所示,HTTPS 方案被丟棄;但是因為伺服器 B 沒有埠 80 訪問請求超時。我認為值得注意的a.domain.com
是配置為使用萬用字元證書,而b.domain.com
配置為使用專用於子域的證書。幫助?
您忘記了 ssl 解除安裝:
server { listen 443 ssl; server_name b.domain.com