Apache反向代理的配置

龍恩0707發表於2017-12-27

Apache反向代理的配置

一: Mac系統自帶apache伺服器

1. 檢視apache版本命令如下:
   sudo apachectl -v

2. 啟動apache
   sudo apachectl start

3. 重啟apache
   sudo apachectl restart

二:概念描述
apache代理分為正向代理和反向代理:

1、正向代理: 客戶端無法直接訪問外部的web,需要在客戶端所在的網路內架設一臺代理伺服器,客戶端通過代理伺服器訪問外部的web(需要在客戶端的瀏覽器中設定代理伺服器).

2、反向代理: 客戶端能訪問外部的web,但是不能訪問目標web,目標web所在的網路內一臺機器充當目標web的代理,客戶端直接訪問代理就像訪問目標web一樣.

更多的正向代理和反向代理 請baidu或google。

三:配置如下:

1. cd /etc/apache2 進入apache2的配置。
2. sudo vi httpd.conf (進入httpd.conf檔案)檢視。
2-1 備份原來的檔案
sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.backup
3. 檢查代理模組是否開啟,如果沒有開啟,去掉下面程式碼前面的註釋符號 #

LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
LoadModule proxy_balancer_module libexec/apache2/mod_proxy_balancer.so(負載均衡的功能,單純的反向代理不需要註釋)

4. 在httpd.conf的末尾新增如下程式碼:

<VirtualHost *:80>
      ServerName ss.xx.com 
      ProxyRequests off  
      Header set Access-Control-Allow-Origin *
      <Proxy *>
          Order deny,allow
          Allow from all
      </Proxy>
      <Location /xxyy>
          ProxyPass http://localhost:8892/
          ProxyPassReverse http://localhost:8892/
      </Location>
      <Location /ofc>
        ProxyPass http://localhost:8894/
        ProxyPassReverse http://localhost:8894/
    </Location>
</VirtualHost>

*:80   是指任何伺服器且埠號是80埠。
ServerName: 指資原始檔的指向的伺服器名稱(在hosts檔案需要繫結 127.0.0.1 ss.xx.com)。
ProxyPass 和 ProxyPassReverse 及 http://localhost:8892/ 是我們請求真正的目的伺服器。
比如我們在瀏覽器中輸入 http://192.168.xx.xx:80/xxyy時候,頁面會反向代理會返回 http://localhost:8892/ 的首頁;
當我們在瀏覽器中輸入 http://192.168.xx.xx:80/ofc 的時候,頁面會反向代理會返回 http://localhost:8894/ 的首頁;
以上就是最基本的使用apache配置代理轉發請求。

相關文章