Nginx(軟件負載均衡)

Nginx是一個軟件

目錄

nginx.conf配置文件:

啓動:

負載均衡


正向代理與反向代理:

正向代理,比如通過vpn軟件才能訪問外網. 軟件就叫做正向代理。
反向代理,指的是用戶要訪問外網,但是外網悄悄地把這個請求交給bilibili來做,那麼bilibili就是反向代理了。


nginx反向代理:  nginx把請求交給其他服務器來做。

動靜分離: css, js之類的都交給nginx來處理,其他動態jsp交給其他服務器來處理

負載均衡: 相同的項目,部署在多臺服務器上, 均衡的訪問

SESSION共享


下載軟件nginx

nginx.conf配置文件:

nginx目錄下的conf/nginx.conf文件

...              #全局塊

events {         #events塊
   ...
}

http {    #http塊
    ...   #http全局塊
    server {       #server塊
        ...       #server全局塊
        location [PATTERN] {  #location塊
            ...
        }
        location [PATTERN] {
            ...
        }
    }
    server {
      ...
    }
    ...     #http全局塊
}
  • 1、全局塊:配置影響nginx全局的指令。一般有運行nginx服務器的用戶組,nginx進程pid存放路徑,日誌存放路徑,配置文件引入,允許生成worker process數等。
  • 2、events塊:配置影響nginx服務器或與用戶的網絡連接。有每個進程的最大連接數,選取哪種事件驅動模型處理連接請求,是否允許同時接受多個網路連接,開啓多個網絡連接序列化等。
  • 3、http塊:可以嵌套多個server,配置代理,緩存,日誌定義等絕大多數功能和第三方模塊的配置。如文件引入,mime-type定義,日誌自定義,是否使用sendfile傳輸文件,連接超時時間,單連接請求數等。
  • 4、server塊:配置虛擬主機的相關參數,一個http中可以有多個server。
  • 5、location塊:配置請求的路由,以及各種頁面的處理情況。

 

http {
    upstream svrname{                             #負載均衡服務器配置
        server  服務器1IP:端口  weight=1權重;
        server  服務器2IP:端口  weight=2權重;
        server 服務器2IP:端口 backup;              #熱備
    }

    server {
        listen       80;                        #監聽端口
        server_name  127.0.0.1;                 #監聽地址
 
        location / {                             #/ 表示所有請求轉給這裏
            proxy_pass http://svrname;           #反向代理,請求轉向svrname定義的服務器列表
            index index.html;                    #設置默認頁
            deny 127.0.0.1;                      #拒絕的ip
            allow 172.18.5.54;                   #允許的ip  
        }

        location ~\.(css|js|png)$ {                #請求的url過濾,正則匹配所有的css js png訪問都由Nginx去處理
            root 項目文件路徑/webapps/ROOT;         #根目錄
        }
    }
}

啓動:

第一種:直接雙擊nginx.exe 

第二種:命令行方式  通過cmd命令啓動:

cd 文件路徑
啓動
start nginx
重啓
nginx -s reload
關閉
nginx -s stop

打開訪問地址

 

負載均衡

Nginx是軟件負載均衡

硬件負載均衡: 直接在服務器和外部網絡間安裝負載均衡設備(F5), 在功能和性能上都優於軟件負載均衡

 

負載均衡後每臺服務器獨有的數據不同步,比如用戶session,

解決方案

  1. 會話保持,每個用戶請求固定到同一臺服務器, 但是可用性降低,一臺服務器掛宕機就沒了
  2. 共享緩存,
    1. 每臺服務器同步緩存信息,服務器多了後io大
    2. 用Redis來存取緩存信息.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章