什么代理?
代理他人工作
什么是正向代理和反向向代理,他們之間的區別?
這兩個代理很類似,但扮演了兩個不同角色,一個站在用戶角度,一個站在服務端角度
正向代理: 幫助用戶請求服務
返向代理:幫助服務均衡用戶的請求
Nginx反向代理使用
Nginx支持L7,1.9以上版本支持L4
# L7 L4 相當於網絡7層模型,L7表示應用層, L4表示傳輸層
依賴模塊:
ngx_http_proxy_module
# proxy代理模塊,用於把請求拋給服務器節點或upstream服務池
ngx_http_upstream_module
# 負載均衡模塊,可以實現網站的負載均衡功能和節點的健康檢查
Nginx反向代理配置:
# 中小企業大量使用
1. 反向代理環境安裝
和Nginx環境安裝一樣 linux_nginx環境安裝
2. 更改配置文件
其配置文件位置: /application/nginx/conf/nginx.conf
# 其配置添加在 http 模塊中
upstream www_server_pools {
# 反向代理upstream聲明,后面是名字,用在location中表示跳轉到反向代理服務器
server 10.0.0.8:80 weight=1;
server 10.0.0.9:80 weight=1;
# weiht表示權重,越大獲得的請求越多,這個ip地址是web服務的地址
# weight一樣,雨露均沾,也就是說可以從這里,指向更改了端口號的web服務器
# 雨露均沾就會有個問題,客戶登錄認證時候,在不同的web服務中跳轉,重復認證問題,可以添加 ip_hash; 這個解決一個用戶連接,只能固定使用同一個web服務器提供服務
}
# 主配置文件中server綁定域名
server {
listen 80;
server_name www.yunhello.cn; # 代理服務器綁定域名
location / {
proxy_pass http://www_server_pools; # 跳轉到反向代理
proxy_set_header Host $host; # 傳遞請求頭
proxy_set_header X-Forwarded-For $remote_addr; # 傳遞客戶端源地址
}
}
# 這樣的話,用戶通過域名訪問web服務,首先是到負載均衡服務,然后負載均衡代替用戶向web服務請求,對用戶來說,和直接訪問web服務沒有區別
# 可是這樣的訪問,無法獲取用戶的請求頭信息和來源ip信息
# 在location中添加下面這兩行
# proxy_set_header Host $host; # 傳遞用戶的請求頭
# proxy_set_header X-Forwarded-For $remote_addr; # 傳遞用戶訪問ip地址
# 在web服務中,需要激活access_log 默認格式配置 $http_x_forwarded_for字段顯示用戶源ip,然后再每個站點的server中指定各個站點單獨的access.log 中應用主配置文件中main格式
如何實現Nginx服務的高可用?
主Nginx負載均衡器宕機了,備負載均衡頂替上去
1. 安裝keepalived模塊
yum install keepalived -y
2. 配置文件為 /etc/keepalived/keepalived.conf
# keeplived不僅僅是ip的管理,還有資源的管理,ivs管理,需要把除了ip管理其他的都干掉,其他功能並不需要,更改為以下內容,多余全部刪掉
! Configuration File for keepalived
global_defs {
notification_email {
qq@qq.com # 個人郵箱,一般不用,使用監控軟件實現監控
}
notification_email_from qq@qq.com # 郵箱
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL # 備需要更改一下,不能一樣
}
vrrp_instance VI_1 {
state MASTER # 主,備需要改為 BACKUP
interface eth0 # 通信網卡,默認綁定輔助ip的網卡
virtual_router_id 51 # 實例id,用這個來區分主主備是不是一個實例
priority 150 # 優先級,數字越大優先級越高
advert_int 1 # 心跳間隔
authentication {
auth_type PASS # 兩台負載均衡之間通信密碼
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3 # 輔助ip地址一樣,當主掛了,備就使用這個輔助ip
}
}
# 然后用戶請求,將會直接到達這個輔助ip,然后通過這個輔助ip訪問代理,實現web訪問
