Nginx學習筆記 訊號量

2021-08-28 03:05:36 字數 3341 閱讀 1359

2016/7/9 18:02

2018/09/14 15:02

su檢視nginx的程序:

master:主程序,控制著子程序;

worker process:子程序;

hup:優雅的改變配置檔案,平滑的重讀配置檔案

ps aux | grep nginx  查詢主程序號

kill -hup 主程序號

kill -hup pid

其中 pid 是程序標識。如果想要更改配置而不需停止並重新啟動服務,請使用該命令。在對配置檔案作必要的更改後,發出該命令以動態更新服務配置。

更改/etc/ssh/sshd_config,將裡面的port改為新埠,比如28,然後 kill -hup `cat /var/run/sshd.pid` 就行了。

現有連線自己不會斷,因為kill -hup `cat /var/run/sshd.pid` 只是hup監聽的那個,已經建立的連線(不同的 pid)不會斷。

然後你在現有賬號下面exit,在用新的埠登陸就可以了。

檢視錯誤日誌

tail 10 ./logs/error.log

nginx的重啟:

/usr/local/nginx/sbin/nginx -s reload

nginx的停止:

/usr/local/nginx/sbin/nginx -s stop

nginx的啟動:

/usr/local/nginx/sbin/nginx

nginx的重讀日誌

/usr/local/nginx/sbin/nginx -s reopen  相當於 kill -use1 `cat logs/nginx.pid`

nginx的優雅退出

/usr/local/nginx/sbin/nginx -s quit

測試配置檔案是否出錯:

nginx的配置:

worker_processes  :auto  # 工作的程序有幾個,一般設定為cpu數* 核數

配置nginx的連線特性:

events

use epoll;

worker_connections 51200;  // 指的是乙個子程序最大允許51200個連線

multi_accept on;

nginx的日誌管理:

總日誌:access_log  /home/wwwlogs/access.log  access;

日誌的分割槽:

#! /bin/bash

logpath=/home/wwwlogs/pma.soft35.cn.log  # 定義logpath路徑

#定義basepath路徑

basepath=/home/wwwlogs/data/$(date -d yesterday +%y%m)

#echo $basepath

#建立當前目錄 如果不存在

mkdir -p $basepath

#定義bak路徑

bak=$basepath/$(date -d yesterday +%d%h%m).pma.soft35.cn.log

#移動基礎日誌檔案到新的路徑中

mv $logpath $bak

#重新建立乙份日誌檔案

touch $logpath

#平滑載入配置檔案

kill -usr1 `cat /usr/local/nginx/logs/nginx.pid`

建立計畫任務:crontab -e * */10 * * * sh /home/wwwlogs/pma.sh

nginx的location配置檔案:

location = / "

匹配除「\n」之外的任何單個字元,若要匹配包括「\n」在內的任意字元,請使用諸如「[.\n]」之類的模式。

(pattern)

匹配括號內pattern並可以在後面獲取對應的匹配,常用$0...$9屬性獲取小括號中的匹配內容,要匹配圓括號字元需要\(content\)

nginx的rewrite功能在企業裡應用非常廣泛:

u 可以調整使用者瀏覽的url,看起來更規範,合乎開發及產品人員的需求。

u **換新網域名稱後,讓舊的訪問跳轉到新的網域名稱上。例如,訪問京東的360buy.com會跳轉到jd.com

u 根據特殊變數、目錄、客戶端的資訊進行url調整等

(1)建立rewrite語句

vi conf/vhost/www.abc.com.conf

#vi編輯虛擬主機配置檔案

檔案內容

server {

listen 80;

server_name abc.com;

rewrite ^/(.*) permanent;

server {

listen 80;

server_name www.abc.com;

location / {

root /data/www/www;

index index.html index.htm;

error_log    logs/error_www.abc.com.log error;

access_log    logs/access_www.abc.com.log    main;

或者server {

listen 80;

server_name abc.com

www.abc.com;

if ( $host != 'www.abc.com'  ) {

rewrite ^/(.*) permanent;

location / {

root /data/www/www;

index index.html index.htm;

error_log    logs/error_www.abc.com.log error;

access_log    logs/access_www.abc.com.log    main;

(2)重啟服務

確認無誤便可重啟,操作如下:

nginx -t

#結果顯示ok和success沒問題便可重啟

nginx -s reload

(3)檢視跳轉效果

開啟瀏覽器訪問abc.com

頁面開啟後,url位址列的abc.com變成了www.abc.com說明url重寫成功。

Nginx訊號量學習總結

總結如下 訊號選項 含義term int quick shutdown 立即停止 quit 優雅的關閉程序,即等請求結束後再關閉 hup改變配置檔案之後,平滑的重讀配置檔案,即重新讀取新的配置重啟 user1 重讀日誌,在日誌按月 日進行分割時有用,例如每天備份乙個檔案,然後重新建立access.l...

nginx的訊號量

在研發過程中,修改nginx的配置檔案nginx.conf是很平常的事,需要重啟nginx。如果我們直接reload是有一定風險的,我們可以通過傳送系統訊號給nginx主程序的方式來進行。第一步 確認nginx配置檔案的語法是否正確,否則nginx將不會載入新的配置檔案。如果出現這樣的資訊說明配置檔...

VxWorks學習筆記 訊號量

是實現任務互斥 同步操作的主要機制。vxworks 提供的訊號量經過了高度優化,在所有任務間通訊機制中,速度最快。二 訊號量的分類 binary semaphores 二進位制 完成互斥 同步操作的最佳方式 速度最快,最常用。mutual exclusion semaphores 互斥 一種特殊的二...