AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 997450
Accepted
Steve Yakovenko
Steve Yakovenko
Asked: 2020-01-03 23:39:01 +0800 CST2020-01-03 23:39:01 +0800 CST 2020-01-03 23:39:01 +0800 CST

nginx 忽略 server_name 和 default_server

  • 772

我想为同一个 IP 的两个域提供服务。这是我的配置:

http {
    log_format  main  '$server_name $remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80;
        listen       [::]:80;
        server_name  mysite1.com;
        root         /usr/share/nginx/html;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        location / {
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
    server {
       listen 80;
       listen [::]:80;
       server_name mysite2.com;
       root /var/www/mysite2.com;
       access_log  /var/log/nginx/mysite2.com  main;
    }    
    server {
        listen       8443 ssl;
        listen       [::]:8443 ssl;
        server_name  mysite1.com;
        client_max_body_size 232m;
        ssl_certificate "/etc/pki/nginx/all.crt";
        ssl_certificate_key ....
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
        location /static/ {
            proxy_cache_revalidate on;
            alias /usr/share/nginx/static/;
            add_header Vary Accept-Encoding;
            open_file_cache_valid 1s;
        }        
        location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass https://127.0.0.1:9443;
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

问题是我永远无法获得 /var/www/mysite2.com/index.html 的内容。我总是得到 mysite1 的内容。如果我将 mysite2.com 切换到端口 81,那么它会在端口 81 上提供正确的页面,因此该服务器块可以正常工作。我尝试将 default_site 设置为 mysite2,但这并没有帮助,我一直从 mysite1 获取内容。同样在日志中,我从未看到对 mysite2 的请求,即使它正在被提供(/var/log/nginx/mysite2.com 为空)。

我怎样才能解决这个问题?尝试谷歌搜索,阅读其他答案,没有任何帮助。

nginx
  • 1 1 个回答
  • 417 Views

1 个回答

  • Voted
  1. Best Answer
    Steve Yakovenko
    2020-01-22T23:49:23+08:002020-01-22T23:49:23+08:00

    我已经设法解决了这个问题。问题不在于 nginx 设置本身,而在于有另一台服务器正在运行(应该是隧道的那个)。并且另一台服务器占用了 http 端口,nginx不会警告您该端口已被占用,因此不太容易注意到。可能这种情况可能对任何人来说都是一种情况。

    • 0

相关问题

  • Gzip 与反向代理缓存

  • nginx 作为代理的行为

  • Nginx 学习资源 [关闭]

  • 提供 70,000 个静态文件 (jpg) 的最佳方式?

  • 在 Apache、LightTPD 和 Nginx Web 服务器上提供 PHP 5.x 应用程序的现状?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve