无法从本地网络连接到我的网络服务器

时间:2017-09-18 23:36:24

标签: nginx dns webserver router nat

它适用于外部(ipv4)。

我的nginx配置必须弄乱,因为当我浏览192.168.xxx.xxx(我的网络服务器的地址)时,我会转发到我的主页的DNS。即使我使用" localhost"或" 0.0.0.0"在网络服务器本身的浏览器栏中,它不起作用。

谁能告诉我如何妥善解决这个问题?如果我插入除了" cooldomain.com"以外的任何内容,它就无法从外部访问,对吧?但必须有一个解决方案。

nginx服务器在docker容器中运行,该容器基于官方的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 (遗憾的是,这不是复制粘贴)

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

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。我不知道这是否是正确的方法,但它确实起到了作用。

我在服务器块之前添加了另一个服务器块,它具有default_server前缀。

如果您有更好的主意,请随时写一个答案。 :)

这就是我的配置文件现在的样子。注意第一个块:

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;
    }
}