nginx 反向代理地址/端口已被使用

nginx 反向代理地址/端口已被使用

我有一个 nginx 反向代理,我想让它将流量转发到多个站点,并在端口 443 上监听所有这些服务。我在几个地方都见过这种做法,这似乎是设置反向代理的正常方式……它监听单个端口,并根据 URL 进行转发。

但是,我认为有些设置有点奇怪,因为我有一个网站通过 IIS 网站使用 NTLM 验证,因此我正在使用nginx 流

这是我当前的配置文件:

/opt/nginx/nginx.conf

stream {
    upstream backend {
        hash $remote_addr consistent;
        server mysite.domain.com:80 weight=5;
        server 192.168.0.5 max_fails=3 fail_timeout=30s;
    }

    server {
        listen 192.168.0.2:443 ssl;
        ssl_certificate /usr/local/nginx/conf/mycert.crt;
        ssl_certificate_key /usr/local/nginx/conf/mykey.key;
        ssl_session_cache shared:SSL:10m;

        ssl_session_timeout 5m;

        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass backend;
    }
}

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

    sendfile on;
    keepalive_timeout 65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
    include /opt/nginx/sites-enabled/*;
}

/opt/nginx/sites-available/default

server {
        listen 80 default;
        server_name _;
        return 301 https://$host$request_uri;
}

server {

        listen 192.168.0.2:443 ssl;
        server_name myothersite.domain.com;

        ssl_certificate /usr/local/nginx/conf/mycert.crt;
        ssl_certificate_key /usr/local/nginx/conf/mykeykey;

        ssl_session_timeout 5m;

        ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
        ssl_prefer_server_ciphers on;

        location / {
                proxy_pass http://192.168.0.6:80;
                proxy_set_header Host $host;

                proxy_redirect http:// $scheme://;

        }
}

当我重新启动 nginx 时,出现错误

bind() to 127.0.0.1:443 failed (98: Address already in use)

我认为在每个端口下都server可以让它监听同一个端口,但这似乎不起作用。

如果我把流全部删除,只使用另外两个不使用流的站点,这似乎可以很好地处理多个server部分。

答案1

根据官方文档- 不同的服务器必须监听不同的地址:端口对

相关内容