一、Linux下Nginx的安裝
1.去官網 http://nginx.org/download/下載對應的Nginx安裝包,推薦使用穩定版本,
2.上傳Nginx到Linux服務器,
3.安裝依賴環境
(1)安裝gcc環境
yum install gcc-c++
(2)安裝PCRE庫,用于決議正則運算式
yum install -y pcre pcre-devel
(3)安裝zlib壓縮和解壓縮依賴
yum install -y zlib zlib-devel
(4)SSL安全的加密套接字協議層,用于HTTP安全傳輸,即HTTPS
yum install -y openssl openssl-devel
4.解壓,注意:解壓后得到的是原始碼,需要編譯后才可以安裝
tar -zxvf nginx-1.19.0.tar.gz
5.編譯前,先創建Nginx臨時目錄,不然在啟動nginx的程序中會報錯
mkdir /var/temp/nginx -p
6.在nginx目錄下面輸入如下命令進行配置,目的是為了生成mckefile檔案
./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi
配置命令解釋:

7.make編譯
make
8.安裝
make install
9.進入sbin目錄啟動nginx
./nginx ##停止 ./nginx -s stop ##優雅停止(等客戶端沒連接了再停止) ./nginx -s exit ##重新加載 ./nginx -s reload
二、Nginx的行程模型

三、Nginx的事件處理機制
1.傳統服務器的事件處理機制為一個客戶請求后,Master為其創建一個whrker去處理,當發生阻塞時Master又得繼續創建新的worker去處理,這樣處理效率,并發程度都非常的低,

2.Nginx的事件處理機制為:當用戶的請求阻塞時,這個worker還可以異步的繼續處理其他用戶請求,并發程度大大增加,開銷也變得更小了

四、nginx.conf核心組態檔
1. 設定worker行程的用戶,指的linux中的用戶,會涉及到nginx操作目錄或檔案的一些權限,默認為nobody
user root;
2. worker行程作業數設定,一般來說CPU有幾個,就設定幾個,或者有多個應用設定為N-1也行
worker_processes 1;
3. nginx 日志級別debug | info | notice | warn | error | crit | alert | emerg,錯誤級別從左到右越來越大
4. 設定nginx行程 pid
pid logs/nginx.pid;
5. 設定作業模式
events { # 默認使用epoll use epoll; # 每個worker允許連接的客戶端最大連接數 worker_connections 10240; }
6. http 是指令塊,針對http網路傳輸的一些指令配置
7. include 引入外部配置,提高可讀性,避免單個組態檔過大(比如可以通過include引入server)
include mime.types;
8. 設定日志格式,main為定義的格式名稱,如此 access_log 就可以直接使用這個變數了
各引數的具體意義:
$remote_addr 客戶端ip
$remote_user 遠程客戶端用戶名,一般為:’-’
$time_local 時間和時區
$request 請求的url以及method
$status 回應狀態碼
$body_bytes_send 回應客戶端內容位元組數
$http_referer 記錄用戶從哪個鏈接跳轉過來的
$http_user_agent 用戶所使用的代理,一般來時都是瀏覽器
$http_x_forwarded_for 通過代理服務器來記錄客戶端的ip
9. sendfile使用高效檔案傳輸,提升傳輸性能,啟用后才能使用tcp_nopush,是指當資料表累積一定大小后才發送,提高了效率,
sendfile on;
tcp_nopush on;
10. keepalive_timeout設定客戶端與服務端請求的超時時間,保證客戶端多次請求的時候不會重復建立新的連接,節約資源損耗,
#keepalive_timeout 0;
keepalive_timeout 65;
11. gzip啟用壓縮,html/js/css壓縮后傳輸會更快
gzip on;
12. server可以在http指令塊中設定多個虛擬主機
server { listen 88; server_name localhost; location / { root html; index index.html index.htm; } }
listen 監聽埠
server_name localhost、ip、域名
location 請求路由映射,匹配攔截
root 請求位置
index 首頁設定
五、利用定時腳本實作日志的切割
Nginx目前的日志都存在access.log檔案中,但是隨著時間的推移,這個檔案的內容會越來越多,體積也會越來越大,不便于查看,所以可以通過把這個大的日志檔案切割為多分不同的小檔案,切割可以以天、小時、分鐘等為單位按需要進行切割
步驟:
A.創建可執行腳本
1.創建一個shell可執行的檔案:cut_my_log.sh,內容為:
#!/bin/bash LOG_PATH="/var/log/nginx/" RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M) PID=/var/run/nginx/nginx.pid mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log #向Nginx主行程發送信號,用于重新打開日志檔案 kill -USR1 `cat $PID`
2.為腳本檔案添加權限
chmod +x cut_my_log.sh
3.執行腳本檔案(即進行一次切割:將原日志檔案拷貝一份,并且重新打開原日志檔案,可以理解為清空原日志檔案)
./cut_my_log.sh
B.創建定時任務定期執行腳本
1.安裝定時任務
yum install crontabs
2.編輯并添加新的定時任務(定為每分鐘執行一次日志腳本)
crontab -e
*/1 * * * * /usr/local/nginx/sbin/cut_my_log.sh
3.重啟定時任務
service crond restart
以上就完成了Nginx日志的定時切割
六、定時任務運算式:
Cron 運算式分為五個或者六個區域,每個區域表示一個含義,如下:
| 分 | 時 | 日 | 月 | 星期幾 | 年(非必須) | |
| 取值范圍 | 0-59 | 0-23 | 1-31 | 1-12 | 1-7 | 2021/2022..... |
常用運算式:
1.每分鐘執行:
*/1 * * * *
2.每天凌晨(每天晚上23:59)執行:
59 23 * * *
3.每天凌晨1點執行:
0 1 * * *
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/249671.html
標籤:Linux
下一篇:Linux系統查看服務器版本方法
