- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个使用 Cloudflare 来保护和代理网站的网站。
我在我的原始 nginx 网络服务器上使用 Cloudflare SSL 证书,以便所有请求都通过 HTTPS 处理,这会根据需要工作。
我已经在托管我的 Nginx 网络服务器的同一台物理服务器上设置了一个 Node.js 服务器和一个基于 Jetty 的应用程序服务器来运行 Xwiki。
我通过我的 nginx.conf 文件设置了 nginx 反向代理,以便在请求相应的 URL 时 nginx 指向相应的“应用程序”服务器,例如
https://SITE-ROOT/node
这个反向代理到我的 node.js 服务器在我的 nginx.conf 文件中使用以下位置设置在本地主机上的端口 3001 上运行...
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;
}
这根据需要工作,node.js 页面通过 HTTPS 通过我的站点公共(public) URL 和 CloudFlares 服务提供。
当我尝试对在端口 8080 上的本地主机上的 Jetty (Java) 应用程序服务器上运行的 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 和节点服务相同的主机上的 Jetty 应用程序服务器中运行,这意味着 nginx 和 Jetty 不是/不能以与 nginx 相同的方式握手节点可以在反向代理方面...
如果我把我网站的真实 IP 地址和 Xwiki 端口号放在我的 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。我知道这是因为 Jetty 服务器通过端口 8080 并通过 nginx 一起为页面提供服务。
所以我的实际问题是,我怎样才能使用 Nginx 反向代理将基于 Jetty 的 Xwiki 服务加载到我的 Cloudflare 代理网站中的某个位置,或者你能帮我理解我哪里出了问题......
我怀疑我还需要在 Jetty 服务器上安装我的 nginx 服务器上安装的 SSL 证书,以便 nginx 将 Jetty 服务器视为本地资源 - 但我对此非常不确定......
最佳答案
正如我在最初的问题中提到的,我希望 xwiki 重定向/代理的工作方式与节点重定向的工作方式相同......
我挠头想知道为什么这不起作用,所以我玩了一把......
我发现他们转发请求的方式可能有问题,所以我删除了下面这行
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;
}
我按照上面的方法在我的 nginx 配置文件中创建了一个新的“测试”位置,并将其指向运行 Jetty 的外部 IP 和 8080 端口......结果,我在我的 https://SITE-NAME/test
`url 表示未找到“测试”位置,这意味着 nginx 反向代理正在按需工作...
虽然如果我重命名为 nginx.conf 文件中的位置设置,我可能不需要这样做,但我通过阅读 Jetty 文档发现我可以更改基于 war 的应用程序将在 Jetty 上运行的 URL重命名 Jetty home 的 webapp 目录中的 war 文件。
我将 war 文件名从 xwiki 更改为 test 并重新启动 Jetty 并在我的浏览器中加载我的 https://SITE-NAME/test
...
嘿-presto,我的网站现在通过 nginx 在我的 https://SITE-NAME/test
url 上使用 HTTPS 为来自 Jetty 的代理 Xwiki 应用程序提供服务...
我已经更改了 war 文件的名称和 nginx 文件中的位置,以指向类似 https://SITE-NAME/test
的内容,它非常有效!
然后我更改了 nginx.conf 中的 https://EXTERNAL-REAL-IP/test
位置以使用 nginx LAN IP,以便 Nginx 可以在本地代理并且这仍然可以根据需要工作 - 所以,总而言之,快乐的日子......
关于ssl - Nginx 通过 Cloudflare 反向代理到 Jetty 应用服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46255443/
谁能解释一下 Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"之间的区别\") 和 Server.MapPath("/")? 最佳答案
我不知道,为什么我们要使用 Server.UrlEncode() & Server.UrlDecode()?!在 QueryString 中我们看到 URL 中的任何内容,那么为什么我们要对它们进行编
我已经通过 WHM 在我的一个域上安装了 ssl 证书。网站正在使用 https://xyz.com . 但是它不适用于 https://www.xyz.com .我已经检查了证书,它也适用于 www
我已经使用 WMI 检测操作系统上是否存在防病毒软件,itz 正常工作并通过使用命名空间向我显示防病毒信息,例如 win xp 和 window7 上的名称和实例 ID:\root\SecurityC
我们有 hive 0.10 版本,我们想知道是否应该使用 Hive Server 1 或 Hive Server2。另一个问题是连接到在端口 10000 上运行的 Hive 服务器,使用 3rd 方工
我想在 C++ 中使用 Windows Server API 设置一个 HTTPS 服务器,我使用了示例代码,它在 HTTP 上工作正常,但我就是不能让它在 HTTPS 上工作。 (我不想要客户端 S
我写了一个非常基本的类来发送电子邮件。我用 smtp 服务器对其进行了测试,它工作正常,但是当我尝试使用我公司的交换服务器时,它给出了这个异常: SMTP 服务器需要安全连接或客户端未通过身份验证。服
我的应用程序包含一个“网关”DataSnap REST 服务器,它是所有客户端的第一个访问点。根据客户端在请求中传递的用户名(基本身份验证),请求需要重定向到另一个 DataSnap 服务器。我的问题
我有一个 Tomcat 服务器和一个 Glassfish4 服务器。我的 Servlet 在 Tomcat 服务器上启动得很好,但在 Glassfish4 服务器上给我一个“HTTP Status 4
我在 vmware 上创建了一个 ubuntu 服务器。我用它作为文件服务器。如果我通过托管虚拟机的计算机进行连接,则可以访问它。我无法从同一网络上的其他计算机执行此操作。提前致谢! 最佳答案 首先确
如何重启 Rails 服务器?我从 开始 rails server -d 所以服务器是分离的 我知道的唯一方法就是去做ps 辅助 | grep rails 并 kill -9关于过程#但是像这样杀死进
我实际上正在尝试找到编写一个简单的 XMPP 服务器的最佳方法,或者找到一个占用空间非常小的服务器。我只关心XMPP的核心功能(状态、消息传递、群组消息传递)。目前还在学习 XMPP 协议(proto
我实际上正在尝试找到编写简单 XMPP 服务器的最佳方法,或者找到一个占用空间非常小的方法。我只关心 XMPP 的核心功能(统计、消息、组消息)。目前也在学习 XMPP 协议(protocol),所以
我们正在尝试从 Java JAX-RS 适配器访问 SOAP 1.1 Web 服务。 我们正在使用从 WSDL 生成的 SOAP 客户端。 但是当解码 SOAP 故障时,我们得到以下异常: ... C
目前,我和许多其他人正在多个平台(Windows、OS X 和可能的 Linux)上使用 Python HTTP 服务器。我们正在使用 Python HTTP 服务器来测试 JavaScript 游戏
我有一个连续运行的服务器程序(C#/.NET 2.0 on Linux with mono),我想从 PHP 脚本连接到它以在网站上显示状态信息。 目的是创建一个(某种)实时浏览器游戏(无 Flash
所以我有一个单页客户端应用程序。 正常流程: 应用程序 -> OAuth2 服务器 -> 应用程序 我们有自己的 OAuth2 服务器,因此人们可以登录应用程序并获取与用户实体关联的 access_t
我们刚刚将测试 Web 服务器从 Server 2008 升级到 Server 2012 R2。我们有一个部署我们网站的批处理脚本。当它将站点推送到服务器时,它现在失败了。奇怪的是,我可以使用相同的发
建议一些加载SpagoBI服务器的方法,我尝试了所有方法来解析spagobi服务器。在 Catalina 中,错误是 - * SEVERE: Unable to process Jar entry [
当我们点击应用程序服务器(apache tomcat)时,它会创建一个线程来处理我们的请求并与 tomcat 连接,建立连接,tomcat 创建另一个线程来处理请求并将其传递给连接,连接线程将其传递给
我是一名优秀的程序员,十分优秀!