nginx 无法从公共 IP 访问,但位于 127.0.0.1

nginx 无法从公共 IP 访问,但位于 127.0.0.1

我正在尝试将 nginx 设置为对在 IIS 上运行的站点进行 HTTP 身份验证的反向代理。我修改了绑定http.sys以及我的 IIS 站点绑定,以便 nginx 可以成功侦听端口 80。

当我从服务器访问 http:// 127.0.0.1 时,我会按预期获得 nginx HTTP 身份验证对话框,如果我提供凭据,它会按预期代理到我的 IIS 应用程序。如果我访问 http:// localhost:8080,我会按预期获得我的 IIS 应用程序。

但是,尝试从另一台机器访问该站点时无法连接。我尝试完全禁用防火墙,但这也无济于事。这是我的 nginx 配置:

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    server {
        listen       0.0.0.0:80;
        server_name  localhost;

        location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost:8080/;
            auth_basic           "closed site";
            auth_basic_user_file htpasswd;
        }

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

答案1

改成。listen 0.0.0.0:80;listen *:80;

参考:http://nginx.org/en/docs/http/ngx_http_core_module.html#listen

相关内容