2017-09-18 5 views
0

외부 (ipv4)에서 작동합니다.로컬 네트워크 내 웹 서버에 연결할 수 없습니다.

192.168.xxx.xxx (내 웹 서버 주소)를 검색 할 때 내 홈페이지의 DNS로 전달되므로 내 nginx 구성이 엉망입니다. 웹 서버 자체의 브라우저 막대에서 "localhost"또는 "0.0.0.0"을 사용하더라도 작동하지 않습니다.

아무도 제대로 이것을 해결하는 방법을 말해 줄 수 있습니까? "cooldomain.com"이외의 다른 것을 삽입하면 외부에서 연결할 수 없습니다. 맞습니까? 그러나 해결책이 있어야합니다.

nginx 서버는 공식 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; 
    } 
} 

편집 :

출력 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 (이 슬프게 복사 붙여 넣기하지 않습니다)

출력

내의 nginx 설정 파일입니다 컬 -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

VM에서 실행되고 있습니까? 인프라를 상세히 기재하십시오 –

+0

'server_name '으로 리디렉션되는'if' 블록이 있습니다 - 제거하면 어떻게됩니까? –

+0

@ TarunLalwani 도커 컨테이너에서 예. :) 질문에 추가했습니다. – codepleb

답변

0

나는 그것을 해결할 수있었습니다. 이것이 올바른 방법인지는 모르겠지만 일을합니다.

default_server 접두사가있는 서버 블록 앞에 다른 server-block을 추가했습니다.

더 좋은 아이디어가 있으면 언제든지 답변을 작성하십시오. :)

이것은 내 설정 파일이 지금 보이는 방법입니다. 첫 번째 블록에 유의하십시오.

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; 
    } 
} 
관련 문제