我有一个端点https://app1.company.com:5555
,并且希望能够使用 URL 中的端口号浏览网站的所有页面,并且还能够在不使用端口号的情况下浏览,比如说其他的 server_namehttps://dev-app1.company.com
例如https://app1.company.com:5555/tag/general
,https://dev-app1.company.com/categories/ulmighty
应该都可以
无论何时,我如何让 nginx 重定向并在端口存在时保留端口名称?
目前有这个
server {
listen 80;
server_name dev-app1.company.com app1.company.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name dev-app1.company.com app1.company.com;
location ^~ / {
rewrite ^/(.*)$ /$1 break;
proxy_pass http://localhost:9090;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}
但问题是它不使用端口号进行重定向,我希望它能够使用 url 中的端口号进行重定向,只要服务在该端口上运行并且它在该5555
端口上运行
更新:
应用程序已在监听端口 5555,我可以在这里访问https://app1.company.com:5555
当我有这个的时候
server {
listen 80;
server_name app1.company.com;
return 301 https://app1.company.com:5555$request_uri;
}
但现在我想添加更多服务器名称,这样我也可以访问其他服务器名称而无需任何端口
答案1
可以通过为标准和非标准端口设置额外的服务器块来解决这个问题
这是最终设置
server {
listen 80;
server_name dev-app1.company.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name dev-app1.company.com;
location ^~ / {
rewrite ^/(.*)$ /$1 break;
proxy_pass http://localhost:9090;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}
server {
listen 80;
server_name app1.company.com;
return 301 https://app1.company.com:5555$request_uri;
}
server {
listen 443 ssl;
server_name app1.company.com;
location ^~ / {
rewrite ^/(.*)$ /$1 break;
proxy_pass http://localhost:9090;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}