nginx endereço de proxy reverso / porta já em uso

2

Eu tenho um proxy reverso nginx, e gostaria de ter o tráfego encaminhado para vários sites e ouvir na porta 443 todos esses serviços. Eu já vi isso feito vários lugares, e parece ser o caminho normal para ter uma configuração de proxy reverso ... ele escuta em uma única porta e encaminha com base na URL.

No entanto, tenho algumas configurações que considero um pouco estranhas porque tenho um site que usa a validação do NTLM por meio de um site do IIS e, por isso, estou usando ngstream Stream

Aqui estão meus arquivos de configuração atuais:

/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-disponíveis / padrão

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://;

        }
}

Quando eu vou reiniciar o nginx, recebo o erro

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

Eu pensei que sob cada server você poderia ouvi-lo na mesma porta, mas isso parece não estar funcionando.

Se eu remover o fluxo todos juntos e usar apenas dois outros sites que não usam fluxo, isso parece funcionar bem com várias seções server .

    
por trueCamelType 22.02.2016 / 20:44

1 resposta

0

De acordo com a documentação oficial - Diferentes servidores devem ouvir em endereços diferentes: pares de portas .

    
por 22.02.2016 / 20:54