12-2 12 Nginx 負載均衡 ssl

12.17 Nginx負載均衡php

12.18 ssl原理html

12.19 生成ssl密鑰對nginx

12.20 Nginx配置sslweb

擴展vim

  1. 針對請求的uri來代理 http://ask.apelearn.com/question/1049
  2. 根據訪問的目錄來區分後端的web http://ask.apelearn.com/question/920

12.17 Nginx負載均衡

有時候一個域名能夠經過多個IP解析,負載均衡就是代理對域名訪問請求自動選擇IP後端

yum install -y bin-utils     //安裝dig命令
dig qq.com  //挖掘qq.com域名的IP地址
vim /usr/local/nginx/conf/vhost/load.conf // 定義代理
···
#以QQ舉例,由於www.qq.com域名有多個IP
#ip_hash讓同一個來源的訪問始終走向一個ip,從而保留用戶信息
upstream qqxx   
{
    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://qqxx;   
        proxy_set_header Host   $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
···
curl -x127.0.0.1:80 www.qq.com    //加載以前訪問默認虛擬主機
[ctrl-r] -t -s reload
curl -x127.0.0.1:80 www.qq.com    //加載後訪問網頁源碼

12.18 ssl原理

理解:A是個人電腦 B是網站,公鑰,能夠理解爲鎖盒,私鑰理解爲鑰匙瀏覽器

  1. A訪問B ——被黑客截到沒有用,黑客想知道A的信息,還沒開始傳
  2. B給A一個鎖盒1號,這個鎖盒能夠當盒子用,B本身有鑰匙1號——中間黑客截到仍是沒用,有鎖盒1沒有鑰匙打不開
  3. A獲得鎖盒1號,本身生成一套鎖盒2號和鑰匙2號(對稱加密),鎖盒2號裝進鎖盒1號,還給B——中間被截到的仍是打不開的鎖盒1,
  4. B用鑰匙1號打開鎖盒1號,獲得鎖盒2號,開始用鎖盒2號傳輸數據給A——黑客:「仍是鎖盒。。」
  5. A之後接收就用鑰匙2號解開B發回來的數據,並用1號鎖盒裝數據發給B
  • 若是第二步,B給A的鎖盒若是被篡改,A的瀏覽器會報警,鎖盒子不對。(公證須要付費)

12.19 生產ssl密鑰對

步驟:負載均衡

  1. 生成私鑰.key
  2. 私鑰去密碼
  3. 私鑰生成證書申請文件.csr
  4. 私鑰.key加.csr生成公鑰.crt

測試curl

cd /usr/local/nginx/conf	
rpm -qf `which openssl` 
openssl genrsa -des3 -out tmp.key 2048    //key文件爲私鑰
openssl rsa -in tmp.key -out axiang.key     //轉換key,取消密碼
rm -f tmp.key 
openssl req -new -key axiang.key -out axiang.csr    //生成證書請求文件,須要拿這個文件和私鑰一塊兒生產公鑰文件
openssl x509 -req -days 365 -in axiang.csr -signkey axiang.key -out axiang.crt     //axiang.crt爲公鑰
ls axiang*

12.20 Nginx配置ssl

vim /usr/local/nginx/conf/vhost/ssl.conf//加入以下內容
...
server
{
    listen 443;
    server_name axiang.com;
    index index.html index.php;
    root /data/wwwroot/axiang.com;
    ssl on;
    ssl_certificate axiang.crt;
    ssl_certificate_key axiang.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}

-t && -s reload //若報錯unknown directive 「ssl」 ,須要從新編譯nginx,加上--with-http_ssl_module
mkdir /data/wwwroot/axiang.com 
echo "This is ssl" > /data/wwwroot/axiang.com/index.html
fg 
/usr/local/nginx/sbin/nginx -V  //查看須要編譯啥
./configure --help |grep -i ssl  //查看有那些編譯選項
./configure --prefix=/usr/local/nginx --with-http_ssl_module 
make 
make install 
/usr/local/nginx/sbin/nginx -t 
/etc/init.d/nginx restart  
netstat -lntp 
curl -x127.0.0.1:443 https://axiang.com  //這種方式不支持,須要hosts指向
vi /etc/hosts

curl https://axiang.com/ 
iptables -F  // win7瀏覽器測試
curl https://axiang.com/ 效果

win7瀏覽器訪問https://axiang.com/,也要加hosts 192.168.83.138 axiang.com測試

相關文章
相關標籤/搜索