2017-09-18 3 views
0

Fonctionne de l'extérieur (ipv4).Impossible de se connecter à mon serveur Web depuis le réseau local

Ma configuration de nginx doit être foirée, puisque lorsque je recherche 192.168.xxx.xxx (adresse de mon serveur web), je suis redirigé vers le DNS de ma page d'accueil. Même si j'utilise «localhost» ou «0.0.0.0» dans la barre de mon navigateur sur le serveur Web lui-même, cela ne fonctionne pas.

Quelqu'un peut-il me dire comment résoudre correctement ce problème? Si j'insère autre chose que "cooldomain.com", il ne sera pas accessible de l'extérieur, n'est-ce pas? Mais il doit y avoir une solution.

Le serveur nginx s'exécute dans un conteneur docker basé sur l'image officielle nginx.

Ceci est mon fichier de configuration nginx:

server { 
    listen 80; 
    listen 443 ssl http2; 
    server_name cooldomain.com; 
    ssl_protocols TLSv1.2; 
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; 
    ssl_prefer_server_ciphers On; 
    ssl_certificate /usr/share/nginx/fullchain.pem; 
    ssl_certificate_key /usr/share/nginx/privkey.pem; 
    ssl_trusted_certificate /usr/share/nginx/chain.pem; 
    ssl_session_cache shared:SSL:128m; 
    add_header Strict-Transport-Security "max-age=31557600; includeSubDomains"; 
    ssl_stapling on; 
    ssl_stapling_verify on; 

    # Your favorite resolver may be used instead of the Google one below 
    # resolver 8.8.8.8; 
    # /usr/share/nginx/html; 
    # index index.html; 

    # charset koi8-r; 
    # access_log /var/log/nginx/host.access.log main; 

    location/{ 
    if ($scheme = http) { 
      return 301 https://$server_name$request_uri; 
     } 
     root /usr/share/nginx/html; 
     # index index.html index.htm; 
    try_files $uri$args $uri$args/ /index.html; 
    } 

    #error_page 404    /404.html; 

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

Edit:

Sortie de docker ps:

faXXXXX nginx "nginx -g 'daemon off" 14 minutes ago, up 14 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp webserver (c'est malheureusement pas une pâte de copie)

sortie de curl -v http://127.0.0.1:

$ curl -v http://127.0.0.1 
Rebuilt URL to: http://127.0.0.1/ 
Trying 127.0.0.1... 
Connected to 127.0.0.1 (127.0.0.1) port 80 (#0) 
GET/HTTP/1.1 
Host: 127.0.0.1 
User-Agent: curl/7.47.0 
Accept: 

HTTP/1.1 301 Moved Permanently 
Server: nginx/1.13.3 
Date: Wed, 20 Sep 2017 15:46:55 GMT 
Content-Type: text/html 
Content-Length: 185 
Connection: keep-alive 
Location: https://cooldomain.com/ 
Strict-Transport-Security: max-age=31557600; includeSubDomains 

Connection #0 to host 127.0.0.1 left intact 
+0

Est-ce que cela fonctionne dans une machine virtuelle? Veuillez détailler l'infrastructure –

+0

Vous avez un bloc 'if' qui redirige vers' server_name' - que se passe-t-il si vous le supprimez? –

+0

@TarunLalwani Dans un conteneur docker, oui. :) Ajouté à la question. – codepleb

Répondre

0

J'ai réussi à contourner ce problème. Je ne sais pas si c'est la bonne façon de le faire, mais ça fait l'affaire.

J'ai ajouté un autre bloc de serveur avant mon bloc de serveur, qui a le préfixe default_server.

Si vous avez une meilleure idée, n'hésitez pas à écrire une réponse. :)

Voici à quoi ressemble mon fichier de configuration. Faites attention au premier bloc:

server { 
    listen 80; 
    server_name 127.0.0.1 default_server; 

    location/{ 
     root /usr/share/nginx/html; 
     index index.html index.htm; 
    } 

    #error_page 404    /404.html; 

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

server { 
    listen 80; 
    listen 443 ssl http2; 
    server_name cooldomain.com; 
    ssl_protocols TLSv1.2; 
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; 
    ssl_prefer_server_ciphers On; 
    ssl_certificate /usr/share/nginx/fullchain.pem; 
    ssl_certificate_key /usr/share/nginx/privkey.pem; 
    ssl_trusted_certificate /usr/share/nginx/chain.pem; 
    ssl_session_cache shared:SSL:128m; 
    add_header Strict-Transport-Security "max-age=31557600; includeSubDomains"; 
    ssl_stapling on; 
    ssl_stapling_verify on; 

    # Your favorite resolver may be used instead of the Google one below 
    # resolver 8.8.8.8; 
    # /usr/share/nginx/html; 
    # index index.html; 

    # charset koi8-r; 
    # access_log /var/log/nginx/host.access.log main; 

    location/{ 
    if ($scheme = http) { 
      return 301 https://$server_name$request_uri; 
     } 
     root /usr/share/nginx/html; 
     # index index.html index.htm; 
    try_files $uri$args $uri$args/ /index.html; 
    } 

    #error_page 404    /404.html; 

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