使用Nginx作为多个服务器的反向代理

前端之家收集整理的这篇文章主要介绍了使用Nginx作为多个服务器的反向代理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试将Nginx配置为LAN上多个服务器的反向代理.他们应该在我的WAN上使用不同的子域.我的配置如下所示:

  1. @ReverseProxy:/etc/Nginx/sites-enabled$cat reverseproxy
  2. server {
  3. server_name DOMAIN.eu;
  4. # app1 reverse proxy follow
  5. proxy_set_header X-Real-IP $remote_addr;
  6. proxy_set_header Host $host;
  7. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  8. proxy_pass http://10.0.2.5:80;
  9. }
  10. server {
  11. server_name Subdomain.domain.eu;
  12. # app2 reverse proxy settings follow
  13. proxy_set_header X-Real-IP $remote_addr;
  14. proxy_set_header Host $host;
  15. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  16. proxy_pass http://10.0.2.33:80;
  17. }

但我收到这个错误,无法进一步……

  1. @ReverseProxy:/etc/Nginx/sites-enabled$Nginx -t
  2. Nginx: [alert] could not open error log file: open() "/var/log/Nginx/error.log" Failed (13: Permission denied)
  3. 2009/01/04 12:22:13 [warn] 1302#0: the "user" directive makes sense only if the master process runs with super-user privileges,ignored in /etc/Nginx/Nginx.conf:1
  4. 2009/01/04 12:22:13 [emerg] 1302#0: "proxy_pass" directive is not allowed here in /etc/Nginx/sites-enabled/reverseproxy:8

Nginx配置文件/etc/Nginx/Nginx.conf测试失败

最佳答案
您的问题是您在服务器块内使用proxy_pass,这是不允许的.尝试使用:

  1. server {
  2. server_name Subdomain.domain.eu;
  3. location / {
  4. proxy_set_header X-Real-IP $remote_addr;
  5. proxy_set_header Host $host;
  6. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  7. proxy_pass http://10.0.2.33:80;
  8. }
  9. }

在您的服务器块内.正如nginx documentation所说,无法在服务器级别设置代理选项.

日志中的其他问题发生是因为你以某种方式将你的Nginx作为常规用户启动,尽管它应该以root身份启动.

猜你在找的Nginx相关文章