用于web服务器的Nginx代理,它位于不同的服务器上,其中apache是​​dockerized

时间:2016-11-10 10:12:41

标签: apache nginx

我正处于这种情况:

服务器A(DMZ上的端点)通过NGINX运行某些django应用程序(在同一台服务器上),我没有遇到麻烦。

运行两个Docker容器的服务器B(另一个本地IP)。其中一个运行apache,另一个运行PostGis。

我已经配置NGINX(服务器A)从不同的子域获取两个django应用程序和鹈鹕博客。没问题。

服务器B中的Apache在端口80上运行webapp。当我将页面到达此服务器时:我本地网络上的端口正常工作。

重要的是要知道重定向是由apache完成的,并且它已在我的浏览器上完成。

我需要的是从位于另一个子域的NGINX访问服务器的B webapp。

我想在A&#39的服务器上添加一个关于NGNIX的新conf可能就是这样的伎俩:

server {

listen [::]:80;
listen 80;

server_name sub.dns.com;

access_log /var/log/nginx/proxy-access.log;
error_log /var/log/nginx/proxy-error.log;

location = / {
    # Instead of handling the index, just
    # rewrite / to /index.html
    proxy_pass http://192.168.1.xx;

}
}

但是当我尝试获取该页面时,我得到了404 Not not found。但是,我可以在客户端浏览器中看到重定向。

这是Nginx日志中的错误:

2016/11/30 13:30:39 [error] 23662#0: *6204 "/usr/share/nginx/html/websig/lizmap/index.html" is not found (2: No such file or directory), client: IPxxx , server: [sub.dns.com] , request: "GET /websig/lizmap/ HTTP/1.1", host: "[sub.dns.com]"

我无法弄清楚发生了什么。我对NGINX和多服务器配置的经验不多。请告诉我,如果我的问题不聪明,并且您需要更多信息。

1 个答案:

答案 0 :(得分:0)

我找到了麻烦的原因。我的服务器上的nginx块位置声明为= /所以我必须删除=代理服务器B上的所有uri并且它的工作作为魅力