Nginx不会将自定义域请求转发到正确的端口

我有一个网站,允许用户为他们的网站创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指令中。