從零開始學 nginx

2021-08-18 20:00:44 字數 3991 閱讀 8268

以下是我個人見解, 不喜勿噴, 如有錯誤, 還望各路大神多多指教

nginx 是乙個高效能的 http 和 反向**伺服器.

主要特點:

1. 占用記憶體比較少

2. 併發能力強

3. 處理靜態頁面效能非常強

nginx由核心跟模組組成

nginx相比apache

1. 高併發響應效能非常好,官方nginx處理靜態檔案併發5w/s

2. 反向**效能強

3. 記憶體和cpu佔用率低(為apache 的 1/5 ~ 1/10)

4. 對後端服務由健康檢查功能

5. 支援php cgi方式和 fastcgi方式

6. 配置**簡潔而且容易上手

安裝配置

nginx啟動:由主程序和工作程序組成

常用命令

這些命令在nginx目錄的/sbin/下執行

./nginx                 啟動

./nginx -s reopen 重啟

./nginx -s stop

ps -ef

| grep nginx 檢視nginx程序

./nginx -v 檢視版本

./nginx -v 檢視版本和詳細引數

借鑑部落格

nginx平滑公升級

將nginx1.10.3公升級成1.12.2

檢視nginx程序

ps -ef

| grep nginx

檢視nginx引數

./nginx/sbin/nginx -v

解壓新版本,進入目錄,複製當前版本引數, 上面檢視到的 configure arguments:

編譯不安裝,以免覆蓋舊的檔案

make

備份cp /home/nginx/sbin/nginx /home/nginx/sbin/nginx1.10

.old

將新版本nginx-

1.12

.2/objs/nginx 複製到舊版本的sbin下

cp ./objs/nginx /home/nginx/sbin/nginx

檢視舊版本pid

cat /home/nginx/logs/nginx.pid

或者ps -ef

| grep nginx(這裡是603)

*** 60310

16:05

?00:00:00 nginx: master process ./nginx

nginx會將logs/nginx.pid檔案重新命名為nginx.pid.oldbin,然後用新的可執行檔案啟動乙個新的nginx主程序和對應的工作程序,並新建乙個新的nginx.pid儲存新的主程序號,這時,nginx的新的例項和舊的例項同時工作,共同處理請求連線.

kill -usr2

603給舊的主程序傳送winch訊號,kill -winch 舊的主程序號

舊的主程序號收到winch訊號後,將舊程序號管理的舊的工作程序優雅的關閉.

即一段時間後舊的工作程序全部關閉,只有新的工作程序在處理請求連線.

這時,依然可以恢復到舊的程序服務,因為舊的程序的監聽socket還未停止

kill -winch

603給舊的主程序傳送quit訊號,使其關閉

給舊的主程序傳送quit訊號後,舊的主程序退出,並移除logs/nginx.pid.oldbin檔案,nginx的公升級完成

kill -quit

603

#user  nobody;                          定義nginx執行的使用者和使用者組

worker_processes 8; 啟動的程序數

#以下引數指定了哪個cpu分配給哪個程序,一般來說不用特殊指定。

#如果一定要設的話,用0和1指定分配方式.

#這樣設就是給1-4個程序分配單獨的核來執行,出現第5個程序是就是隨機分配了。

#優化讓cpu處理更加均勻,更強

#worker_cpu_affinity 00000001 00000010 00000100 00001000

# 00010000 00100000 01000000 10000000

#乙個nginx程序開啟的最多檔案描述符數目

理論值應該是最多開啟檔案數(ulimit -n)與nginx程序數相除

但是nginx分配請求並不是那麼均勻,所以最好與ulimit -n的值保持一致

#vim /etc/security/limits.conf

# * soft nproc 65535

# * hard nproc 65535

# * soft nofile 65535

# * hard nofile 65535

#worker_rlimit_nofile 65535;

#定義全域性錯誤日誌定義型別,[debug|info|notice|warn|crit]

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#指定程序id儲存位置

#靜態檔案直接從目中讀取

#}}

部落格借鑑

nginx簡介及配置檔案詳解

以後慢慢寫

..

零開始學python 從零開始學Python

第1章 python入門 1 1 1 什麼是python 1 1 2 python語言有什麼特點 2 1 3 python可以幹什麼 4 練一練 5 第2章 準備開發環境 6 2 1 在windows上安裝python開發環境 6 2 2 選擇和安裝開發工具 11 練一練 17 第3章 基本概念 1...

從零開始學android

相對布局管理器指的是參考某一其他控制項進行擺放,可以通過控制,將元件擺放在乙個指定參考元件的上 下 左 右等位置,這些可以直接通過各個元件提供的屬性完成。下面介紹一下各個方法的基本使用 no.屬性名稱 對應的規則常量 描述1 android layout below relativelayout.b...

從零開始學 樹

在之前做二級的題的時候,偶爾會碰見二叉樹,很自然的就想起了樹,那麼什麼是樹呢?這裡說的可不是外面的參天大樹,而是有實際概念的樹,下面就來介紹一下樹。樹是由n n 0 個結點組成的有限集合。若n 0,稱為空樹 若n 0,則 1 有乙個特定的稱為根 root 的結點。它只有直接後繼,但沒有直接前驅 2 ...