2015-11-17 283 views
1

由於我在工作時無法訪問除80和443以外的其他端口,因此我想在QNAP上使用Apache訪問某些資源。Apache上的反向代理(適用於QNAP)

我特別想:

  1. 設置一個虛擬主機(使用sub1.domain.com)連接到同一臺主機上運行(我QNAP)服務(http://localhost:58000
  2. 集虛擬主機(使用sub2.domain.com)連接到局域網內的另一臺主機(http://192.168.1.1:78080
  3. 設置一個虛擬主機(使用sub3.domain.com)連接到外部網站(如https://www.google.com

除了激活proxy_module和proxy_ssl_module(並相應地更改DNS)外,我還考慮在httpd-vhosts-user.conf(對於1.和2.)和httpd-ssl-vhosts-user.conf中使用以下行代碼(對於3):

常規切片(FYI):

/etc/config/apache/extra/httpd-vhosts-user.conf

NameVirtualHost *:80 

    <VirtualHost _default_:80> 
     DocumentRoot "/share/Web" 
    </VirtualHost> 

的/ etc /配置/阿帕奇/ extra/httpd-ssl-vhosts-user.conf

NameVirtualHost *:443 

    <VirtualHost _default_:443> 
     DocumentRoot "/share/Web" 
    </VirtualHost> 
  1. 虛擬主機連接到服務上http://localhost:58000

    <VirtualHost *:80> 
        ServerName sub1.domain.com 
        DocumentRoot "/share/Web/sub1" 
    
        ProxyPreserveHost On 
        ProxyRequests Off 
        ProxyVia Off 
        ProxyPass /sub1 http://localhost:58000 
        ProxyHTMLURLMap http://localhost:58000 /sub1 
    
        <Location /sub1> 
         ProxyPassReverse/
         ProxyHTMLInterp On 
         ProxyHTMLURLMap/ /sub1 
         RequestHeader unset Accept-Encoding 
        </Location> 
    
        <Proxy *> 
         AddDefaultCharset off 
         Order deny,allow 
         Deny from all 
         Allow from all 
        </Proxy> 
    
        <Directory "/share/Web/sub1"> 
         Options FollowSymLinks MultiViews 
         Order allow,deny 
         Allow from all 
        </Directory> 
    </VirtualHost> 
    
  2. 虛擬主機上運行的連接到其他服務上http://192.168.1.1:78080

    <VirtualHost *:80> 
        ServerName sub2.domain.com 
        DocumentRoot "/share/Web/sub2" 
    
        ProxyPreserveHost On 
        ProxyRequests Off 
        ProxyVia Off 
        ProxyPass /sub2 http://192.168.1.1:78080 
        ProxyHTMLURLMap http://192.168.1.1:78080 /sub2 
    
        <Location /Asus> 
         ProxyPassReverse/
         ProxyHTMLInterp On 
         ProxyHTMLURLMap/ /sub2 
         RequestHeader unset Accept-Encoding 
        </Location> 
    
        <Proxy *> 
         AddDefaultCharset off 
         Order deny,allow 
         Deny from all 
         Allow from all 
        </Proxy> 
    
        <Directory "/share/Web/sub2"> 
         Options FollowSymLinks MultiViews 
         Order allow,deny 
         Allow from all 
        </Directory> 
    </VirtualHost> 
    
  3. 虛擬主機運行連接到給定的外部網站(例如谷歌)[學分kamal @ serverfault.com]

    <VirtualHost *:443> 
        ServerName sub3.domain.com 
    
        ProxyPreserveHost On 
    
        <Proxy *> 
         AddDefaultCharset off 
         Order deny,allow 
         Deny from all 
         Allow from all 
        </Proxy> 
    
        ProxyPass /sub3 https://www.google.com/ 
        ProxyHTMLURLMap https://www.google.com /sub3 
    
        <Location /sub3> 
         ProxyPassReverse/
         ProxyHTMLInterp On 
         ProxyHTMLURLMap/ /sub3 
         RequestHeader unset Accept-Encoding 
        </Location> 
    </VirtualHost> 
    

但是這些都不虛擬主機的工作(我有一個連接失敗或無盡的加載)。

有人能幫我看看代碼嗎?

非常感謝您提前!

回答

1

下面是正確答案:

  1. 虛擬主機連接到服務上http://localhost:58000

    <VirtualHost *:80> 
    ServerName sub1.domain.com 
    ProxyRequests Off 
    <Proxy *> 
    Order deny,allow 
    Allow from all 
    </Proxy> 
    <Location /> 
    Order allow,deny 
    Allow from all 
    </Location> 
    ProxyPreserveHost On 
    ProxyPass/http://localhost:58000/ 
    ProxyPassReverse/http://localhost:58000/ 
    ProxyStatus On 
    </VirtualHost> 
    
  2. 虛擬主機上運行的連接到其他服務上運行http://192.168.1.1:78080

    <VirtualHost *:80> 
    ServerName sub2.domain.com 
    ProxyRequests Off 
    <Proxy *> 
    Order deny,allow 
    Allow from all 
    </Proxy> 
    <Location /> 
    Order allow,deny 
    Allow from all 
    </Location> 
    ProxyPreserveHost On 
    ProxyPass/http://192.168.1.1:78080/ 
    ProxyPassReverse/http://192.168.1.1:78080/ 
    ProxyStatus On 
    </VirtualHost> 
    
  3. 虛擬主機連接到給定的外部站點(例如谷歌只在HTTP中)

    <VirtualHost *:80> 
    ServerName sub3.domain.com 
    DocumentRoot "/share/Web" 
    <Directory "/share/Web"> 
    Options Indexes Includes FollowSymLinks 
    AllowOverride All 
    Order Allow,Deny 
    Allow from all 
    Deny from none 
    </Directory> 
    <Location /> 
    ProxyPass http://google.com/ 
    ProxyPassReverse http://google.com/ 
    </Location> 
    </Virtualhost>