linux_nginx反向代理


什么代理?

       代理他人工作

什么是正向代理和反向向代理,他們之間的區別?

       這兩個代理很類似,但扮演了兩個不同角色,一個站在用戶角度,一個站在服務端角度

       正向代理: 幫助用戶請求服務

       返向代理:幫助服務均衡用戶的請求

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訪問                            

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM