日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

squid之反向代理服务器

發布時間:2024/4/15 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 squid之反向代理服务器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?代理服務器是使用非常普遍的一種將局域網主機聯入互聯網的一種方式,使用代理上網可以節約緊缺的IP地址資源,而且可以阻斷外部主機對內部主機的訪問,使內部網主機免受外部網主機的***。但是,如果想讓互聯網上的主機訪問內部網的主機資源(例如:Web站點),又想使內部網主機免受外部網主機***,一般的代理服務是不能實現的,需要使用反向代理來實現。

一.反向代理服務器概念

反向代理就是通常所說的WEB服務器加速,它是一種通過在繁忙的WEB服務器和Internet之間增加一個高速的WEB緩沖服務器(即:WEB反向代理服務器)來降低實際的WEB服務器的負載。

?

反向代理服務器承擔了對原始WEB服務器的靜態頁面的請求,防止原始服務器過載。它位于本地WEB服務器和Internet之間,處理所有對WEB服務器的請求,組織了WEB服務器和Internet的直接通信。如果互聯網用戶請求的頁面在代理服務器上有緩沖的話,代理服務器直接將緩沖內容發送給用戶。如果沒有緩沖則先向WEB服務器發出請求,取回數據,本地緩存后再發送給用戶。這種方式通過降低了向WEB服務器的請求數從而降低了WEB服務器的負載。

Squid是一種在Linux系統下使用的優秀的代理服務器軟件.

二.反向代理和其它代理的比較

下面將對幾種典型的代理服務作一個簡單的比較。在網絡上常見的代理服務器有三種:1. 標準的代理緩沖服務器

一個標準的代理緩沖服務被用于緩存靜態的網頁(例如:html文件和圖片文件等)到本地網絡上的一臺主機上(即代理服務器)。當被緩存的頁面被第二次訪問的時候,瀏覽器將直接從本地代理服務器那里獲取請求數據而不再向原web站點請求數據。這樣就節省了寶貴的網絡帶寬,而且提高了訪問速度。但是,要想實現這種方式,必須在每一個內部主機的瀏覽器上明確指明代理服務器的IP地址和端口號。客戶端上網時,每次都把請求送給代理服務器處理,代理服務器根據請求確定是否連接到遠程web服務器獲取數據。如果在本地緩沖區有目標文件,則直接將文件傳給用戶即可。如果沒有的話則先取回文件,先在本地保存一份緩沖,然后將文件發給客戶端瀏覽器。

2. 透明代理緩沖服務器

?

透明代理緩沖服務和標準代理服務器的功能完全相同。但是,代理操作對客戶端的瀏覽器是透明的(即不需指明代理服務器的IP和端口)。透明代理服務器阻斷網絡通信,并且過濾出訪問外部的HTTP80端口)流量。如果客戶端的請求在本地有緩沖則將緩沖的數據直接發給用戶,如果在本地沒有緩沖則向遠程web服務器發出請求,其余操作和標準的代理服務器完全相同。對于Linux操作系統來說,透明代理使用Iptables或者Ipchains實現。因為不需要對瀏覽器作任何設置,所以,透明代理對于ISPInternet服務器提供商)特別有用。

?

3. 反向代理緩沖服務器

  反向代理是和前兩種代理完全不同的一種代理服務。使用它可以降低原始WEB服務器的負載。反向代理服務器承擔了對原始WEB服務器的靜態頁面的請求,防止原始服務器過載。它位于本地WEB服務器和Internet之間,處理所有對WEB服務器的請求,組織了WEB服務器和Internet的直接通信。如果互聯網用戶請求的頁面在代理服務器上有緩沖的話,代理服務器直接將緩沖內容發送給用戶。如果沒有緩沖則先向WEB服務器發出請求,取回數據,本地緩存后再發送給用戶。這種方式通過降低了向WEB服務器的請求數從而降低了WEB服務器的負載。

三.反向代理服務器的工作原理

?

當用戶瀏覽器發出一個HTTP請求時,通過域名解析將請求定向到反向代理服務器(如果要實現多個WEB服務器的反向代理,需要將多個WEB服務器的域名都指向反向代理服務器)。由反向代理服務器處理器請求。反向代理一般只緩存可緩沖的數據(比如html網頁和圖片等),而一些CGI腳本程序或者ASP之類的程序不緩存。它根據從WEB服務器返回的HTTP頭標記來緩沖靜態頁面。

四.代理服務器軟件squid簡介

Squid Internet Object Cache (Harvest Project的后續版本) 是美國政府大力助的一項研究計劃,其目的為解決網絡帶寬不足的問題,是現在Unix系統上使用者最多功能也最完整的一套軟體。ApacheNetscape雖附有相關的Proxy模塊,但因其功能簡單而不夠普及。有關squid的詳細說明可到squid網站(http://www.squid-cache.org)查詢。

Squid 是一個萬維網客戶的高性能代理緩存服務器。它支持 FTP、gopher 以及 HTTP 數據對象。與傳統的緩存軟件不同,Squid 只用一個非堵塞的 I/O 驅動的進程來處理所有請求。Squid 保存元數據,把特別熱門的對象緩存在內存中;它還緩存 DNS 查尋,支持非堵塞 DNS 查尋,并對失敗的請求實現負緩存。

Squid 由一個主服務器程序 squid,一個域名系統查尋程序 (dnsserver),一個用來檢索 FTP 數據的程序 (ftpget),以及一些管理和客戶工具組成。

五.使用squid實現反向代理,我們用一個案例來說明反向代理,在下面的拓撲中能夠實現客戶端主機通過反向代理訪問內部網的主機資源,例如:Web站點

?

1)我們在linux系統中安裝squid

1.掛載光盤到指定目錄中,并安裝squid軟件包(服務器需要2塊網卡,1塊是(圖中eth1)橋接用來連接外網,一塊是(圖中eth0host-only鏈接方式,用于和內網主機鏈接)

通過rpm來安裝squid軟件包

[root@localhost ~]# mkdir /mnt/cdrom??????? ?#新建光盤掛載點

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom? #把光盤掛載到掛載點

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@localhost ~]# cd /mnt/cdrom/Server??????? ?#切換到服務軟件包上

[root@localhost Server]# rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm ??#安裝squid軟件包

warning: squid-2.6.STABLE21-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...??????????????? ########################################### [100%]

?? 1:squid????????????????? ########################################### [100%]

?[root@localhost Server]# rpm -ql squid |less?? ?#安裝好后我們來查看文件存放路徑

/etc/httpd/conf.d/squid.conf???? ??#apache可以一起使用

/etc/logrotate.d/squid

/etc/pam.d/squid

/etc/rc.d/init.d/squid??????????? #控制腳本

/etc/squid/squid.conf????????? ?#服務器的主要配置文件

/etc/squid/squid.conf.default??? ?#如果配置文件不小心被刪除,這個文件是配置文件模板

/usr/lib/squid?????????????? ??#服務器的安裝位置

/var/log/squid??????????????? ?#日志存放位置

/var/spool/squid????????????? ?#緩存存放

[root@localhost Server]# service squid start????? ??#啟動服務

init_cache_dir /var/spool/squid... 啟動 squid.?????????? [確定]

?#Squid的監聽端口是tcp/3128??? udp/3130

[root@localhost ~]# netstat -tupln |grep squid

tcp??????? 0????? 0 0.0.0.0:3128??????????????? 0.0.0.0:*?????????????????? LISTEN????? 4508/(squid)???????

udp??????? 0????? 0 0.0.0.0:44439?????????????? 0.0.0.0:*?????????????????????????????? 4508/(squid)???????

udp??????? 0????? 0 0.0.0.0:3130??????????????? 0.0.0.0:*?????????????????????????????? 4508/(squid)???????

[root@localhost ~]#

2.squid服務器啟動后,我們知道squid的主配置文件在/etc/squid/squid.conf中,我們對文件進行修改

http_access allow localhost

http_access allow all ???????#在大約635行,允許所有主機進行訪問

http_port 192.168.102.44:80? vhost? #在大約919行,在外卡上進行監聽,代理服務器相當于一個虛擬主機(vhost),客戶端主機訪問代理服務器的WWW網站,所以協議號80

?# cache_peer hostname type http-port icp-port [options]

#????????? For example,

???????????????????????????????????????? proxy? icp

?????? #????????? hostname???????????? type???? port?? port? options

?????? #????????? -------------------- -------- ----- -----? -----------

?#?????? cache_peer parent.foo.net?????? parent??? 3128? 3130? proxy-only default

?#?????? cache_peer sib1.foo.net???????? sibling?? 3128? 3130? proxy-only

?#?????? cache_peer sib2.foo.net???????? sibling?? 3128? 3130? proxy-only

???????? cache_peer 192.168.2.200?????? parent??? 80??? 0???? originserver

#在大約1175行,cache_peer表示緩存鄰居,內部WWW服務器是代理服務器的原始服務器,也是鄰居,所以我們寫上行記錄,主機名字我們用WWWIP地址,類型是父親關系,端口80,因為當客戶端訪問代理服務器時,如果緩存中有,則直接回復客戶端,如果沒有代理服務器會訪問他的父親也就是原始服務器的WWW,所以端口為80icp port我們寫0optional為原始服務器。

2www服務器我用的是windows server 2003虛擬機,此虛擬機用host-only連接在客戶端上配置IP地址,網關

?

我們來添加IISWEBFTP)程序

在開始→設置→控制面板→添加刪除程序→選擇添加刪除windows組件→應用程序服務器→internet信息服務器→外維網服務→確定,然后開始安裝

?

?

?

?

?

?

轉載于:https://blog.51cto.com/zhangxifan/1183478

總結

以上是生活随笔為你收集整理的squid之反向代理服务器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。