2015-11-17 1159 views
1

Поскольку я не могу получить доступ к портам, отличным от 80 и 443, я хотел бы сделать доступными некоторые ресурсы, используя Apache на моем QNAP.Обратный прокси-сервер на Apache (для QNAP)

В частности, я хотел бы:

  1. установить Virtual Host (с помощью sub1.domain.com) для подключения к службе, работающей на том же хосте (мой QNAP) (http://localhost:58000)
  2. набор Виртуальный хост (с помощью sub2.domain.com) для подключения к другому хосту в пределах локальной сети (http://192.168.1.1:78080)
  3. установить Virtual Host (с помощью 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> 

/и т.д./конфигурации/Apache/extra/httpd-ssl-vhosts-user.conf

NameVirtualHost *:443 

    <VirtualHost _default_:443> 
     DocumentRoot "/share/Web" 
    </VirtualHost> 
  1. Virtual Host для подключения к службе работает на 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. виртуального хоста для подключения к данному внешним сайта (например, Google) [кредиты] 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. Virtual Host для подключения к службе работает на 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. Виртуальный хост для подключения к данный внешний сайт (например,google только в 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> 
    
Смежные вопросы