1、360修改IP美國代理的詳細過程
一般情況下你只需要把IP跟埠填好就行了,用在瀏覽器上的一般都是HTTP,也就是WEB網頁代理!
2、我想做IDC伺服器代理託管,就是虛擬主機,伺服器託管等 都需要什麼樣的流程?
說下空間:
1.需要把伺服器託管在機房,或者直接租用伺服器(都是通過idc商的):一般5000到10000左右
2.再買個或者租個虛擬主機管理軟體,把伺服器劃分成N個空間:租1000,買5000
3.請個伺服器代維:一年3650元/年,
不要買伺服器託管,開始直接租伺服器(送產權哦,Q我)
Q我一條龍服務:教你怎麼運營、怎麼找客戶、怎麼維護
3、請教問題nginx反向代理proxy
一、反向代理:Web伺服器的「經紀人」
1.1 反向代理初印象
反向代理(Reverse Proxy)方式是指以代理伺服器來接受internet上的連接請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連接的客戶端,此時代理伺服器對外就表現為一個伺服器。
Nginx搭建反向代理伺服器過程詳解
從上圖可以看出:反向代理伺服器位於網站機房,代理網站Web伺服器接收Http請求,對請求進行轉發。
1.2 反向代理的作用
①保護網站安全:任何來自Internet的請求都必須先經過代理伺服器;
Nginx搭建反向代理伺服器過程詳解
②通過配置緩存功能加速Web請求:可以緩存真實Web伺服器上的某些靜態資源,減輕真實Web伺服器的負載壓力;
Nginx搭建反向代理伺服器過程詳解
③實現負載均衡:充當負載均衡伺服器均衡地分發請求,平衡集群中各個伺服器的負載壓力;
Nginx搭建反向代理伺服器過程詳解
二、初識Nginx:簡單卻不平凡
2.1 Nginx是神馬?
Nginx搭建反向代理伺服器過程詳解
Nginx是一款輕量級的網頁伺服器、反向代理器以及電子郵件代理伺服器。其將源代碼以類BSD許可證的形式發布,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。
Source:Nginx(發音同engine x),它是由俄羅斯程序員Igor Sysoev所開發的。起初是供俄國大型的門戶網站及搜索引擎Rambler(俄語:Рамблер)使用。此軟體BSD-like協議下發行,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系統中運行。
說到Web伺服器,Apache伺服器和IIS伺服器是兩大巨頭;但是運行速度更快、更靈活的對手:Nginx 正在迎頭趕上。
2.2 Nginx的應用現狀
Nginx 已經在俄羅斯最大的門戶網站── Rambler Media(www.rambler.ru)上運行了3年時間,同時俄羅斯超過20%的虛擬主機平台採用Nginx作為反向代理伺服器。
Nginx搭建反向代理伺服器過程詳解Nginx搭建反向代理伺服器過程詳解Nginx搭建反向代理伺服器過程詳解Nginx搭建反向代理伺服器過程詳解Nginx搭建反向代理伺服器過程詳解
在國內,已經有 淘寶、新浪博客、新浪播客、網易新聞、六間房、56.com、Discuz!、水木社區、豆瓣、YUPOO、海內、迅雷在線 等多家網站使用 Nginx 作為Web伺服器或反向代理伺服器。
2.3 Nginx的核心特點
(1)跨平台:Nginx 可以在大多數 Unix like OS編譯運行,而且也有Windows的移植版本;
(2)配置異常簡單:非常容易上手。配置風格跟程序開發一樣,神一般的配置;
(3)非阻塞、高並發連接:數據復制時,磁碟I/O的第一階段是非阻塞的。官方測試能夠支撐5萬並發連接,在實際生產環境中跑到2~3萬並發連接數。(這得益於Nginx使用了最新的epoll模型);
PS:對於一個Web伺服器來說,首先看一個請求的基本過程:建立連接—接收數據—發送數據,在系統底層看來 :上述過程(建立連接—接收數據—發送數據)在系統底層就是讀寫事件。
①如果採用阻塞調用的方式,當讀寫事件沒有準備好時,必然不能夠進行讀寫事件,那麼久只好等待,等事件准備好了,才能進行讀寫事件,那麼請求就會被耽擱 。
②既然沒有準備好阻塞調用不行,那麼採用非阻塞調用方式。非阻塞就是:事件馬上返回,告訴你事件還沒准備好呢,你慌什麼,過會再來吧。好吧,你過一會,再來檢查一下事件,直到事件准備好了為止,在這期間,你就可以先去做其它事情,然後再來看看事件好了沒。雖然不阻塞了,但你得不時地過來檢查一下事件的狀態,你可以做更多的事情了,但帶來的開銷也是不小的。
(4)事件驅動:通信機制採用epoll模型,支持更大的並發連接。
①非阻塞通過不斷檢查事件的狀態來判斷是否進行讀寫操作,這樣帶來的開銷很大,因此就有了非同步非阻塞的事件處理機制。這種機制讓你可以同時監控多個事件,調用他們是阻塞的,但可以設置超時時間,在超時時間之內,如果有事件准備好了,就返回。這種機制解決了上面阻塞調用與非阻塞調用的兩個問題。
②以epoll模型為例:當事件沒有準備好時,就放入epoll(隊列)裡面。如果有事件准備好了,那麼就去處 理;如果事件返回的是EAGAIN,那麼繼續將其放入epoll裡面。從而,只要有事件准備好了,我們就去處理它,只有當所有事件都沒有準備好時,才在 epoll裡面等著。這樣,我們就可以並發處理大量的並發了,當然,這里的並發請求,是指未處理完的請求,線程只有一個,所以同時能處理的請求當然只有一 個了,只是在請求間進行不斷地切換而已,切換也是因為非同步事件未准備好,而主動讓出的。這里的切換是沒有任何代價,你可以理解為循環處理多個准備好的事 件,事實上就是這樣的。
③與多線程方式相比,這種事件處理方式是有很大的優勢的,不需要創建線程,每個請求佔用的內存也很少,沒有上下文切換, 事件處理非常的輕量級,並發數再多也不會導致無謂的資源浪費(上下文切換)。對於IIS伺服器,每個請求會獨佔一個工作線程,當並發數上到幾千時,就同時 有幾千的線程在處理請求了。這對操作系統來說,是個不小的挑戰:因為線程帶來的內存佔用非常大,線程的上下文切換帶來的cpu開銷很大,自然性能就上不 去,從而導致在高並發場景下性能下降嚴重。
總結:通過非同步非阻塞的事件處理機制,Nginx實現由進程循環處理多個准備好的事件,從而實現高並發和輕量級。
(5)Master/Worker結構:一個master進程,生成一個或多個worker進程。
Nginx搭建反向代理伺服器過程詳解
PS:Master-Worker設計模式核心思想是將原來串列的邏輯並行化, 並將邏輯拆分成很多獨立模塊並行執行。其中主要包含兩個主要組件Master和Worker,Master主要將邏輯進行拆分,拆分為互相獨立的部分,同 時維護了Worker隊列,將每個獨立部分下發到多個Worker並行執行,Worker主要進行實際邏輯計算,並將結果返回給Master。
問:nginx採用這種進程模型有什麼好處?
答:採用獨立的進程,可以讓互相之間不會影響,一個進程退出後,其它進程還在工作,服務不會中斷,Master 進程則很快重新啟動新的Worker進程。當然,Worker進程的異常退出,肯定是程序有bug了,異常退出,會導致當前Worker上的所有請求失 敗,不過不會影響到所有請求,所以降低了風險。
(6)內存消耗小:處理大並發的請求內存消耗非常小。在3萬並發連接下,開啟的10個Nginx 進程才消耗150M內存(15M*10=150M)。
(7)內置的健康檢查功能:如果 Nginx 代理的後端的某台 Web 伺服器宕機了,不會影響前端訪問。
(8)節省帶寬:支持 GZIP 壓縮,可以添加瀏覽器本地緩存的 Header 頭。
(9)穩定性高:用於反向代理,宕機的概率微乎其微。
三、構建實戰:Nginx+IIS構築Web伺服器集群的負載均衡
這里我們主要在Windows環境下,通過將同一個Web網站部署到不同伺服器的IIS上,再通過一個統一的Nginx反響代理伺服器對外提供統一訪問接入,實現一個最簡化的反向代理和負載均衡服務。但是,受限於實驗條件, 我們這里主要在一台計算機上進行反向代理、IIS集群的模擬,具體的實驗環境如下圖所示:我們將nginx服務和web網站都部署在一台計算機 上,nginx監聽http80埠,而web網站分別以不同的埠號(這里是8050及8060)部署在同一個IIS伺服器上,用戶訪問 localhost時,nginx作為反向代理將請求均衡地轉發給兩個IIS中不同埠的Web應用程序進行處理。雖然實驗環境很簡單而且有限,但是對於 一個簡單的負載均衡效果而言,本文是可以達到並且展示的。
Nginx搭建反向代理伺服器過程詳解
3.1 准備一個ASP.NET網站部署到IIS伺服器集群中
(1)在VS中新建一個ASP.NET Web應用程序,但是為了在一台計算機上展示效果,我們將這個Web程序復制一份,並修改兩個Web程序的Default.aspx,讓其的首頁顯示不同 的一點信息。這里Web1展示的是「The First Web:」,而Web2展示的則是「The Second Web」。
Nginx搭建反向代理伺服器過程詳解
(2)調試運行,看看兩個網站的效果如何?
①Web1的展示效果:
Nginx搭建反向代理伺服器過程詳解
②Web2的展示效果:
Nginx搭建反向代理伺服器過程詳解
③部署到IIS中,分配不同的埠號:這里我選擇了Web1:8050,Web2:8060
Nginx搭建反向代理伺服器過程詳解
(3)總結:在真實環境中,構建Web應用伺服器集群的實現是將同一個Web應用程序部署到Web伺服器集群中的多個Web伺服器上。
3.2 下載Nginx並部署到伺服器中作為自啟動的Windows服務
(1)到Nginx官網下載Nginx的Windows版本:http://nginx.org/en/download.html(這里我們使用nginx/Windows-1.4.7版本進行實驗,本文底部有下載地址)
(2)解壓到磁碟任意目錄,例如這里我解壓到了:D:\Servers\nginx-1.4.7
(3)啟動、停止和重新載入服務:通過cmd以守護進程方式啟動nginx.exe:start nginx.exe,停止服務:nginx -s stop,重新載入配置:nginx -s reload;
Nginx搭建反向代理伺服器過程詳解
(4)每次以cmd方式啟動Nginx服務不符合實際要求,於是我們想到將其注冊為Windows服務,並設置為自動啟動模式。這里,我們使用一個 不錯的小程序:「Windows Service Wrapper」,將nginx.exe注冊為Windows服務,具體的步湊如下:
①下載最新版的 Windows Service Wrapper 程序,比如我下載的名稱是 「winsw-1.8-bin.exe」(本文底部有下載地址),然後把它命名成你想要的名字(比如: 「nginx-service.exe」,當然,你也可以不改名)
②將重命名後的 nginx-service.exe 復制到 nginx 的安裝目錄(比如,我這里是 「D:\Servers\nginx-1.4.7″)
③在同一個目錄下創建一個Windows Service Wrapper 的XML配置文件,名稱必須與第一步重命名時使用的名稱一致(比如我這里是 「nginx-service.xml」, 如果,你沒有重命名,則應該是 「winsw-1.8-bin.xml」),這個XML的內容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<service>
<id>nginx</id>
<name>Nginx Service</name>
<description>High Performance Nginx Service</description>
<executable>D:\Servers\nginx-1.4.7\nginx.exe</executable>
<logpath>D:\Servers\nginx-1.4.7\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p D:\Servers\nginx-1.4.7</startargument>
<stopargument>-p D:\Servers\nginx-1.4.7 -s stop</stopargument>
</service>
④在命令行下執行以下命令,以便將其注冊成Windows服務:nginx-service.exe install
Nginx搭建反向代理伺服器過程詳解
⑤接下來就可以在Windows服務列表看到Nginx服務了,這里我們可以將其設置為自動啟動了:
Nginx搭建反向代理伺服器過程詳解
(5)總結:在Windows環境中,要對外提供的Windows服務一般都要將其啟動類型設置為自動。
3.3 修改Nginx核心配置文件nginx.conf
(1)進程數與每個進程的最大連接數:
?nginx進程數,建議設置為等於CPU總核心數
?單個進程最大連接數,那麼該伺服器的最大連接數=連接數*進程數
Nginx搭建反向代理伺服器過程詳解
(2)Nginx的基本配置:
?監聽埠一般都為http埠:80;
?域名可以有多個,用空格隔開:例如 server_name www.ha97.com ha97.com;
Nginx搭建反向代理伺服器過程詳解
(3)負載均衡列表基本配置:
?location / {}:對aspx後綴的進行負載均衡請求,假如我們要對所有的aspx後綴的文件進行負載均衡時,可以這樣寫:location ~ .*\.aspx$ {}
?proxy_pass:請求轉向自定義的伺服器列表,這里我們將請求都轉向標識為http://cuitccol.com的負載均衡伺服器列表;
Nginx搭建反向代理伺服器過程詳解
?在負載均衡伺服器列表的配置中,weight是權重,可以根據機器配置定義權重(如果某台伺服器的硬體配置十分好,可以處理更多的請求,那麼可以 為其設置一個比較高的weight;而有一台的伺服器的硬體配置比較差,那麼可以將前一台的weight配置為weight=2,後一台差的配置為 weight=1)。weigth參數表示權值,權值越高被分配到的幾率越大;
Nginx搭建反向代理伺服器過程詳解
(4)總結:最基本的Nginx配置差不多就是上面這些內容,當然僅僅是最基礎的配置。(詳細的配置內容請下載底部的nginx-1.4.7詳細查看)
3.4 添加Nginx對於靜態文件的緩存配置
為了提高響應速度,減輕真實伺服器的負載,對於靜態資源我們可以在反向代理伺服器中進行緩存,這也是反向代理伺服器的一個重要的作用。
(1)緩存靜態資源之圖片文件
root /nginx-1.4.7/staticresources/image:對於配置中提到的jpg/png等文件均定為到/nginx-1.4.7/staticresources/image文件夾中進行尋找匹配並將文件返回;
expires 7d:過期時效為7天,靜態文件不怎麼更新,過期時效可以設大一點,如果頻繁更新,則可以設置得小一點;
TIPS:下面的樣式、腳本緩存配置同這里一樣,只是定位的文件夾不一樣而已,不再贅述。
Nginx搭建反向代理伺服器過程詳解
(2)緩存靜態資源之樣式文件
Nginx搭建反向代理伺服器過程詳解
(3)緩存靜態資源之腳本文件
Nginx搭建反向代理伺服器過程詳解
(4)在nginx服務文件夾中創建靜態資源文件夾,並要緩存的靜態文件拷貝進去:這里我主要將Web程序中用到的image、css以及js文件拷貝了進去;
Nginx搭建反向代理伺服器過程詳解
(5)總結:通過配置靜態文件的緩存設置,對於這些靜態文件的請求可以直接從反向代理伺服器中直接返回,而無需再將這些靜態資源請求轉發到具體的Web伺服器進行處理了,可以提高響應速度,減輕真實Web伺服器的負載壓力。
3.5 簡單測試Nginx反向代理實現負載均衡效果
(1)第一次訪問http://localhost/Default.aspx時從127.0.0.1:8050處理響應返回結果
(2)第二次訪問http://localhost/Default.aspx時從127.0.0.1:8060處理響應返回結果
(3)多次訪問http://localhost/Default.aspx時的截屏:
Nginx搭建反向代理伺服器過程詳解
學習小結
在本文中,藉助了Nginx這個神器簡單地在Windows環境下搭建了一個反向代理服務,並模擬了一個IIS伺服器集群的負載均衡效果。從這個 DEMO中,我們可以簡單地感受到反向代理為我們所做的事情,並體會負載均衡是怎麼一回事。但是,在目前大多數的應用中,都會將Nginx部署在 Linux伺服器中,並且會做一些針對負載均衡的優化配置,這里我們所做的僅僅就是一個小小的使用而已(just修改一下配置文件)。不過,萬丈高樓平地 起,前期的小小體會,也會幫助我們向後期的深入學習奠定一點點的基礎。
突然在QQ空間里看到了朋友送的禮物,猛然發現今天居然是我的陽歷生日,好吧,我祝我自己生日快樂,希望自己在未來的日子中能夠做更多的實踐,分享更多的內容。當然,如果你覺得本文還可以,那也麻煩點個贊,不要吝嗇你的滑鼠左鍵喲。
4、誰能幫簡單的介紹下代理伺服器的發展過程
這個你在來網上搜索一下,有很多自的,你是要代理伺服器的話 ,我到可以推薦一個,3gipv6 的代理伺服器 ,現在新增3個大流量伺服器 電信 鐵通 網通 都有~~3Gipv6 VPN美國有超大流量伺服器!
5、什麼是代理伺服器,為什麼叫做「代理「?好處是什麼,如何在C#程序中鏈接到代理伺服器?
代理程序的種類非常多,根據協議不同可以分成HTTP代理服務程序、代理服務程序等,而運行代理服務程序的伺服器也就相應稱為HTTP代理伺服器和FTP代理伺服器。本文將介紹的Web代理服務程序代理的是HTTP協議。
一、網路代理程序的優點
代理服務所起的是一個橋的作用,它是網路信息的中轉站。在網路中應用代理服務一般是基於以下幾個原因:
(1)充分利用IP地址資源。在區域網中,一般對外的IP地址都是非常有限的,為了保證區域網內部的主機都能夠訪問互聯網資源,通過網路代理就可以實現。
(2)能夠保證網路安全。網路代理可以充當內部網和互聯網之間的防火牆,通過過濾IP地址,限定某些IP地址對外部資源的訪問。
(3)能夠有效地隱藏自己的IP地址和主機名。由於所有對外網的請求都是通過代理伺服器實現的,所以目的主機只能知道代理伺服器的IP地址。
(4)提高網路速度。通常代理伺服器都設有一個較大的硬碟緩沖區,它存儲界數據,當你再訪問相同的數據時,則可以直接從緩沖區中取出信息,從而提高訪問速度。
二、網路代理的類型及實現原理
網路代理服務根據工作層次,一般可分為應用層代理、傳輸層代理和SOCKS代理。應用層代理是工作在TCP/IP參考模型的應用層之上,它支持對應用
層協議(如HTTP、FTP)的代理。它提供的控制最多,但是不靈活,必須要有相應的協議支持。如果協議不支持代理(如SMTP和POP),那就只能在應
用層以下代理,也即傳輸層代理。傳輸層代理直接與TCP層交互,更加靈活。要求代理伺服器具有部分真正伺服器的功能:監聽特定TCP或UDP埠,接收客
戶端的請求同時向客戶端發出相應的響應。另一種代理需要改變客戶端的IP棧,即SOCKS代理。它是可用的最強大、最靈活的代理標准協議。SOCK V4
允許代理伺服器內部的客戶端完全地連接到外部的伺服器,SOCK V5增加了對客戶端的授權和認證,因此它是一種安全性較高的代理。本節後面介紹的代理是
一種應用層上面的代理,所代理的協議是HTTP,也就是經常見到的Web代理。
正如上面所說,網路代理就是一個連接客戶端(需要代理的計算機)和伺服器端(提供訪問資源的伺服器)的橋。要實現這種橋的功能,網路代理就必須滿足下列條件,其實也是代理服務的運行的流程:
(1)接收並解析客戶端的請求。
(2)創建到伺服器的新連接,並轉發客戶端的請求信息。
(3)接收伺服器反饋的信息。
(4)解釋伺服器的響應並將該響應傳回給客戶端。
網路代理雖然有很多優點,但由於使用代理後,自己對網路的所有請求都是通過代理伺服器這個中間人來實現的,所以有可能碰上存有惡意的人監聽你的輸入的內容。同樣,如果選擇的代理伺服器的帶寬比較小,使用代理還會降低網速。
總而言之,使用代理有利有弊,使用者要根據自身的情況來決定。但無論如何,選擇一個好的代理伺服器是非常重要的。
三、C#實現Web代理服務程序
經過了上面的介紹,我想大家對代理服務應該有了一個基本的認識,下面就讓我們通過一個實例來深入體會一下如何用C#實現Web代理服務。Web代理服務的功能順序是這樣的:
(1)偵聽埠,等待客戶端瀏覽器發送來的Web請求信息。
(2)接收到客戶端Web請求信息後,解析出目標Web伺服器的地址,並創建一個Socket實例,並以此實例連接Web伺服器上。
(3)通過創建的Socket傳送客戶端的Web請求數據包到Web伺服器的80埠。
(4)接收Web伺服器返回的頁面數據。
(5)把接收來的數據傳送到客戶端,從而實現Web代理。
客戶端對某個Web地址的瀏覽,可能要傳送很多的Web請求信息(比如網頁中的圖像、Flash等),為了更快更准確地處理這些信息,Web代理服務
程序通常採用多線程來處理每一個Web請求。細心的讀者可能會發現,處理每一個客戶端的Web請求信息,代理伺服器軟體都要使用二個Socket,一個是
用來接收/傳送客戶機的信息,一個是和Web伺服器進行交流。為了區分這二個Socket,我們把和伺服器對話的稱為「服務Socket」,和客戶端機器
對話的稱為「客戶Socket」。
下面就開始Web代理服務程序的編寫工作。這個實例包含三個部分內容:
1.創建一個Web代理類。
2.Web代理服務的類的實例化。
3.如何通過這個Web代理類的實例實現Web代理服務。
(一)創建一個Web代理類
具體操作步驟如下:
1.啟動Visual Studio.Net,依次選擇「文件」、「新建」、「項目」菜單後,在彈出「新建項目」對話框中將「項目類型」設置為
「Visual C#項目」,將「模板」設置為「Windows應用程序」,在「名稱」文本框中輸入「WebProxy」,在「位置」文本框中輸入
「E:VS.NET項目」,然後單擊「確定」按鈕,這樣項目便建立好了。
2.依次選擇菜單「項目」、「添加類」,將彈出「添加新項」對話框。
3.將「模板」設置為「類」。
4.在「名稱」文本框中輸入「Proxy」,單擊「打開」按鈕
5.在「解決方案資源管理器」窗口中,雙擊Proxy.cs文件,進入Proxy.cs文件的編輯界
6.在Proxy.cs源文件的開頭,添加下列代碼,下列代碼是導入Proxy.cs中要使用到的命名空間:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.IO;
7.用下列構造函數替代默認的構造函數。下面的代碼是在Proxy類中創建一個構造函數。Proxy類只有一個構造函數,並且這個構造函數只有一個參數,這個參數是Socket對象,它主要用來和客戶端進行數據交換,是一個「客戶Socket」:
public Proxy(Socket socket)
{
//
// TODO: 在此處添加構造函數邏輯
//
this.clientSocket = socket ;
}
8.在定義Proxy類代碼區中加入下列代碼,下列代碼是定義Proxy類中的使用的一些變數,這些變數主要是在後面的定義Run方法中使用。
Socket clientSocket;
Byte[] read = new byte[1024];
//定義一個空間,存儲來自客戶端請求數據包
Byte [] Buffer = null;
Encoding ASCII = Encoding.ASCII;
//設定編碼
Byte[] RecvBytes = new Byte[4096];
//定義一個空間,存儲Web伺服器返回的數據
9.創建Proxy類中的Run方法。Run方法是Proxy類中唯一的方法。其功能是從客戶端接收HTTP請求,並傳送到Web伺服器,然後從
Web伺服器接收反饋來的數據,並傳送到客戶端。為了實現這二個不同方面的數據傳送,Run方法中是通過兩個Socket實例來實現的。在編寫Run方法
的時候,要注意下面兩點:
(1)由於HTTP建立於TCP協議之上,所以創建的Socket實例應該使用TCP協議。下面代碼是創建可以傳送HTTP請求命令到Web伺服器和接收來自Web伺服器反饋來信息的Socket實例:
Socket IPsocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
(2)另外一個Socket是在代理服務程序偵聽埠號,接收連接請求時候得到的,所以應該以此Socket為參數,利用Proxy類中的構造函數來創建一個Proxy實例。此Socket實現從客戶端接收HTTP請求信息,並傳送數據到客戶端。
Socket創建和使用是實現Web代理軟體的關鍵。在構造函數代碼後面,輸入下列代碼:
public void Run()
{
string clientmessage = " " ;
//存放來自客戶端的HTTP請求字元串
string URL = " " ;
//存放解析出地址請求信息
int bytes = ReadMessage(read, ref clientSocket, ref clientmessage);
if (bytes == 0)
{
return ;
}
int index1 = clientmessage.IndexOf(' ');
int index2 = clientmessage.IndexOf(' ', index1 + 1);
if ((index1 == -1) || (index2 == -1))
{
throw new IOException();
}
string part1 = clientmessage.Substring(index1 + 1, index2 - index1);
int index3 = part1.IndexOf('/', index1 + 8);
int index4 = part1.IndexOf(' ', index1 + 8);
int index5 = index4 - index3;
URL = part1.Substring(index1 + 4, (part1.Length - index5) - 8);
try
{
IPHostEntry IPHost = Dns.Resolve(URL);
Console.WriteLine("遠程主機名: " + IPHost.HostName);
string [] aliases = IPHost.Aliases;
IPAddress[] address = IPHost.AddressList;
Console.WriteLine("Web伺服器IP地址:" + address[0]);
//解析出要訪問的伺服器地址
IPEndPoint ipEndpoint = new IPEndPoint(address[0], 80);
Socket IPsocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//創建連接Web伺服器端的Socket對象
IPsocket.Connect(ipEndpoint);
//Socket連Web接伺服器
if (IPsocket.Connected)
Console.WriteLine("Socket 正確連接!");
string GET = clientmessage;
Byte[] ByteGet = ASCII.GetBytes(GET);
IPsocket.Send(ByteGet, ByteGet.Length, 0);
//代理訪問軟體對伺服器端傳送HTTP請求命令
Int32 rBytes = IPsocket.Receive(RecvBytes, RecvBytes.Length, 0);
//代理訪問軟體接收來自Web伺服器端的反饋信息
Console.WriteLine("接收位元組數:" + rBytes.ToString());
String strRetPage = null;
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, rBytes);
while (rBytes > 0)
{
rBytes = IPsocket.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, rBytes);
}
IPsocket.Shutdown(SocketShutdown.Both);
IPsocket.Close();
SendMessage(clientSocket, strRetPage);
//代理服務軟體往客戶端傳送接收到的信息
}
catch (Exception exc2)
}
//接收客戶端的HTTP請求數據
private int ReadMessage(byte [] ByteArray, ref Socket s, ref String clientmessage)
{
int bytes = s.Receive(ByteArray, 1024, 0);
string messagefromclient = Encoding.ASCII.GetString(ByteArray);
clientmessage = (String)messagefromclient;
return bytes;
}
//傳送從Web伺服器反饋的數據到客戶端
private void SendMessage(Socket s, string message)
{
Buffer = new Byte[message.Length + 1];
int length = ASCII.GetBytes(message, 0, message.Length, Buffer, 0);
Console.WriteLine("傳送位元組數:" + length.ToString());
s.Send(Buffer, length, 0);
}
至此,Proxy類的定義過程就完成了。
(二)利用Proxy類,實現Web代理
下面是利用Proxy類實現Web代理程序的具體實現步驟,Proxy類被定義在命名空間WebProxy中:
1.在Visual Studio .Net的代碼編輯器中打開Class1.cs文件,進入Class1.cs的代碼編輯界面。
2.在Class1.cs源文件的開頭導入下列命名空間:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.IO;
using System.Threading;
using WebProxy;
3.在Main函數中添加下列代碼,下列代碼是利用Proxy類,來實現Web代理程序:
const int port = 8000 ;
//定義埠號
TcpListener tcplistener = new TcpListener(port);
Console.WriteLine("偵聽埠號: " + port.ToString());
tcplistener.Start();
//偵聽埠號
while (true)
{
Socket socket = tcplistener.AcceptSocket();
//並獲取傳送和接收數據的Scoket實例
Proxy proxy = new Proxy(socket);
//Proxy類實例化
Thread thread = new Thread(new ThreadStart(proxy.Run));
//創建線程
thread.Start();
//啟動線程
}
保存上面的所有步驟,這樣一個簡單Web代理程序就算是完成了。此Web代理程序偵聽的是8000埠號。
(三)測試Web代碼程序
Web代理程序要通過二台計算機才能夠實現,其中的一台計算機運行Web代理程序充當Web代理伺服器,另外一台計算機充當客戶機,通過Web代理伺服器來瀏覽網頁。在確定Web代理軟體運行後,需要對客戶機進行進行必要的設置:
1.打開IE瀏覽器。
2.依次選擇「工具」、「Internet選項」,在彈出的「Internet選項」對話框中選擇「連接」頁面,單擊其中的「區域網設置」按鈕,在彈
出的「區域網(LAN)設置」對話框,選擇「為LAN使用代理伺服器(X),(這些設置不會應用於撥號和VPN連接)」多選框,並在其中的「地址」文本框
中輸入代理伺服器的IP地址,比如「10.138.198.213」,在「埠」文本框中輸入「8000」。
此時客戶端的設置就完成了。在確定IP地址為「10.138.198.213」的這台計算機已經運行上面介紹的Web代理程序後,打開客戶端的IE瀏覽器,並輸入要瀏覽的網址,就可以通過Web代理伺服器來瀏覽網頁了。
四、總結
至此一個簡單的Web代理服務軟體就算基本完成了。雖然代理服務的實現原理相對簡單,但具體實現還是很繁瑣的。網路代理是一個內容豐富,實現復雜的論
題,本節介紹的代理服務軟體,無論在實現的協議種類,還是實現的功能,都只能算很小的一部分。希望各位能夠通過本文的介紹,結合其他相關的知識,創造出功
能更強大、安全性更高,使用更穩定的網路代理服務程序來。
6、我想做IDC伺服器代理託管,就是虛擬主機,伺服器託管等 都需要什麼樣的流程?
1.需要把伺服器託管在機房,或者直接租用伺服器(都是通過idc商的):一般5000到10000左右;
2.再買個或者租個虛擬主機管理軟體,把伺服器劃分成N個空間:租1000,買5000;
3.請個伺服器代維:一年3650元/年起;
如果說不想這么麻煩,那就用ZKEYS系統的代理,他們這個系統裡面不僅有虛擬主機、伺服器託管等產品,還有其他雲產品,並且使用系統不需要再購買別的資源,使用系統很快就能部署完成並上線銷售。系統還有配套的管理模塊,涵蓋用戶中心系統、財務系統、工單系統、備案系統等,管理起來很方便。
7、如何查看是什麼程序連接代理伺服器
是你的360阻止了。
8、「502錯誤網關,伺服器作為網關或代理,從上游伺服器收到了無效的響應」怎麼處理?誰能幫我?
原因:瀏覽器緩存內存過多。
1、首先打開瀏覽器,點擊打開左上角齒輪中的「Internet 選項」。
2、然後在彈出來的窗口中點擊打開「刪除」。
3、然後在彈出來的窗口中選擇需要刪除的選項,點擊「刪除」。
4、然後重新打開瀏覽器,就可以解決問題了。
9、ccproxy代理上網的操作過程?
A電腦(可以上網) 、B電腦(不能上網)、C電腦(不能上網),首先三台電腦網線都要連接到學校的校園網,呵呵!下面設置代理的步驟為:1、在A電腦上操作,下載一個軟體CCPROXY「安裝ccproxysetup(一直下一步就可以了)
安裝後出現畫面如下:
2、點上面畫面的「設置」菜單!出現下面畫面:
3、把上面設置成如下:(僅僅多選了幾個項目,數字都沒有動它!)
4、點確定,OK了,A電腦上的事情基本完成!(從上圖看到了A電腦的IP為172.20.13.114,就是本地校園網的IP了!)理論上可以代理N台電腦,點注冊機注冊就可以了,由於網速限制,推薦代理3-5台差不多了!5、在B電腦上面操作:點「INTERNET右鍵屬性」——「連接」——「區域網設置」,看到下面的「代理伺服器」了嗎?設置成如下圖片的樣子:勾選後,填寫A電腦的本地校園網IP(以172.20.13.114為例!)和固定埠808,如下圖: 6、接著點「高級」選項,把「對所有協議使用相同的代理伺服器」前面的勾去掉,然後填寫「socks(c):」後面的IP和端
口,IP還是A電腦的IP如:172.20.13.114,埠填寫:1080 如下圖: 7、接著點「確定」就OK了,恭喜你可以上網了,試下打開一個網頁看看。8、以上設置完畢後,你的電腦B只以打開網頁!再進行以下設置增加功能:
(1)QQ上網設置:在登陸QQ的時候,點「網路設置」——「類型」——選擇「使用瀏覽器設置」——輸入QQ號和密碼,就可以登陸成功了!
(2)下載器設置:由於時間限制,推薦一個不用代理的下載器,「搜狗直通車下載器」,安裝後重起電腦就可以使用了!
(3)看電影設置:設置Windows Media player播放器的電影設置: 打開Media player播放器——雙擊Media player的上邊緣出現播放器的菜單,點「工具」——「選項」——「網路」——找到「流代理伺服器設置」——雙擊下面的「MMS」協議——在對話框中選擇「使用下列代理伺服器」——分別填入A電腦的IP 172.20.13.114 和埠 1080 點確定後,在用相同設置方法設置「RTSP」協議,OK了,可以看Windows Media player類型的電影了!
(4)RealonePlayer 設置方法類似,請大家自己設置,通常在線電影基本上就這2種播放器! (5)網路游戲設置請關注本站「架設伺服器」頁面,近期推出教程! B電腦的操作設置完畢!9、C電腦和B電腦設置完全相同,至此達到了A電腦代理了B、C等電腦上網!
10、百度推廣具體怎麼操作及流程
百度推廣按照給企業帶來的潛在客戶的訪問數量計費,企業可以靈活控制網路推廣投入,獲得最大回報。簡單5步,就可帶來生意機會,具體的操作流程如下:
1.請先打開競價推廣賬戶登錄頁面,輸入自己賬號的賬號密碼·進入到賬戶裡面,這里要注意輸入密碼是分大小寫的,一定要分清楚;
2.然後點擊進入--推廣管理--新建計劃 -新建單元 這里開始新建一個推廣單元然後點新建關鍵詞;
3.這時候會跳轉到關鍵詞規劃師,這個工具就是來為大家加上關鍵詞的,加詞方法如下圖;
4.通常過這樣選擇好自己想要投放的關鍵詞之後點保存;
5.關鍵詞加好後·就需要加上創意,需要回到單元頁面·點擊創意進入到寫創意頁面,寫好創意就可以等待審核好後·就可以推廣了;