導航:首頁 > IDC知識 > debian代理伺服器

debian代理伺服器

發布時間:2020-11-29 10:16:12

1、如何在Linux上使用HAProxy配置HTTP負載均衡系統

TTP負載均衡簡介

HTTP負載均衡是一種網路解決方案,負責在託管相同應用內容的幾台伺服器之間分配進入的HTTP或HTTPS流量。由於在多台可用伺服器之間均衡了應用請求,負載均衡系統就能防止任何應用伺服器變成單一故障點,因而提高了整體的應用可用性和響應能力。它還讓你可以隨著不斷變化的工作負載,輕松地縮小/擴大部署的應用系統的規模,只需添加或刪除額外的應用伺服器。

哪裡使用負載均衡、何時使用?

由於負載均衡系統改進了伺服器的利用率,最大限度地提高了可用性,只要你的伺服器開始面臨繁重負載,或者正為一個較龐大的項目規劃架構,就應該使用它。事先規劃好負載均衡系統的用途是個好習慣。那樣,未來你需要擴展環境規模時,它會證明其用途。

HAProxy是什麼東東?

HAProxy是一種流行的開源負載均衡和代理系統,面向GNU/Linux平台上的TCP/HTTP伺服器。HAProxy採用了單一線程的事件驅動型架構而設計,它能夠輕松地處理10G網卡線路速度,現廣泛應用於許多生產環境中。其功能特性包括:自動檢查健康狀況、可定製的負載均衡演算法、支持HTTPS/SSL以及會話速率限制等。

我們在本教程中要達到什麼樣的目的?

在本教程中,我們將逐步介紹為HTTP網站伺服器配置基於HAProxy的負載均衡系統這個過程。

前提條件

你至少需要一台(最好是兩台)網站伺服器來證實所搭建負載均衡系統的功能。我們假設,後端HTTP網站伺服器已經搭建並運行起來。

將HAProxy安裝到Linux上

就大多數發行版而言,我們可以使用你所用發行版的軟體包管理器來安裝HAProxy。

將HAProxy安裝到Debian上

在Debian中,我們需要為Wheezy添加向後移植功能。為此,請在/etc/apt/sources.list.d中創建一個名為「backports.list」的新文件,其內容如下:

deb http://cdn.debian.net/debian wheezy­backports main
更新你的軟體庫數據,並安裝HAProxy。

# apt­ get update
# apt ­get install haproxy
將HAProxy安裝到Ubuntu上

# apt ­get install haproxy
將HAProxy安裝到CentOS和RHEL上

# yum install haproxy
配置HAProxy

在本教程中,我們假設有兩台HTTP網站伺服器已搭建並運行起來,其IP地址分別為192.168.100.2和192.168.100.3。我們還假設,負載均衡系統將在IP地址為192.168.100.4的那台伺服器處進行配置。

為了讓HAProxy發揮功用,你需要更改/etc/haproxy/haproxy.cfg中的幾個項目。這些變更在本章節中予以描述。萬一某個配置對不同的GNU/Linux發行版而言有所不同,會在相應段落中加以註明。

1. 配置日誌功能

你首先要做的工作之一就是,為你的HAProxy建立合適的日誌功能,這對將來進行調試大有用處。日誌配置內容位於/etc/haproxy/haproxy.cfg的global部分。下面這些是針對特定發行版的指令,用於為HAProxy配置日誌。

CentOS或RHEL:

要想在CentOS/RHEL上啟用日誌功能,把:

log 127.0.0.1 local2

換成:

log 127.0.0.1 local0

下一步,在/var/log中為HAProxy創建單獨的日誌文件。為此,我們需要改動當前的rsyslog配置。為了讓配置簡單而清楚,我們將在/etc/rsyslog.d/中創建一個名為haproxy.conf的新文件,其內容如下。

$ModLoad imudp
$UDPServerRun 514
$template Haproxy,"%msg%\n"
local0.=info ­/var/log/haproxy.log;Haproxy
local0.notice ­/var/log/haproxy­status.log;Haproxy
local0.* ~
該配置將把基於$template的所有HAProxy消息隔離到/var/log中的日誌文件。現在,重啟rsyslog,讓變更內容生效。

# service rsyslog restart
Debian或Ubuntu:

要想在Debian或Ubuntu上為HAProxy啟用日誌功能,把:

log /dev/log local0
log /dev/log local1 notice
換成:

log 127.0.0.1 local0
下一步,為HAProxy配置單獨的日誌文件,編輯/etc/rsyslog.d/中一個名為haproxy.conf的文件(或者Debian中的49-haproxy.conf),其內容如下。

$ModLoad imudp
$UDPServerRun 514
$template Haproxy,"%msg%\n"
local0.=info ­/var/log/haproxy.log;Haproxy
local0.notice ­/var/log/haproxy­status.log;Haproxy
local0.* ~
該配置將把基於$template的所有HAProxy消息隔離到/var/log中的日誌文件。現在,重啟rsyslog,讓變更內容生效。

# service rsyslog restart
2. 設置默認值

下一步是為HAProxy設置默認變數。找到/etc/haproxy/haproxy.cfg中的defaults部分,把它換成下列配置。

log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 20000
contimeout 5000
clitimeout 50000
srvtimeout 50000
上述配置推薦HTTP負載均衡器使用,但可能不是最適合你環境的解決方案。如果那樣,請參閱HAProxy參考手冊頁,進行適當的改動和調整。

3. 網站伺服器集群的配置

網站伺服器集群(Webfarm)的配置定義了可用的HTTP伺服器集群。我們所建負載均衡系統的大部分設置都將放在這里。現在,我們將創建一些基本的配置,我們的節點將在這里加以定義。把從frontend部分到文件末尾的所有配置換成下列代碼:

listen webfarm *:80
mode http
stats enable
stats uri /haproxy?stats
stats realm Haproxy\ Statistics
stats auth haproxy:stats
balance roundrobin
cookie LBN insert indirect nocache
option httpclose
option forwardfor
server web01 192.168.100.2:80 cookie node1 check
server web02 192.168.100.3:80 cookie node2 check
「listen webfarm *:80」這一行定義了我們的負載均衡系統將偵聽哪些介面。出於本教程的需要,我將該值設為「*」,這讓負載均衡系統偵聽我們的所有介面。在實際場景下,這可能不合意,應該換成可從互聯網來訪問的某個介面。

stats enable
stats uri /haproxy?stats
stats realm Haproxy\ Statistics
stats auth haproxy:stats
上述設置聲明,可以在http://<load-balancer-IP>/haproxy?stats處訪問負載均衡系統的統計數字。這種訪問由簡單的HTTP驗證以及登錄名「haproxy」和密碼「stats」來確保安全。這些設置應該換成你自己的登錄信息。如果你不想讓這些統計數字被人看到,那麼可以完全禁用它們。

下面是HAProxy統計數字的一個例子。

「balance roundrobin」這一行定義了我們將使用哪種類型的負載均衡。在本教程中,我們將使用簡單的輪叫調度演算法,這對HTTP負載均衡來說完全綽綽有餘。HAProxy還提供了其他類型的負載均衡:

•leastconn:連接數最少的伺服器優先接收連接。

•source:對源IP地址進行哈希處理,用運行中伺服器的總權重除以哈希值,即可決定哪台伺服器將接收請求。

•uri:URI的左邊部分(問號前面)經哈希處理,用運行中伺服器的總權重除以哈希值。所得結果決定哪台伺服器將接收請求。

•url_param:變數中指定的URL參數將在每個HTTP GET請求的查詢串中進行查詢。你基本上可以將使用蓄意製作的URL(crafted URL)的請求鎖定於特定的負載均衡節點。

•hdr(name):HTTP頭<name> 將在每個HTTP請求中進行查詢,被定向到特定節點。

「cookie LBN insert indirect nocache」這一行讓我們的負載均衡系統存儲持久性cookie,這讓我們得以准確查明集群中的哪個節點用於某一個會話。這些節點cookie將與指定的名稱一並存儲起來。在我們這個例子中,我使用了「LBN」,但你可以指定自己喜歡的任意名稱。節點將為該cookie把字元串作為一個值而存儲起來。

server web01 192.168.100.2:80 cookie node1 check
server web02 192.168.100.3:80 cookie node2 check
上述部分對網站伺服器節點集群進行了定義。每台伺服器都用內部名稱(比如web01和web02)、IP地址和獨特的cookie串來表示。cookie串可以定義為你需要的任何名稱。我使用了簡單的node1、node2 ... node(n)。

啟動HAProxy

你完成了配置工作後,可以啟動HAProxy,驗證一切按預期運行。

在Centos/RHEL上啟動HAProxy

使用下列指令,讓HAProxy能夠在系統啟動後啟動,並打開它:

# chkconfig haproxy on
# service haproxy start
當然,別忘了啟用防火牆中的埠80,如下所示。

CentOS/RHEL 7上的防火牆:

# firewall­cmd ­­permanent ­­zone=public ­­add­port=80/tcp
# firewall­cmd ­­reload
CentOS/RHEL 6上的防火牆:

把下面這一行添加到/etc/sysconfig/iptables中的這部分「:OUTPUT ACCEPT」:

A INPUT ­m state ­­state NEW ­m tcp ­p tcp ­­dport 80 ­j ACCEPT
然後重啟iptables:

# service iptables restart
在Debian上啟動HAProxy

使用下列指令啟動HAProxy:

# service haproxy start
別忘了啟用防火牆中的埠80,為此把下面這一行添加到/etc/iptables.up.rules:

A INPUT ­p tcp ­­dport 80 ­j ACCEPT
在Ubuntu上啟動HAProxy

讓HAProxy能夠在系統啟動後啟動,只要在/etc/default/haproxy中將「ENABLED」選項設為「1」:

ENABLED=1
啟動HAProxy:

# service haproxy start
然後啟用防火牆中的埠80:

# ufw allow 80
測試HAProxy

為了檢查HAproxy是否在正常工作,我們可以執行下列步驟:

首先,用下列內容准備好test.php文件:

<?php
header('Content-Type: text/plain');
echo "Server IP: ".$_SERVER['SERVER_ADDR'];
echo "\nX-Forwarded-for: ".$_SERVER['HTTP_X_FORWARDED_FOR'];
?>
該PHP文件將告訴我們哪台伺服器(即負載均衡系統)轉發請求,哪台後端網站伺服器實際處理請求。

把該PHP文件放到這兩台後端網站伺服器的根目錄下。現在,使用curl命令,從負載均衡系統(192.168.100.4)提取這個PHP文件。

$ curl http://192.168.100.4/test.php
我們多次運行這個命令時,應該會看到下面兩個輸出交替出現(由於輪叫調度演算法)。

Server IP: 192.168.100.2

X-Forwarded-for: 192.168.100.4

Server IP: 192.168.100.3

X-Forwarded-for: 192.168.100.4

如果我們停止這兩台後端網站伺服器中的其中一台,curl命令應該仍會執行,將請求定向到另一台可用的網站伺服器。

結束語

至此,你應該有了一套完全實用的負載均衡系統,能夠在輪叫循環模式下為你的網站節點提供請求。與往常一樣,你可以隨意更改配置,讓它更適合自己的基礎設施。希望本教程幫助你讓自己的網站項目具有更強的抗壓力和更高的可用性。

正如大家已經注意到的那樣,本教程所含的設置適用於僅僅一套負載均衡系統。這意味著,我們把一個單一故障點換成了另一個單一故障點。在實際場景下,你應該部署至少兩套或三套負載均衡系統,以防範可能出現的任何故障,但這不在本教程的討論范圍之內。

2、如何讓debian主機通過windows虛擬機代理上網

首先使用主機的本地連接有線網卡連接內網交換機或無線網卡連接內網WiFi設置虛擬機網路適配器為兩塊網卡,一塊網卡為橋接模式,自動橋接對應的有線或無線網卡,在系統中安裝安全工具,並認證成功,確保虛擬機能上網
另一塊網卡設置為hostonly(僅主機模式),同時在虛擬機中在第一塊網卡上右鍵屬性——高級,啟用ICS(internet 連接共享),作用網卡為第二塊對應僅主機模式的網卡(默認系統會修改這塊網卡的ip地址為192.168.0.1)
在主機網路連接中把vmnet1這塊虛擬網卡,設置為DHCP即可(或者手動指定為192.168.0.2/255.255.255.0,網關192.168.0.1,設置對應dns即可)
在主機中,其實只有vmnet1是能上網的。

3、高手們來回答 :在Debian系統的VPS上用3Proxy架設http https代理和socks代理配置, 用帳號密碼驗證

這是我的配置文件,只有socks代理,其中有3個用戶,用戶名和密碼一樣。

4、debian安裝了proxy服務,請問策略具體是怎麼配置的呢,策略應該是在/etc/squid3/squid.conf配置的嗎?

/etc/squid3/squid.conf 這是配置squid3的,主要用來優化性能。
安全策略使用 iptables 配置即可。。。

5、教我在租用的LINUX上架設SOCKS5代理IP。 DEBIAN的系統。 不要說網上的教程,我看不懂。對LINUX一竅不通。

在Linux下有各種各樣的代理程序可用,象最常用的Squid,是http/https代理,也能代理ftp請求,但它實際上是個HTTP代理程序,不是ftp代理,但它能處理ftp代理請求,就象瀏覽器處理ftp請求一樣的方法工作,有些程序只能設置成使用socks代理,象CuteFTP;還有象Wu-FTP只能設置成使用ftp代理(這里的ftp代理是標準的ftp代理,不是Squid所支持的那種方式);ICQ 2000能同時接受https代理和Socks代理;NetVampire能接受標準的HTTP(GET/POST)代理(被Squid支持),和HTTP(CONNECT)代理(也被Squid支持)。

為了使用Cute-FTP,除了IP偽裝的方法外,就要使用Socks代理,現在讓我們來看看配置Socks5的過程:

1. 下載文件
從www.socks.nec.com下載最新版的socks5源文件到/tmp目錄下。socks5-v1.0r11.tgz

2. 在防火牆上編譯並安裝(該防火牆應直接連至internet,是安裝了兩塊網卡的雙宿主機,假設內部網段為
192.168.0.0/24)

cd /tmp
tar -xvfz socks5-v1.0r11.tgz

cd /tmp/socks5-v1.0r11
./configure --with-threads
make
make install

3. 配置文件/etc/socks5.conf

# /etc/socks5.conf
set SOCKS5_MAXCHILD 3
set SOCKS5_NOIDENT
set SOCKS5_TIMEOUT 5

interface 192.168.0. - eth1
auth 192.168.0. - u
permit u - 192.168.0. - - - jephe
permit u - 192.168.0. - - - jack
deny - - - - - - -

4. 配置文件/etc/socks5.passwd

# /etc/socks5.passwd
jephe password_of_jephe_is_here
jack password_of_jephe_is_here

5.開始測試
/usr/local/bin/socks5 -f -s
如果出現下面的信息表示測試成功。
18210: Socks5 starting at Mon Dec 14 18:23:45 1998 in normal mode

然後退出socks5,開始正式運行它在背景模式:

6. 正式運行

/usr/local/bin/socks5 -t -s 2> /var/log/socks5

7. 最後,加到/etc/rc.d/rc.local
echo "/usr/local/bin/socks5 -t -s 2> /var/log/socks5" >> /etc/rc.d/rc.local

6、我安裝了一台kali linux 是debian的內核現在debian源更新失敗沒做任何代理剛安裝上

用單用戶模式進去,把/etc/yum.repo.d/下的所有文件都刪掉,在chkconfig netwrok off 然後 reboot ,能正常進去後在配置你的網路

與debian代理伺服器相關的知識