如何在nginx上制作代理?

Adr*_* K. 0 freebsd nginx proxy apache-2.2

我将如何设置我的网络服务器以下面描述的方式工作?

  • Http 请求:mypublic.com ---> nginx 正常处理,因为它已经设置好了 ( listen 80;)

  • Http 请求:myprivate.com ---> 由 apache 处理,设置为在 8080 ( listen 8080) 上工作

我想避免在浏览器中输入地址时包含端口,在 nginx 中使用某种模型(代理?/squid?)。两个域都指向我的机器并按命名设置。

use*_*517 6

您不能直接使用 DNS 执行此操作,因为 DNS 不处理端口。

您可以在端口 80 上使用某种形式的代理将请求传递到端口 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>
Run Code Online (Sandbox Code Playgroud)