【问题标题】:Nginx subdomain only work when port number is addedNginx 子域仅在添加端口号时有效
【发布时间】:2019-12-12 07:45:00
【问题描述】:

我创建了一个网站 (Nginx),一切正常,除了当我尝试浏览子域时,似乎连子域前缀都像“www”一样受到威胁,因为它总是指向主域,除非我添加端口号。

ex : example.com => 带我到主页。一切顺利

sub.example.com => 带我到主页。不好

sub.example.com:3000 => 带我去子域...很好但不实用,我想在没有 ":3000" 的情况下达到相同的结果

server {
    listen 80;
    listen [::]:80;
    server_name *.example.com;
    return 301 https://$host$request_uri;
    location / {
        proxy_pass http://localhost:3000/;
    }
}
server{
    listen 443 ssl;
    server_name *.sexample.com example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    location / {
        proxy_pass http://localhost:3000/;
        try_files $uri $uri/ =404;
    }
}

我忘了提到我正在使用通配符子域来处理子域请求

【问题讨论】:

  • 所以example.comsub.example.com 都指向http://localhost:3000localhost:3000 如何知道请求是通过子域发出的?可能需要加proxy_set_header Host $host;
  • 我使用通配符子域,在我删除服务器之前,它工作正常。子域是动态创建的,我的意思是无论您输入什么前缀,路由器都可以处理它并显示正确的输出

标签: nginx subdomain wildcard-expansion


【解决方案1】:

我刚刚发现我的旧文件设置有点隐藏在我的计算机中,我添加了这个:

proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade; 

在“位置/”块中,现在它就像一个魅力,所以如果你们中的任何人。明白这意味着什么,请随时详细说明

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 2015-05-31
    • 2014-07-02
    • 2011-01-12
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    相关资源
    最近更新 更多