Nginx+keepalive反向代理
官方最新版 keepalived-1.2.7
tar zxvf keepalived-1.2.7.tar.gzcd keepalived-1.2.7
在此之前。請安裝一下一些簡單的工具
yum install -y gcc openssl-devel popt-devel
不然會編譯不成功的。然後:
./configure make && make install cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/ cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/chmod +x /etc/init.d/keepalivedchkconfig --add keepalived chkconfig keepalived onmkdir /etc/keepalivedln -s /usr/local/sbin/keepalived /usr/sbin/
2.安裝Nginx
tar zxvf nginx-1.2.5.tar.gz cd nginx-1.2.5
安裝一下相關組件.
yum install -y pcre-devel ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module make && make install
3.配置keepalive
兩臺服務器端keepalived.conf內容都為如下,都設置為backup,不搶占,註意修改優先級不同,更詳細的keepalived配置文件說明可以執行man
! Configuration file for keepalived global_defs { notification_email { [email protected] } notification_email_from [email protected] smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } #監控服務.NGINX mysql等 vrrp_script chk_nginx { script "/home/check_nginx.sh" interval 2 weight 2 } vrrp_instance VI_1 { state BACKUP #主從設置 MASTER interface eth2 #網卡名 virtual_router_id 51 mcast_src_ip 10.0.1.133 #本機ip priority 50 #從機小於主機 advert_int 1 authentication { auth_type PASS auth_pass chtopnet } virtual_ipaddress { 10.0.1.2 #VIP 的IP } track_script { chk_nginx #檢測腳本 } } virtual_server 10.0.1.2 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 50 protocol TCP real_server 10.0.1.132 80 { weight 3 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 10.0.1.133 80 { weight 3 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
啟動相關服務。我在這兒使用的是nginx ,每個上面開了一個站點,通過IP可以直接訪問的。啟動keepalive後,就可以通過VIP的虛擬IP 10.0.1.2來訪問站點了,測試方法就是 停止任何其中一個站點,看它是否能自動切換到從服務器上。
上面代碼中 nginx的檢測腳本如下 :
#!/bin/bash if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ] then /usr/local/nginx/sbin/nginx sleep 5 if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ] then killall keepalived fi fi
在兩臺Web Server上執行realserver.sh腳本,為lo:0綁定VIP地址10.0.1.2、抑制arp廣播。
#!/bin/bash #description: Config realserver VIP=10.0.1.2 /etc/rc.d/init.d/functions case "$1" in start) /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP /sbin/route add -host $VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p >/dev/null 2>&1 echo "RealServer Start OK" ;; stop) /sbin/ifconfig lo:0 down /sbin/route del $VIP >/dev/null 2>&1 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
分別在主從機上執行 sh realserver.sh start 就可實現負載均衡及高可用集群了;
keepalive相關參數說明
! Configuration File for keepalived global_defs { notification_email { [email protected] #設置報警郵件地址,可以設置多個,每行一個。 需開啟本機的sendmail服務 } notification_email_from [email protected] #設置郵件的發送地址 smtp_server 127.0.0.1 #設置smtp server地址 smtp_connect_timeout 30 #設置連接smtp server的超時時間 router_id LVS_DEVEL #表示運行keepalived服務器的一個標識。發郵件時顯示在郵件主題的信息 } vrrp_instance VI_1 { state MASTER #指定keepalived的角色,MASTER表示此主機是主服務器,BACKUP表示此主機是備用服務器 interface eth0 #指定HA監測網絡的接口 virtual_router_id 51 #虛擬路由標識,這個標識是一個數字,同一個vrrp實例使用唯一的標識。即同一vrrp_instance下,MASTER和BACKUP必須是一致的 priority 100 #定義優先級,數字越大,優先級越高,在同一個vrrp_instance下,MASTER的優先級必須大於BACKUP的優先級 advert_int 1 #設定MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位是秒 authentication { #設置驗證類型和密碼 auth_type PASS #設置驗證類型,主要有PASS和AH兩種 auth_pass 1111 #設置驗證密碼,在同一個vrrp_instance下,MASTER與BACKUP必須使用相同的密碼才能正常通信 } virtual_ipaddress { #設置虛擬IP地址,可以設置多個虛擬IP地址,每行一個 10.0.0.148 } } virtual_server 10.0.0.148 80 { #設置虛擬服務器,需要指定虛擬IP地址和服務端口,IP與端口之間用空格隔開 delay_loop 6 #設置運行情況檢查時間,單位是秒 lb_algo rr #設置負載調度算法,這裏設置為rr,即輪詢算法 lb_kind DR #設置LVS實現負載均衡的機制,有NAT、TUN、DR三個模式可選 persistence_timeout 50 #會話保持時間,單位是秒。這個選項對動態網頁是非常有用的,為集群系統中的session共享提供了一個很好的解決方案。 #有了這個會話保持功能,用戶的請求會被一直分發到某個服務節點,直到超過這個會話的保持時間。 #需要註意的是,這個會話保持時間是最大無響應超時時間,也就是說,用戶在操作動態頁面時,如果50秒內沒有執行任何操作, #那麽接下來的操作會被分發到另外的節點,但是如果用戶一直在操作動態頁面,則不受50秒的時間限制 protocol TCP #指定轉發協議類型,有TCP和UDP兩種 real_server 10.0.0.137 80 { #配置服務節點1,需要指定real server的真實IP地址和端口,IP與端口之間用空格隔開 weight 3 #配置服務節點的權值,權值大小用數字表示,數字越大,權值越高,設置權值大小可以為不同性能的服務器 #分配不同的負載,可以為性能高的服務器設置較高的權值,而為性能較低的服務器設置相對較低的權值,這樣才能合理地利用和分配系統資源 TCP_CHECK { #realserver的狀態檢測設置部分,單位是秒 connect_timeout 10 #表示3秒無響應超時 nb_get_retry 3 #表示重試次數 delay_before_retry 3 #表示重試間隔 connect_port 80 } } real_server 10.0.0.139 80 { weight 3 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
Nginx+keepalive反向代理
相關推薦
Nginx+keepalive反向代理
nginx、linux、反向代理1.安裝keepalive官方最新版 keepalived-1.2.7 tar zxvf keepalived-1.2.7.tar.gzcd keepalived-1.2.7在此之前。請安裝一下一些簡單的工具 yum install -y gcc openssl-devel
Linux之使用MogileFS分布式文件系統並使用nginx實現反向代理
mogilefs與nginx的點點滴滴MogileFS是一套高效的文件自動備份組件,由Six Apart開發,廣泛應用在包括LiveJournal等web2.0站點上。 MogileFS的特性: 工作在應用層,無單點,自動文件復制(復制的最小單位是class,而不是文件),傳輸中立且使用nfs或者http協議
LVS(負載均衡)+keepalived(HA)+Nginx(反向代理)+Web(動靜態網站服務器)
網站服務器 web服務器 虛擬機 帶寬 規模 集群 考慮到LVS和Nginx的缺點(由於LVS采用的是同步請求轉發策略而Nginx采用的是異步轉發策略,結合兩者的缺點:作為負載均衡服務器的Nginx和LVS處理相同的請求時,所有的請求和響應流量都會經過Nginx服務器,但是使用LVS時
08-nginx的反向代理、緩存功能
日誌 情況 request 模型 etc 報文 div 添加 agen nginx作為反向代理的工作模型 相對於LVS工作在四層,nginx工作於應用層,所以它能夠理解http請求報文中首部的請求方法、URL、http協議等信息。 nginx收到請求報文後,這個報文源IP為
奪命雷公狗---linux NO:39 linux下nginx的反向代理
jpeg 顯示 技術 代碼 。。 cat jpg img image 反向代理圖如下所示: 由上圖可見,我們的服務器其實是分了兩臺,一臺專門存放 php 之類的源碼程序的,另外一臺是專門存放圖片用的服務器,由於圖片在服務器A不存在,所以可能導致如下顯示: 看不
Nginx+Tomcat反向代理利用certbot實現https
per share 反向 oot 一段 new gree package cti 一、利用Let‘s Encrypt 免費生成HTTPS證書 1、下載安裝certbot(Let‘s Encrypt ) 2、利用certbot生成證書 3、配置nginx的https證書 安裝
用nginx TCP反向代理作mail郵件代理
nginx 代理 反向代理 用nginx TCP反向代理作mail郵件代理用nginx TCP反向代理作mail郵件代理1. 背景2. Nginx安裝(包括nginx_upstream_check_module)3. Nginx配置4. 總結1. 背景新版本nginx有TCP反向代理功能,ngin
Nginx/Apache反向代理
gin oca lin 應用程序 分享 ogr con caption rri 初衷:一臺服務器上只有一個80端口,如果要部署多套網站,難免會有www.veblen.com:80808080或者www.veblen.com/test/child/pro.html這樣的尷
詳解Nginx + Tomcat 反向代理 如何在高效的在一臺服務器部署多個站點
打開 工程目錄 tro better man vi編輯 agent 設置 服務器 轉自:http://www.jb51.net/article/100111.htm 今天專門為大家分享一下 Nginx + Tomcat 反向代理 如何在一臺服務器部署多個站點,節省服務器開
Ngnix技術研究系列1-通過應用場景看Nginx的反向代理
emca pid 開頭 plain 性能 xxx md5 重新 行數 隨著我們業務規模的不斷增長,整個系統規模由兩年前的幾十臺服務器,井噴到現在2個數據中心,接近400臺服務器,上百個WebApi站點,上百個域名。 這麽多的WebApi站點這麽多的域名,管理和維護成本很高
nginx的反向代理功能和緩存功能
inpu port dev ria 最全 number con ref 方便 html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer
Nginx+Tomcat反向代理之負載均衡,redis存放session,keepalived暫未搭建
註意 image 依次 shutdown 占用 securecrt moni secure memcache 由於公司特定機器還未申請到位,本人之前對這一塊也不是很了解,所以前期需要先探路的原因,直接在阿裏雲上申請了一臺測試機,這裏部署的所有服務及操作全部在一臺機器上,經過
nginx實現反向代理負載均衡
反向代理負載均衡 Nginx實現反向代理 nginx代理基於是ngx_http_proxy_module模塊的功能,該模塊有很多屬性配置選項,如: proxy_pass:指定將請求代理至server的URL路徑; proxy_set_header:將發送至 server的報文的某首部進行重寫
nginx用反向代理機制解決跨域的問題
nginx nginx跨域 nginx反向代理 甘兵 什麽是跨域?使用js獲取數據時,涉及到的兩個url只要協議、域名、端口有任何一個不同,都被當作是不同的域,相互訪問就會有跨域問題。跨域,指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制。所謂同源是指,
nginx配置-反向代理
反向代理 nginx 續:nginx安裝配置 開啟 nginx 請求日誌 同時解開http模塊如下部分註釋 log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
Nginx 配置反向代理和負載均衡
變量 ash web 出現 location 部分 順序 AR 有效 反向代理 客戶端 A 出於某種原因(如 GFW)無法訪問服務器 B,但它能訪問服務器 C,服務器 C 能訪問服務器 A,那麽客戶端 A 可通過服務器 C 來訪問服務器 B。此時服務器 C 就是一個代理服務
Nginx的反向代理及負載均衡
Nginx1.集群的簡介 簡單來說,集群就是指一組相互獨立的計算機,利用高速通信網絡組成的一個較大的計算機服務系統,每個集群節點都是運行各自服務的獨立服務器。這些服務器之間可以彼此通信,協同向用戶提供應用程序、系統資源和數據,並以單一系統的模式加以管理。當用戶客戶機請求集群系統時,集群給用戶的感覺就是一
nginx+Tomcat反向代理實現session會話保持
tomcat session 會話保持環境:nginx+tomcat一臺nginx:192.168.2.198一臺tomcat1:192.168.2.197一臺tomcat2:192.168.2.199 一、Tomcat上操作(2臺機器相同操作)1、jdk安裝2、tomcat安裝3、配置path環境變量4、啟
nginx實現反向代理 switchhosts tomacat
logger ica connector notice scrip pan down script 返回 Nginx 是一個高性能的HTTP和反向代理服務器 工具下載: nginx下載地址:https://nginx.org/en/download.html (建議下載
nginx的反向代理功能和負載均衡
ron break 技術 col charset 後臺 style one location 使用nginx實現反向代理 Nginx只做請求的轉發,後臺有多個http服務器提供服務,nginx的功能就是把請求轉發給後面的服務器,決定把請求轉發給誰。 1安裝tomcat 在一