我有一个在端口9094上运行的nginx服务器,它侦听映射到etc/hosts
文件中的localhost的服务器名称。
server {
listen 9094;
listen [::]:9094;
server_name www.myserver.local;
port_in_redirect off;
server_name_in_redirect off;
proxy_set_header Host $host:$server_port;
location /portal/foreman/ {
rewrite ^/portal/foreman(.*)$ $1 break;
proxy_pass http://localhost:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /api/ {
rewrite ^/api(.*)$ $1 break;
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /login {
rewrite ^/login(.*)/$ /$1 permanent;
proxy_pass http://localhost:3000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
在我的/etc/hosts
文件中,我有以下条目
127.0.0.1 www.myserver.local
当我输入www.myserver.local:9094
时,一切正常,重定向。有人可以帮我一个方法,我可以删除端口号,事情仍然有效,例如:www.myserver.local / login会将我直接重定向到我的登录页面..
当我在浏览器中运行www.myserver.local时,浏览器会显示错误消息,拒绝连接
答案 0 :(得分:1)
浏览器使用这三个端口之一。
因此,如果您想从浏览器访问非标准端口,则需要在URL中指定端口。否则它不会起作用。
答案 1 :(得分:1)
您必须更改配置以侦听端口80和重新启动nginx。配置应如下所示
server {
listen 80;
listen [::]:80;
使用netstat -tulpn | grep 80
确保服务器正在侦听此端口