从非标准端口上的 nginx 运行 中删除端口号

Removing Port number from nginx running on non standard port

我在端口 9094 上有一个 nginx 服务器 运行ning,它侦听映射到 etc/hosts 文件中的本地主机的服务器名称。

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(.*)$  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(.*)$  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(.*)/$ / 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 在我的浏览器中时,浏览器给出一个错误提示,拒绝连接

浏览器使用这三个端口之一。

  1. 80(HTTP)
  2. 443 (HTTPS) 或
  3. 8080(备用 HTTP)

所以如果你想从浏览器访问非标准端口,你需要在url中指定端口。否则它不会工作。

您必须更改配置以侦听端口 80 并重新启动 nginx。配置应如下所示

server {
        listen 80;
        listen [::]:80;

使用netstat -tulpn | grep 80确保服务器正在侦听此端口