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