2015-11-17 287 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>