Nginx 反向代理设置

10

我对Nginx完全不懂,需要你的帮助。 基本上我有一台单独的服务器和一个IP地址,但是我想在这个服务器上托管两个不同的Web应用程序,并使用不同的域名。 因此,对于每个域名,我想将其重定向到不同的端口号。 我尝试了下面的方法,但是出现了错误。

[root@mysvr nginx]# nginx -t -c /etc/nginx/nginx.conf
nginx: [emerg] "proxy_pass" directive is not allowed here in /etc/nginx/nginx.conf:41
nginx: configuration file /etc/nginx/nginx.conf test failed

以下是Nginx的设置。第41行是proxy_pass的位置。
server {
  listen 80;
  server_name server1.com www.server1.com;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass http://127.0.0.1:1003;
}

server {  
  listen 80;
  server_name server2.com www.server2.com;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass http://192.168.1.1:1004;
}

谢谢!

1个回答

15
如果您查看proxy_pass文档,您会发现proxy_pass需要在locationif in locationlimit_except块中使用。而您将其放置在server块内。

尝试用以下内容替换您的proxy_pass用法:

location / {
    proxy_pass ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接