Apache-2.2

如何在 nginx 上做代理?

  • September 25, 2012

我將如何設置我的網路伺服器以如下所述的方式工作?

  • Http 請求:mypublic.com —> 由 nginx 正常處理,因為它已經設置(listen 80;
  • Http 請求:myprivate.com —> 由 apache 處理,設置為在 8080 ( listen 8080)上工作

我想避免在瀏覽器中輸入地址時包括埠,在 nginx 上使用某種模型(代理?/魷魚?)。這兩個域都指向我的機器並由命名設置。

使用 nginx,您可以通過配置兩個虛擬伺服器並將其中一個代理傳遞給執行在埠 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 上使用某種形式的代理將請求傳遞到埠 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>

引用自:https://serverfault.com/questions/422353