什么是反向代理?
例用戶訪問 http://ooxx.me/readme
但ooxx.me上並不存在readme頁面
他是偷偷從另外一台服務器上取回來,然后作為自己的內容吐給用戶
但用戶並不知情
這很正常,用戶一般都很笨
這里所提到的 ooxx.me 這個域名對應的服務器就設置了反向代理功能
結論就是 反向代理正好相反,對於客戶端而言它就像是原始服務器,並且客戶端不需要進行任何特別的設置。客戶端向反向代理 的命名空間(name-space)中的內容發送普通請求,接着反向代理將判斷向何處(原始服務器)轉交請求,並將獲得的內容返回給客戶端,就像這些內容 原本就是它自己的一樣。
==========================================分割線========================================================
配置步驟:
1,下載Apache24,並且安裝
2,打開httpd.conf文件
3,在其中找到
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
這兩個模塊是用來轉發的,取消注釋,釋放出來
4,找到Include conf/extra/httpd-vhosts.conf,取消注釋,釋放出來
5,在相對應的文件夾中找到httpd-vhosts.conf文件,並且打開
6,找到
<VirtualHost _default_:80>
#ServerName www.example.com:80
DocumentRoot "${SRVROOT}/htdocs"
</VirtualHost>
7,在后面添加
ProxyRequests Off
ProxyPass /***(你想要訪問的地址) http://*******(想要代理的地址)
ProxyPassReverse /***(你想要訪問的地址) http://*******(想要代理的地址)
比如說我想在瀏覽器中輸入localhost,但實際獲取的內容是www.baidu.com的話就可以設置為ProxyPass /***(你想要訪問的地址) http://*******(想要代理的地址)
,第二個ProxyPassReverse
是做域名重定向使用的,如果你代理的那個地址重定向的跳到另一個地方,有了ProxyPassReverse
的設置就可以相應的跳轉過去 沒有的話可能就會報錯
如果想讓別的電腦訪問自己電腦的外網地址就可以訪問自己服務器可以設置一下httpd.conf
中的<Directory "${SRVROOT}/htdocs">
把 Require all denied
改為Require all granted
允許所有的請求和訪問
本人配置好之后的文件內容為:
<VirtualHost _default_:80>
DocumentRoot "${SRVROOT}/htdocs"
#ServerName www.example.com:80
ServerName www.example.com
ProxyRequests Off
ProxyPass / http://www.baidu.com
ProxyPassReverse / http://127.0.0.1
</VirtualHost>
參考:
https://www.cnblogs.com/zemliu/archive/2012/04/18/2454655.html
https://www.jianshu.com/p/475ef0ccc421