我正在使用本教程nginx reverse proxy tutorial来设置带有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 virtual hosts tutorial设置其他域(静态页面)。 我注意到的一个区别是nginx反向代理教程没有在可用站点和启用的站点之间执行任何此符号链接,虚拟主机教程使用服务器块文件执行这些符号。虚拟主机教程指示读者创建服务器块文件,然后像这样启用它们
sudo ln -s /etc/nginx/sites-available/demo /etc/nginx/sites-enabled/demo
在使用nginx设置反向代理时,是否必须执行任何操作才能启用配置文件?如果没有,你知道为什么它会重定向到另一个域吗?
/etc/nginx/conf.d/mydomain.com.conf
答案 0 :(得分:1)
首先让我先简单介绍nginx如何与主机匹配,引用how nginx processes a request
在此配置中,nginx仅测试请求的标头字段 “主机”确定应将请求路由到哪个服务器。如果 它的值与任何服务器名称都不匹配,或者请求不匹配 根本包含此标头字段,然后nginx将请求路由到 此端口的默认服务器。
根据你的描述,我会说有两种可能性,
要修复此问题,请检查此行是否正确server_name mydomain.com;
并确实与您请求的网址相匹配,请确保重新加载nginx设置sudo service nginx reload
答案 1 :(得分:0)
问题是/etc/nginx/conf.d/mydomain.com.conf尚未复制到
/etc/nginx/sites-enabled