Proxy(代理)服务器
生活随笔
收集整理的這篇文章主要介紹了
Proxy(代理)服务器
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
代理服務(wù)器:---代理服務(wù)器必須有DNS地址。如果開啟轉(zhuǎn)發(fā)需要在客戶端設(shè)置DNS地址
? NAT:是直接與目標(biāo)服務(wù)器通信的。也就是直接訪問的baidu服務(wù)器,目標(biāo)地址是baidu服務(wù)器的地址,所以必須要有DNS來解析主機(jī)名。
? ?如果是通過代理客戶端是沒有設(shè)置DNS的,這是因為客戶端會將數(shù)據(jù)包先發(fā)給代理服務(wù)器,然后再由代理服務(wù)器將數(shù)據(jù)包轉(zhuǎn)發(fā)出去的。也就是產(chǎn)生了2個不同的數(shù)據(jù)包。
? 當(dāng)用戶訪問服務(wù)器的時候,會先請求代理服務(wù)器,代理服務(wù)器會查看自己的緩存是否有請求的網(wǎng)頁,如果有直接返回給用戶,如果沒有,則向服務(wù)器發(fā)送請求,服務(wù)器響應(yīng)給代理服務(wù)器,當(dāng)代理服務(wù)器收到請求后,會將請求被分到自己的緩存中,然后再拷貝一份發(fā)給用戶。如果再有用戶訪問這個網(wǎng)頁,代理服務(wù)器檢查到自己的緩存中有用戶想要的網(wǎng)頁,則會直接返回給用戶。這樣就很大的節(jié)省了服務(wù)器的帶寬。
啟用代理服務(wù)器的轉(zhuǎn)發(fā)功能:在做完NAT后需要轉(zhuǎn)發(fā)功能: echo ?1 > /proc/sys/net/ipv4/ip_forward # 臨時修改 vim /etc/sysctl.conf # 修改配置文件中 :net.ipv4.ip_forward = 1 sysctl -p # 修改后立即生效。 開啟轉(zhuǎn)發(fā)后需要設(shè)置客戶端的 DNS
防火墻規(guī)則: ? ?iptables -I INPUT -p tcp --dport 8080 -j ACCEPT ? ? iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE #開啟NAT,轉(zhuǎn)發(fā) 需要注意的是:在開啟轉(zhuǎn)發(fā)的時候需要設(shè)置客戶端--DSN ? ?iptables -t nat -I PREROUTING 1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT ?--to-ports 8080 ?#將10 網(wǎng)段的所有請求80端口的,重定向到 8080端口(8080是代理服務(wù)的端口),需要在代理服務(wù)的配置文件中 開啟轉(zhuǎn)發(fā):http_port ?8080 ?transparent
出現(xiàn)錯誤: WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'. visible_hostname 自己的主機(jī)名(#vim /etc/squid/squid.conf添加即可)
squid服務(wù)啟動日志: /var/log/squid/squid.out
安裝軟件包: ? ? ?yum ?-y ?install squid
主目錄: ? ? ?/etc/squid/ 需要最關(guān)心的配置文件;squid.conf
配置文件: 1、acl 給網(wǎng)段定義一個別名。 ? ?需要注意的是:如果是具體的IP地址的話子網(wǎng)掩碼應(yīng)該寫 32 ? ?192.168.10.123/32 ?否則會報錯 ? ?acl ?baidu ?dstdomain ?.baidu.com ? #目標(biāo)地址 ? ?acl ?test ? url_regex ?^http://www.kun.cc/test/.*\.txt ? # 以定義正則,定義不允許訪問類型的文件。
2、http_access:允許哪些網(wǎng)段可以使用代理服務(wù)器。后面跟的是定義好的別名。 ? 需要注意的是:http_access 的順序很重要。是從上至下匹配的,如果上一條匹配成功就不會再往下匹配了。
3、http_port ?3128:客戶端與代理服務(wù)器建立連接訪問的端口號。 ? ?3128用的不多,用的比較多的是8080
不允許訪問baidu,其他網(wǎng)站是允許的?
這里有個細(xì)節(jié)需要注意: ? fanli ?baidu ?2行的順序,因為fanli是指的是當(dāng)前的網(wǎng)段是允許的,而訪問baidu是拒絕的,在匹配的時首先匹配允許了網(wǎng)段是可以訪問的,所以就不會匹配拒絕baidu這行。所以當(dāng)再訪問baidu的時候也是可以正常訪問的。如果調(diào)換位置就會拒絕baidu了。
拒絕訪問指定類型的后綴的網(wǎng)頁:
后綴為:.txt的網(wǎng)站不可以訪問:
根據(jù)上面的test別名: ? ?cache ?deny ? test #凡是 .txt 結(jié)尾的網(wǎng)站都不做緩存。 allowe 則是:做緩存
配置文件中:cache_dir ?ufs /var/spool/squid ?100 ?16 ?256 ? 代理服務(wù)器緩存網(wǎng)頁的存放目錄。 ? :100 #代理服務(wù)器會在這個目錄里面創(chuàng)建一個100M的告訴緩存,硬盤當(dāng)中創(chuàng)建 ? :16 #這個目錄下有16個子目錄 ? :256 #這個16個子目錄下又有256個子目錄
其中:cache_mem 10 MB:是從內(nèi)存中劃分10MB來做存儲,這是個默認(rèn)選項。存儲:訪問比較頻繁的網(wǎng)頁
重新指定squid的緩存目錄位置:---用于存放緩存的服務(wù)器可以做邏輯卷,在邏輯卷上進(jìn)行擴(kuò)充。
當(dāng)緩存無限增加的時候,設(shè)置緩存的限制: ? ? ?cache_swap_low ?90 ? ? ?cache_swap_high ? 95 #當(dāng)磁盤使用率達(dá)到95%的時候,刪除舊的緩存,直至使用率為:90%
系統(tǒng)緩存時間:
其中: ? ? 1440:為最小緩存時間:單位分鐘 ? ? 10080:最大緩存時間:單位分鐘 ? ? 20%:當(dāng)緩存的文件時間大于 ?10080 的20%時候,系統(tǒng)就會標(biāo)記為舊的數(shù)據(jù)。 ? ??
防火墻做NAT:這里做的是SNAT: ? ? ?因為有的人會避開瀏覽騎上的代理,從而可以直接使用NAT,上網(wǎng)。所以這里做了 SNAT ? ?iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
需要將FORWARD中的過濾去掉 ? ?iptables -nL # 不反向解析,查看防火墻列表 ? ?iptables -nL --line-numbers # 查看時標(biāo)記行號
squid監(jiān)控:---基于apache的,所以需要安裝apache
安裝完后直接輸入命令: ?sarg
進(jìn)入到字體文件所在目錄位置:
創(chuàng)建目錄:報錯的目錄是默認(rèn)是不存在的,所以需要手動創(chuàng)建
將字體文件拷貝到創(chuàng)建的目錄下
在圖形界面的網(wǎng)頁中輸入: localhost/sarg ? ? ?可以查看客戶端訪問的記錄
啟用代理服務(wù)器的轉(zhuǎn)發(fā)功能:在做完NAT后需要轉(zhuǎn)發(fā)功能: echo ?1 > /proc/sys/net/ipv4/ip_forward # 臨時修改 vim /etc/sysctl.conf # 修改配置文件中 :net.ipv4.ip_forward = 1 sysctl -p # 修改后立即生效。 開啟轉(zhuǎn)發(fā)后需要設(shè)置客戶端的 DNS
防火墻規(guī)則: ? ?iptables -I INPUT -p tcp --dport 8080 -j ACCEPT ? ? iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE #開啟NAT,轉(zhuǎn)發(fā) 需要注意的是:在開啟轉(zhuǎn)發(fā)的時候需要設(shè)置客戶端--DSN ? ?iptables -t nat -I PREROUTING 1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT ?--to-ports 8080 ?#將10 網(wǎng)段的所有請求80端口的,重定向到 8080端口(8080是代理服務(wù)的端口),需要在代理服務(wù)的配置文件中 開啟轉(zhuǎn)發(fā):http_port ?8080 ?transparent
出現(xiàn)錯誤: WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'. visible_hostname 自己的主機(jī)名(#vim /etc/squid/squid.conf添加即可)
squid服務(wù)啟動日志: /var/log/squid/squid.out
安裝軟件包: ? ? ?yum ?-y ?install squid
主目錄: ? ? ?/etc/squid/ 需要最關(guān)心的配置文件;squid.conf
配置文件: 1、acl 給網(wǎng)段定義一個別名。 ? ?需要注意的是:如果是具體的IP地址的話子網(wǎng)掩碼應(yīng)該寫 32 ? ?192.168.10.123/32 ?否則會報錯 ? ?acl ?baidu ?dstdomain ?.baidu.com ? #目標(biāo)地址 ? ?acl ?test ? url_regex ?^http://www.kun.cc/test/.*\.txt ? # 以定義正則,定義不允許訪問類型的文件。
2、http_access:允許哪些網(wǎng)段可以使用代理服務(wù)器。后面跟的是定義好的別名。 ? 需要注意的是:http_access 的順序很重要。是從上至下匹配的,如果上一條匹配成功就不會再往下匹配了。
3、http_port ?3128:客戶端與代理服務(wù)器建立連接訪問的端口號。 ? ?3128用的不多,用的比較多的是8080
不允許訪問baidu,其他網(wǎng)站是允許的?
這里有個細(xì)節(jié)需要注意: ? fanli ?baidu ?2行的順序,因為fanli是指的是當(dāng)前的網(wǎng)段是允許的,而訪問baidu是拒絕的,在匹配的時首先匹配允許了網(wǎng)段是可以訪問的,所以就不會匹配拒絕baidu這行。所以當(dāng)再訪問baidu的時候也是可以正常訪問的。如果調(diào)換位置就會拒絕baidu了。
拒絕訪問指定類型的后綴的網(wǎng)頁:
后綴為:.txt的網(wǎng)站不可以訪問:
根據(jù)上面的test別名: ? ?cache ?deny ? test #凡是 .txt 結(jié)尾的網(wǎng)站都不做緩存。 allowe 則是:做緩存
配置文件中:cache_dir ?ufs /var/spool/squid ?100 ?16 ?256 ? 代理服務(wù)器緩存網(wǎng)頁的存放目錄。 ? :100 #代理服務(wù)器會在這個目錄里面創(chuàng)建一個100M的告訴緩存,硬盤當(dāng)中創(chuàng)建 ? :16 #這個目錄下有16個子目錄 ? :256 #這個16個子目錄下又有256個子目錄
其中:cache_mem 10 MB:是從內(nèi)存中劃分10MB來做存儲,這是個默認(rèn)選項。存儲:訪問比較頻繁的網(wǎng)頁
重新指定squid的緩存目錄位置:---用于存放緩存的服務(wù)器可以做邏輯卷,在邏輯卷上進(jìn)行擴(kuò)充。
當(dāng)緩存無限增加的時候,設(shè)置緩存的限制: ? ? ?cache_swap_low ?90 ? ? ?cache_swap_high ? 95 #當(dāng)磁盤使用率達(dá)到95%的時候,刪除舊的緩存,直至使用率為:90%
系統(tǒng)緩存時間:
其中: ? ? 1440:為最小緩存時間:單位分鐘 ? ? 10080:最大緩存時間:單位分鐘 ? ? 20%:當(dāng)緩存的文件時間大于 ?10080 的20%時候,系統(tǒng)就會標(biāo)記為舊的數(shù)據(jù)。 ? ??
防火墻做NAT:這里做的是SNAT: ? ? ?因為有的人會避開瀏覽騎上的代理,從而可以直接使用NAT,上網(wǎng)。所以這里做了 SNAT ? ?iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
需要將FORWARD中的過濾去掉 ? ?iptables -nL # 不反向解析,查看防火墻列表 ? ?iptables -nL --line-numbers # 查看時標(biāo)記行號
squid監(jiān)控:---基于apache的,所以需要安裝apache
安裝完后直接輸入命令: ?sarg
進(jìn)入到字體文件所在目錄位置:
創(chuàng)建目錄:報錯的目錄是默認(rèn)是不存在的,所以需要手動創(chuàng)建
將字體文件拷貝到創(chuàng)建的目錄下
在圖形界面的網(wǎng)頁中輸入: localhost/sarg ? ? ?可以查看客戶端訪問的記錄
總結(jié)
以上是生活随笔為你收集整理的Proxy(代理)服务器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode】马三来刷题之Perm
- 下一篇: Angular国际化中ngx-trans