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

一、nginx優點

1.反向代理

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

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

server不知道client是誰

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

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

3.客戶端不知道自己具體訪問的服務器是誰

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

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

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

2.負載均衡

集群平攤請求壓力

負載均衡策略:

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

server模塊的配置:

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

3.動靜分離

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


二、基本命令

  • nginx 啟動
  • nginx -v版本號
  • nginx -s stop 關閉
  • nginx -s reload 重新加載配置文件

三、配置文件

1、root和alias的區別

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

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

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

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

3、worker_connections 和 worker_processes

設置併發數和連接數

連接數:

靜態資源:2

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

反向代理:4

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

四、基本原理

  • master管理者:管理監控
  • worker工作者 :連接

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

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

3個worker

<code>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

/<code>

1個worker

<code>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

/<code>
總結:nginx使用手冊+基本原理+優缺點

master-worker架構的優點

  1. 支持熱部署reload,一個worker修改config,其他繼續處理請求
  2. 進程獨立,每個worker都是一個進程,不會造成服務中斷

最後

多說一句,很多人學Python過程中會遇到各種煩惱問題,沒有人解答容易放棄。小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。想要這些資料的可以關注小編,並在後臺私信小編:“01”即可領取。


分享到:


相關文章: