nginx uwsgi 配置啟動停止

2021-08-28 10:57:37 字數 3536 閱讀 5450

#配置工作程序的使用者和組

user nobady nobady

#指定worker程序啟動的數量 一般與cpu的核心數相同                         

worker_processes  4              

#錯誤日誌檔案位置(預設所有型別錯誤) 第二個引數可選擇輸出錯誤日誌型別

#[debug | info | notice | warn | error | crit | alert | emerg],級別越

#高記錄的資訊越少,i/o消耗越低

error_log   /data/nginx/logs/error.log

#pid檔案存放nginx主程序的id 會覆蓋預設配置

#上游伺服器

upstream mytomcatl 

#location指令

通過指定模式來與客戶端請求的uri相匹配

location = /uri  =開頭表示精確匹配,只有完全匹配上才能生效。

location ^~ /uri  ^~ 開頭對url路徑進行字首匹配,並且在正則之前。

location ~ pattern  ~開頭表示區分大小寫的正則匹配。

location ~* pattern  ~*開頭表示不區分大小寫的正則匹配。

location /uri     不帶任何修飾符,也表示字首匹配,但是在正則匹配之後。

location /      通用匹配,任何未匹配到其它location的請求都會匹配到,相當於switch中的default

示例:location ^~ /views/

# 動態路由**規則

nginx的啟動

nginx的啟動命令

nginx -c nginx.conf

nginx啟動流程

執行ngx_time_ini,初始化時間,避免每次取當前時間都呼叫gettimeofday(系統呼叫,成本較大),,nginx是事件驅動機制,當一批事件發生時,也就是epoll_wait返回時,會取一次gettimeofday來更新自己的時間。

初始化核心資料結構ngx_cycle,nginx通過配置檔案來初始化ngx_cycle

nginx開始監聽埠(fork子程序的時候,監聽的控制代碼,會被所有nginx worker共享使用)

初始化訊號量,程序間的同步是通過訊號量控制的,然後建立pid檔案,存放主程序的

pid,之後對這個檔案也是通過訊號量來控制。

fork子程序,處理客戶端請求,主程序還會監控子程序的執行狀態,如果子程序非正常結束,會重新拉起

nginx的結束

nginx結束的四種方式

nginx -s stop|quit|reopen|reload

1.stop 快速停止服務:類似kill -sigterm pid

1) master程序收到 stop 訊號後,把 ngx_terminate 設定為1

2) master看到ngx_terminate 為1 ,通過channel向子程序傳送 ngx_cmd_terminate 命令

3) 子程序收到命令後,把  ngx_terminate = 1

4) 子程序看到ngx_terminate 為1 , 直接呼叫ngx_worker_process_exit 結束程序

5) 子程序結束的時候,會向master程序傳送乙個 sigchld 訊號

6) master程序收sigchild訊號後,把ngx_reap =1 並呼叫 ngx_process_get_status得到退出的程序並設定程序的狀態。

7) master看到ngx_reap就呼叫ngx_reap_children**子程序

8) 所有的子程序都**完畢,master就呼叫 ngx_master_process_exit 退出。

2.quit 優雅的停止服務:quit訊號其實和前面介紹的stop 基本一樣,唯一的不同之處就是quit是一種優雅的停止,也就是程序如果還在服務中,那麼就不會關閉該程序,直到程序完成服務為止。當然這個過程中不能再接受新的任務了。

1) master接收到quit訊號後, 關閉監聽socker,然後向子程序傳送quit訊號(這裡master本來就不接收請求,關閉監聽可能是因為如果此時子程序掛了,父程序會重啟乙個子程序,fork的時候會使用master的監聽控制代碼,與nginx的啟動對應)

2) 子程序收到quit訊號,首先關閉監聽socker, 然後把ngx_exiting設定為1 ,表示程序當前是處於退出的過程中,看是否有未完成的請求,有就處理完,最後結束子程序

3) 後面同stop的第五步

3.reopen 重啟:nginx服務會暫時中斷,然後通過配置檔案啟動,如果配置檔案有錯 會一直中斷服務

示例:[uwsgi]

3.uwsgi的停止

1.stop 命令

傳送乙個sigint訊號給檔案中的pid標識的uwsgi

--stop

sigint 不僅當前程序會收到這個訊號,它的子程序也會收到該訊號

kill 命令

Windows安裝,啟停,配置nginx,筆記

2,解壓壓縮包 3,通過cmd啟動nginx,切換到nginx的解壓目錄 輸入 start nginx 回車即可,瀏覽器訪問,localhost 80,出現訪問介面為啟動成功 4,修改配置檔案,如下圖 箭頭指的地方修改埠等配置,以及 位址的配置 5,修改後不用停服務,直接重啟就好 nginx s r...

環境部署系列 Redis基礎入門 安裝 啟動 停止

如果是linux環境安裝,直接wget 2.安裝 老徐以centos為例講解 wget tar zxvf redis 3.2.0.tar.gz cd redis 3.2.0 直接make 編譯 make 可使用root使用者執行 make install 將可執行檔案拷貝到 usr local bi...

MongoDB啟動配置

1,常用引數說明 dbpath mongodb資料檔案儲存路徑 logpath mongod的日誌路徑 bind ip 繫結的ip port 繫結的埠 2,啟動方式 a,直接啟動 進入mongodb安裝目錄,例如 mongodb linux x86 64 3.0.4 執行.bin mongod db...