代理传递域从默认的apache端口80到另一个端口上的nginx

我仍然在学习服务器的东西,所以希望标题足够描述。

基本上我有sub.domain.com,我想运行在端口8090的nginx。

我想单独离开apache,让它捕获端口80上的所有默认stream量。

所以我想用虚拟名称主机代理传递给sub.domain.com:8090,没有工作,不知道什么是正确的语法可能是。

有任何想法吗? 我发现的大部分是通过从Apache nginx,但我想做的相反。

LoadModule proxy_module modules / mod_proxy.so

LoadModule proxy_http_module modules / mod_proxy_http.so

<VirtualHost sub.domain.com:80>

ProxyPreserveHost打开

ProxyRequestclosures

ServerName sub.domain.com

DocumentRoot / home / app / public

ServerAlias sub.domain.com

proxyPass / http://appname:8090/ (also tried localhost and sub.domain.com)

ProxyPassReverse / http://appname:8090/

</VirtualHost>

当我这样做,我得到

[警告]模块proxy_module已经加载,skippin

[warn]模块proxy_http_module已经加载,跳过

[错误](EAI 2)名称或服务未知:无法parsing主机名sub.domain.com – 忽略!

是的,该应用程序正在工作(我有它运行在另一个子域的端口80),它在sub.domain.com:8090

[错误](EAI 2)名称或服务未知:无法parsing主机名sub.domain.com – 忽略!

这是说,它不能parsingsub.domain.com到一个IP地址。 你需要安排你的服务器能够做到这一点。 如何做到这一点取决于如何configurationDNSparsing器。

日志中的前两行

 [warn] module proxy_module is already loaded, skippin [warn] module proxy_http_module is already loaded, skipping 

说那2个模块已经加载了。 所以,你可以删除你在文章中写的LoadModule行。

对于第三个错误行

 [error] (EAI 2)Name or service not known: Could not resolve host name sub.domain.com -- ignoring! 

可能会有不同的原因相同,可能是你的dns服务器configuration不正确,但为了快速修复你可以做的就是在/ etc / hosts文件中join这样的内容

ip_address sub.domain.com

ip_address应该被运行nginx的IP所取代。 它可能是127.0.0.1或其他一些IP。

虽然这不是最好的解决方法,但它应该解决您的问题。

如果这仍然没有帮助,如果你可以在这里发布以下命令的输出,在你运行apache的服务器上运行这个命令后,会很好。

主机sub.domain.com