【发布时间】: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.com和sub.example.com都指向http://localhost:3000。localhost:3000如何知道请求是通过子域发出的?可能需要加proxy_set_header Host $host; -
我使用通配符子域,在我删除服务器之前,它工作正常。子域是动态创建的,我的意思是无论您输入什么前缀,路由器都可以处理它并显示正确的输出
标签: nginx subdomain wildcard-expansion