我有一个网站,允许用户为他们的网站创build投资组合,他们只需在他们的域名上更改他们的Alogging,并将我的服务器IP地址logging到他们的logging中,并将映射到他们的网站(user1.example.com)。 我的问题是,我购买了一个域来testing(example.com),它将它们路由到我的实际网站的主页,您可以使用此服务。
用户访问他们的网站的唯一方法是通过: http://example.com:3000
: http://example.com:3000
: http://example.com:3000
是我的Node.js应用程序运行的端口。 我的Nginxconfiguration如下,有人可以扔我骨头?
server { listen 80; listen 443 ssl; listen [::]:443 ssl; ssl_certificate /etc/nginx/ssl/example.com/cert_chain.crt; ssl_certificate_key /etc/nginx/ssl/example.com/example.com.key; server_name example.com *.example.com ""; access_log /var/log/nginx/nginx.vhost.access.log; error_log /var/log/nginx/nginx.vhost.error.log; root /opt/33i/; # Perfect forward secrecy ssl_prefer_server_ciphers on; ssl_dhparam /etc/nginx/ssl/example.com/dhparams.pem; ssl_ciphers ; # HSTS add_header Strict-Transport-Security "max-age=31536000; includeSubdomains"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header X_FORWARDED_PROTO https; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Url-Scheme $scheme; proxy_redirect off; proxy_max_temp_file_size 0; } }
有任何想法吗? 这一直使我疯狂!
我认为这个问题可能在server_name
行上。
正如目前所实施的,它符合以下几种请求:
Host:
标题是example.com
Host:
标题以.example.com
结尾 Host:
头失踪 这意味着这个configuration不匹配任意域,这看起来像你想要发生的事情。
现在,很可能你的configuration中有另一个server
块:
listen 443 ssl default_server;
包含此伪指令的虚拟主机是未匹配请求的全部虚拟主机。
因此,要解决您的问题,您需要从现在的server
块中删除default_server
指令,并将default_server
添加到此块的listen
指令中。