nginx的反向代理重定向到错误的域(nginx reverse proxy redirecting

2019-10-19 05:15发布

我使用本教程nginx的反向代理教程设置nginx的一个节点部位。 这就是我的纳米/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的虚拟主机教程使用服务器块。 一个区别我注意到的是nginx的反向代理教程没有做任何可用的网站和网站之间的符号链接的启用该虚拟主机教程并与服务器块文件。 虚拟主机教程指导读者创建服务器块文件,然后让他们像这样

sudo ln -s /etc/nginx/sites-available/demo /etc/nginx/sites-enabled/demo

难道我做任何事情,以使配置文件设置了nginx的反向代理的时候? 如果没有,你知道为什么它重定向到其他域?

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

Answer 1:

让我先nginx怎么主机相匹配,从报价准备一个小的说明nginx怎么处理的请求

在这种配置nginx的测试,只有请求的报头字段“主机”,以确定哪些服务器的请求应该被路由到。 如果它的值不匹配任何服务器的名称,或请求不包含这个头域的话,那么nginx的意愿将请求路由到默认的服务器此端口。

根据你的描述,我会说有两种可能性,

  1. 要么这个反向代理虚拟主机有一个错误的名字,所以它不匹配,且请求定向到端口80上侦听的第一个虚拟主机。
  2. 反向代理是正确的,但没有加载的配置。

为了解决这个问题仔细检查,这条路线是正确的server_name mydomain.com; 并且确实符合您所请求的网址,然后确保你重新加载nginx的设置sudo service nginx reload



Answer 2:

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

/etc/nginx/sites-enabled


文章来源: nginx reverse proxy redirecting to wrong domain
标签: node.js nginx