天天看點

nginx負載均衡,

代理伺服器後面有多個web伺服器

nginx負載均衡,

upstream 子產品

dig 指令 域名解析

nginx負載均衡,

編輯新配置檔案

ip_hash 同一個使用者保持在一個機器上

nginx負載均衡,

不支援去代理https

ssl 原理

nginx負載均衡,

https 是加密的傳輸

每次傳輸都是随機的

生成SSL密鑰對

nginx負載均衡,

生成密鑰

nginx負載均衡,

轉換key 去掉密鑰密碼

-in 指定密鑰 -out 指定輸出

nginx負載均衡,

生成請求檔案 名字可以自己定義

nginx負載均衡,

生成公鑰檔案 -days 證書日期

nginx負載均衡,

配置nginx ssl

nginx負載均衡,

編輯新配置檔案 監聽端口443

nginx負載均衡,

建立root 目錄

nginx負載均衡,

檢測文法 報錯

nginx負載均衡,

重新編譯 需要ssl_module

nginx負載均衡,

加上ssl_module &&make&& make install

nginx負載均衡,

重新檢測文法沒有報錯

nginx負載均衡,

重新啟動服務 檢視端口多了一個443

nginx負載均衡,

在root 目錄下建立檔案

nginx負載均衡,

證書被标記為不可信任

nginx負載均衡,

提示通路不安全

nginx負載均衡,

沃通電子認證買證書

場景:1台nginx去代理4台apache

需求:根據不同的請求uri 代理到不同的apache

nginx的配置檔案為:

upstream aa.com {

server 192.168.0.121;

server 192.168.0.122;

}

upstream bb.com {

server 192.168.0.123;

server 192.168.0.124;

server {

listen 80;

server_name www.abc.com;

location ~ aa.php

{

proxy_pass http://aa.com/;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

location ~ bb.php

proxy_pass http://bb.com/;

nginx代理--根據通路的目錄來區分後端的web

我的需求: 當請求的目錄是 /aaa/ 則把請求發送到機器a,當請求的目錄為/bbb/則把請求發送到機器b,除了目錄/aaa/與目錄/bbb/外,其他的請求發送到機器b

配置檔案内容為:

upstream aaa.com

server 192.168.111.6;

upstream bbb.com

server 192.168.111.20;

listen 80;

server_name li.com;

location /aaa/

proxy_pass http://aaa.com/aaa/;

location /bbb/

proxy_pass http://bbb.com/bbb/;

location /

proxy_pass http://bbb.com/;

說明:

1 以上配置檔案中的 aaa.com 以及 bbb.com 都是自定義的,随便寫。

2 upstream 中的server 可以寫多個,例如

server 192.168.111.4;

server 192.168.111.5;

3 proxy_pass http://aaa.com/aaa/ 這裡必須要加這個目錄,不然就通路到根目錄了。

4 實際上,上述配置檔案中, localtion /bbb/ 部分是可以省略掉的,因為後邊的 location / 已經包含了/bbb/,是以即使我們不去定義 localtion /bbb/ 也是會通路到 bbb.com 的。

nginx 代理多台機器 長連接配接(會話保持)解決問題

網站使用程式 discuzx3 通路都正常,隻有使用者登陸存在異常,具體的情況是這樣的:

使用者登陸後,會馬上顯示未登陸,然後重新整理一下或者多下又變成了登陸中。

這個問題很顯然是由于session導緻,背景有多個web機器,當使用者登陸後,會把登陸态session儲存到目前web,但是再次發送請求時則會到另一台機器,是以原來的session資訊找不到了。解決這個問題有兩個思路:

可以把session時時同步到另外的機器。

可以讓前端的排程器保持長連接配接,也就是說某個使用者的請求在某一時間段内始終抓發到固定的一台機器上。

這兩種方式,第二種更容易實作。

使用的是nginx的代理,其中nginx有一種算法支援長連接配接,具體配置是這樣的:

upstream test {

ip_hash;

server 192.168.109.5;

server 192.168.109.3;

關鍵代碼: ip_hash

這樣,nginx會把使用者的請求一直轉發到後端的某台機器

http://blog.sina.com.cn/s/blog_72995dcc01016msi.html

繼續閱讀