簡體   English   中英

Apache上的反向代理(用於QNAP)

[英]Reverse proxy on Apache (for QNAP)

由於我在工作時無法訪問80和443以外的端口,因此我想使用QNAP上的Apache來訪問某些資源。

我特別希望:

  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/config/apache/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. 虛擬主機可連接到給定的外部站點(例如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. 虛擬主機連接到在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中的google)

     <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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM