nginx使用手冊+基本原理+優缺點

1、nginx優勢

1.反向代理

一、正向代理: 客戶端和原始服務器(origin server)之間的服務器,爲了從原始服務器取得內容,客戶端向代理髮送一個請求並指定目標(原始服務器),而後代理向原始服務器轉交請求並將得到的內容返回給客戶端。javascript

graph LR client--req-->ClientProxy ClientProxy--resp-->client ClientProxy--req-->server server--resp-->ClientProxy

server不知道client是誰java

二、反向代理:客戶端請求服務器,中間也是通過一個代理服務器,客戶端訪問代理服務器就好像訪問目標服務器同樣。同時代理服務器將請求轉發到後端具體服務器。nginx

graph LR client--req-->ServerProxy ServerProxy--resp-->client ServerProxy--req-->Server01 Server01--resp-->ServerProxy ServerProxy--req-->Server02 Server02--resp-->ServerProxy ServerProxy--req-->Server03 Server03--resp-->ServerProxy

客戶端不知道本身具體訪問的服務器是誰後端

三、總結 https://blog.csdn.net/wnvalentin/article/details/88171847緩存

正向代理是對客戶端的代理,由客戶端設立,客戶端了解代理服務器和目標服務器,但目標服務器不瞭解真正的客戶端是誰;使用正向代理可達到 突破訪問限制、提升訪問速度、對服務器隱藏客戶端IP等目的;安全

反向代理是對服務器的代理,由服務器設立,客戶端不瞭解真正的服務器是誰,使用反向代理可達到負載均衡、保障服務端安全、對客戶端隱藏服務器IP等目的。服務器

2.負載均衡

集羣平攤請求壓力架構

負載均衡策略:併發

  • 輪詢 :平均訪問(默認方式)
upstream myserver{
         ip_hash;
         server 192.168.17.129:8000;
         server 192.168.17.129:8001;
		 server 127.0.0.1:7071 down; #不參與負載均衡  
    	 server 127.0.0.1:7070 backup; #備份server  只有其餘都忙了才訪問 
     }
  • 權重
upstream myserver{
         server 192.168.17.129:8000 weight 1;
         server 192.168.17.129:8001 weight 2;
     }
  • IP hash :每一個ip分配一個固定的服務器
upstream myserver{
         ip_hash;
         server 192.168.17.129:8000;
         server 192.168.17.129:8001;
     }
  • URL hash
upstream myserver{
         server 192.168.17.129:8000;
         server 192.168.17.129:8001;
    	 hash $request_uri;  
		 hash_method crc32; #hash 方法
     }
  • fair 根據響應時間來訪問,哪一個機器響應快就哪一個
upstream myserver{
         server 192.168.17.129:8000;
         server 192.168.17.129:8001;
    	 fair;
     }

server模塊的配置:app

server{
        listen 80;
        server_name 192.168.17.129;
        location /{
            proxy_pass http://myserver; #前面upstream的名字
        }
    }

3.動靜分離

動態頁面和靜態頁面分開部署,把動態頁面的服務器性能弄的好一些,靜態頁面的服務器能夠差一些,而且能夠設置緩存。

2、基本命令

  • nginx 啓動

  • nginx -v版本號

  • nginx -s stop 關閉

  • nginx -s reload 從新加載配置文件

3、配置文件

一、root和alias的區別

  • root:【指定機器根路徑】
location  /appImg/{
    root /home/nginx;
}

這個location至關於訪問服務器上的文件路徑: /home/nginx/appImg/ 。

  • alias:【別名】
location  /appImg/{
    alias /home/nginx/;
}

這個alias表明了/appimg/ = /home/nginx/

三、worker_connections 和 worker_processes

設置併發數和鏈接數

鏈接數:

靜態資源:2

graph LR client--請求靜態資源1-->nginx nginx--返回靜態資源2-->client

反向代理:4

graph LR client--請求動態資源1-->nginx nginx--請求後端服務2-->server server--返回數據3-->nginx nginx--返回動態資源4-->client

4、基本原理

  • master管理者:管理監控
  • worker工做者 :鏈接

每一個worker都維護一個線程處理請求

worker_processes設置的數量和cpu核數最好相等,每一個worker都是一個獨立的進程

3個worker

root     20789     1  0 10:19 ?        00:00:00 nginx: master process nginx
nobody   22281 20789  0 10:47 ?        00:00:00 nginx: worker process
nobody   22282 20789  0 10:47 ?        00:00:00 nginx: worker process
nobody   22283 20789  0 10:47 ?        00:00:00 nginx: worker process
root     22319 20514  0 10:48 pts/1    00:00:00 grep --color=auto nginx

1個worker

root     20789     1  0 10:19 ?        00:00:00 nginx: master process nginx
nobody   22376 20789  0 10:49 ?        00:00:00 nginx: worker process
root     22378 20514  0 10:49 pts/1    00:00:00 grep --color=auto nginx
graph TB Linux-->master master-->worker1 master-->worker2 master-->worker3 worker1-->client1 worker1-->client2 worker2-->client3 worker2-->client4 worker3-->client5 worker3-->client6

master-worker架構的優勢

  1. 支持熱部署reload,一個worker修改config,其餘繼續處理請求
  2. 進程獨立,每一個worker都是一個進程,不會形成服務中斷
相關文章
相關標籤/搜索