1. 程式人生 > >Nginx負載均衡,ssl原理,生成ssl密鑰對,Nginx配置ssl

Nginx負載均衡,ssl原理,生成ssl密鑰對,Nginx配置ssl

ssl nginx

Nginx負載均衡
負載均衡就是:將本應該這臺機器(或集群)要處理的請求(工作或負載),根據一定的算法,平均地分配到其他的機器(或集群)上去處理,這樣可以大大減少這臺機器(或集群)的工作量,防止因負載過大而造成響應超時或down機等意外情況的發生。一般大的網站和系統都使用了負載均衡!
首先進入/usr/local/nginx/conf/vhost/目錄下
然後編輯文件 vim /usr/local/nginx/conf/vhost/load.conf
然後加入下列配置
upstream qq_com
{
ip_hash;
server 61.135.157.156:80;
server 125.39.240.113:80;
}
server
{
listen 80;
server_name www.qq.com;
location /
{
proxy_pass http://qq_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;
}
}
其中upstream這個名字可以隨便寫,比如叫qq。
ip_hash同一個用戶始終在同一個機器上,比方說我們在A機器上發一個帖子,刷新後發現自己沒有登錄,這是因為我們刷新後登錄了B機器。所以我們要通過技術手段去讓我們始終登錄A機器上。所以我們加一個ip_hash就可以實現。
proxy_pass,這個比較重要,這裏的名字要和upstream的名字一致才可以。
這裏有一個知識點,nginx不支持https,它的端口是443。

ssl原理
技術分享圖片

生產ssl密鑰對
我們現在可以在虛擬機上頒發一套證書,而這套證書就是公鑰和私鑰。
要想創建公鑰和私鑰,首先要有一套工具。我們將這套工具放到/usr/local/nginx/conf
這裏需要的工具為openssl,如果沒有,我們可以yum安裝一下。
然後我們開始創建私鑰
openssl genrsa -des3 -out tmp.key 2048//key (其中genrsa是生成rsa格式的私鑰,名字為tmp.key,長度為2048)
Generating RSA private key, 2048 bit long modulus

...................+++
.................................+++
e is 65537 (0x10001)
Enter pass phrase for tmp.key:
Verifying - Enter pass phrase for tmp.key:
這裏生產的私鑰是需要密碼的。我們輸入自己想好的密碼即可。
設置密碼會比較麻煩,所以我們第二步取消密碼,轉換key。
openssl rsa -in tmp.key -out aminglinux.key (-in是指定需要轉換的key,-out是指定輸出的key)
openssl rsa -in tmp.key -out aminglinux.key
Enter pass phrase for tmp.key:
writing RSA key
這裏需要輸入我們剛才輸入的密碼。
操作完成後我們就可以刪除tmp.key
rm -f tmp.key
然後我們去生成一個請求的文件,這個文件和私鑰結合可以產生公鑰。
openssl req -new -key aminglinux.key -out aminglinux.csr
然後出現的文字段我們可以直接回車,如果在生產環境中,我們就需要仔細的去填寫了。

Nginx配置ssl
首先生成配置文件,vim /usr/local/nginx/conf/vhost/ssl.conf
然後將配置寫入
server
{
listen 443;
server_name aming.com;
index index.html index.php;
root /data/wwwroot/aming.com;
ssl on;
ssl_certificate aminglinux.crt;
ssl_certificate_key aminglinux.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}
-t && -s reload //若報錯unknown directive “ssl” ,需要重新編譯nginx,加上--with-http_ssl_module mkdir /data/wwwroot/aming.com echo “ssl test page.”>/data/wwwroot/aming.com/index.html 編輯hosts,增加127.0.0.1 aming.com curl https://aming.com/

Nginx負載均衡,ssl原理,生成ssl密鑰對,Nginx配置ssl