NGINX通过CloudFlare反向代理到Jetty App Server



我有一个使用CloudFlare保护和代理网站的网站。

我在我的Origin Nginx Web服务器上使用CloudFlare SSL证书,以便通过HTTPS处理所有请求,并且可以根据需要进行工作。

我已经设置了一个node.js服务器和基于码头的应用程序服务器在同一物理服务器上运行xwiki与托管我的nginx Web服务器。

我通过我的nginx.conf文件设置nginx反向代理,以便当请求相应的URL时,Nginx指向相应的"应用程序"服务器,例如

https://SITE-ROOT/node

使用我的nginx.conf文件中的以下位置设置在localhost上运行的我的node.js服务器...

location /node {
            proxy_pass         http://192.168.1.69:3001;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
            }

此功能可根据需要工作,而节点。

当我尝试在port 8080上的Localhost上运行的Xwiki网站时,XWIKI网站,例如。

https://SITE-ROOT/xwiki
location /xwiki/ {
            proxy_pass         http://192.168.1.69:8080/xwiki;
            proxy_redirect     off;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
            }

我得到以下错误:

DNS points to prohibited IP
Unfortunately, it is resolving to an IP address that 
is creating a conflict within Cloudflare's system.

我不明白为什么会发生这种情况,因为我期望通过节点反向代理请求发生同样的事情。

我唯一能想到的是,Xwiki在与Nginx和Node Services同一主机上的Jetty Application Server中运行,这意味着Nginx和Jetty不是/不能以相同的方式握手和节点可以反向代理...

如果我将网站放置在我的nginx.conf文件的代理重定向部分中,例如,例如,

https://SITE-ROOT/xwiki
location /xwiki/ {
            proxy_pass         http://EXTERNAL-REAL-IP:8080/xwiki;
            proxy_redirect     off;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
            }

这与XWIKI默认页面加载一样多,但是URL更改为服务器的真实外部IP,并且不使用SSL。我知道这是因为码头服务器正在通过端口8080和通过Nginx完全通过。

所以我的实际问题是,我如何使用Nginx反向代理在我的Cloudflare代理网站内的位置上加载基于码头的Xwiki服务,或者您能帮助我了解我在哪里出错... p>我怀疑我需要安装在Jetty服务器上安装的NGINX服务器上安装的SSL证书,以便Nginx See See的Jetty Server作为本地资源 - 但是我对此非常不确定...

正如我在我最初的问题中提到的那样,我期望xwiki redirect/代理的工作方式与节点重定向相同的方式工作...

我在挠头,想知道为什么这不起作用,所以我玩了...

我发现他们转发请求的方式可能存在问题,所以我删除了以下行

proxy_set_header   X-Forwarded-Host $server_name;

并替换为:

proxy_set_header        X-Forwarded-Proto https;

,nginx会照顾事物的SSL站点

location /test {
            proxy_pass              EXTERNAL-REAL-IP:8080/;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto https;
            proxy_set_header        Host $http_host;
                        }

我根据上述文件创建了一个新的"测试"位置,并将其指向外部IP和8080端口,Jetty正在运行...和BOOM,我在https://SITE-NAME/test上获得了一个Jetty错误页面" url说找不到"测试"位置,这意味着Nginx反向代理正在根据需要工作...

尽管如果我重命名为nginx.conf文件中的位置设置,我可能不需要这样做在Jetty Home的WebApp目录中重命名战争文件。

我将战争文件名从xwiki更改为测试和重新启动码头,并将我的https://SITE-NAME/test加载到浏览器中...

嘿,我的网站现在使用我的https://SITE-NAME/test URL上的https从Jetty通过NGINX提供代理XWIKI应用程序...

我已将战争文件的名称和nginx文件中的位置更改为指向https://SITE-NAME/test之类的东西,它就像魅力一样工作!

i然后更改了nginx.conf中的https://EXTERNAL-REAL-IP/test位置以使用nginx lan ip,以便nginx可以在本地代理,并且仍然可以根据需要工作 - 因此,总而言之,快乐的日子...

相关内容

最新更新