我将如何设置我的networking服务器以下面描述的方式工作?
Http请求:mypublic.com —>由nginx正常处理,因为它已经build立( listen 80; )
http请求:myprivate.com —>通过apache处理设置工作在8080( listen 8080 )
我想避免在浏览器中input地址时包含端口,nginx中的某种模型(代理?/ squid?)。 这两个域都指向我的机器,并通过命名来设置。
使用nginx,您可以通过configuration两个虚拟服务器,并将其中一个虚拟服务器proxy_pass到在端口8080上运行的Apache:
server { listen 80; server_name mypublic.com; ... } server { listen 80; server_name myprivate.com; location / { proxy_pass http://myprivate.com:8080; } }
在这里看到的文档:
您不能直接使用DNS,因为DNS不处理端口。
您可以在端口80上使用某种forms的代理将请求传递到端口8080.apache的示例可能是
<VirtualHost *:80> Servername contoso.com . . . </VirtualHost> <VirtualHost *:80> Servername apache.contoso.com ProxyRequests Off <Proxy *> Order deny,allow allow from all </Proxy> ProxyPreserveHost On ProxyPass / http://contoso.com:8080/ ProxyPassReverse / http://contoso.com:8080/ </VirtualHost>
你可以使用apache2 mod_rewrite 。 您可以定义相应的条件和规则来重写所请求的URL。
对于nginx,请为myprivate.com创build一个虚拟主机,并将其传递给configuration为在端口8080上侦听myprivate.com的apache
服务器{听80; server_name myprivate.com;
# proxy it to Apache listening on 127.0.0.1:8080 location / { proxy_pass http://127.0.0.1:8080; }
}
这应该做的。
然后在apache上创build一个虚拟主机来监听myprivate.com。