nginx 无法通过蜂窝数据连接为网站提供服务

nginx 无法通过蜂窝数据连接为网站提供服务

我有一个运行 nginx 的 Web 服务器。如果我通过 wifi 连接访问该网站,它会加载该网站。如果我使用手机上的 LTE 访问它,它只会显示默认的“欢迎使用 nginx!”页面

这是我的站点配置文件:

server {
    listen 80;
    listen 443 ssl;
    server_name {mysite.com};

    root   /path/to/public;
    index  index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
        include   /etc/nginx/conf.d/php-fpm;
    }

    ssl_certificate /etc/letsencrypt/live/{mysite.com}/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/{mysite.com}/privkey.pem;
}

答案1

那个“欢迎”让我怀疑 nginx 没有读取Host请求中的标头,并且响应是默认的虚拟主机定义(即欢迎消息)。

删除默认的 vhost,在 Debian 上应该是:

rm /etc/nginx/sites-enabled/default

然后添加default_server到您的站点 vhost 定义:

listen 80 default_server;
listen 443 ssl default_server;

重新加载:nginx -s reload

使用 curl 测试:

curl -H "Host: mysite.com" mysite.com
curl mysite.com

第一个请求发送主机标头,第二个不发送。两个请求应该返回相同的结果,因为 mysite.com 现在是端口 80 和 443 的默认服务器(端口有一个 default_server)。

这就像一种蛮力方法,更聪明的方法是调试请求,如果所有设置都正确,这种情况就不会发生。

相关内容