Node.js nginx反向代理重定向到错误的域

Node.js nginx反向代理重定向到错误的域,node.js,nginx,Node.js,Nginx,我使用本教程使用nginx设置节点站点。这就是我的nano/etc/nginx/conf.d/mydomain.com.conf的样子 server { listen 80; server_name mydomain.com; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Con

我使用本教程使用nginx设置节点站点。这就是我的nano/etc/nginx/conf.d/mydomain.com.conf的样子

server { 
listen 80;
server_name mydomain.com;
location / { 
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; 
} 
}
问题是,当我访问我的域时,它会重定向到我在同一服务器上设置的另一个域。我使用使用服务器块的设置其他域(静态页面)。 我注意到的一个区别是,nginx反向代理教程没有在可用站点和已启用站点之间进行任何这种符号链接,而虚拟主机教程对服务器块文件进行了这种链接。虚拟主机教程指导读者创建服务器块文件,然后像这样启用它们

sudo ln -s /etc/nginx/sites-available/demo /etc/nginx/sites-enabled/demo
在使用nginx设置反向代理时,是否需要执行任何操作才能启用配置文件?如果没有,你知道为什么它会重定向到其他域吗

/etc/nginx/conf.d/mydomain.com.conf

让我从一个关于nginx如何匹配主机的小解释开始,引用

在此配置中,nginx仅测试请求的头字段 “主机”,以确定请求应路由到哪个服务器。如果 其值与任何服务器名称都不匹配,或者请求不匹配 如果不包含此标头字段,则nginx将请求路由到 此端口的默认服务器

根据你的描述我认为有两种可能

  • 或者该反向代理虚拟主机的名称错误,因此不匹配,请求被定向到侦听端口80的第一个虚拟主机
  • 反向代理正确,但未加载配置

  • 要修复此问题,请仔细检查此行是否正确
    server\u name mydomain.com
    并确实匹配您请求的URL,然后确保您重新加载了nginx设置
    sudo服务nginx reload

    问题是/etc/nginx/conf.d/mydomain.com.conf没有被复制到

    /etc/nginx/sites-enabled