電商專案記錄高可用集群之nginx

2021-10-25 14:18:42 字數 3323 閱讀 9947

nginx的程序模型

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

6. http 是指令塊,針對http網路傳輸的一些指令配置 http

7. include 引入外部配置,提高可讀性,避免單個配置檔案過大 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; 

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 $/access.log $/access.$.log

mv $/error.log $/error.$.log

#向nginx主程序傳送訊號,用於重新開啟日誌檔案

kill -usr1 `cat $pid`

2. 為 cut_my_log.sh 新增可執行的許可權:

chmod +x cut_my_log.sh

3. 測試日誌切割後的結果:

./cut_my_log.sh

2. 定時任務切割

1. 安裝定時任務:

yum install crontabs

*/1 * * * * /usr/local/nginx/sbin/cut_my_log.sh

3. 重啟定時任務:

service crond restart

附:常用定時任務命令:

service crond start //啟動服務

service crond stop //關閉服務

service crond restart //重啟服務

service crond reload //重新載入配置

crontab -e // 編輯任務

crontab -l // 檢視任務列表

定時任務表示式:

cron表示式是,分為5或6個域,每個域代表乙個含義,如下所示:

分 時 日 月 星期幾 年(可選)

取值範圍 0-59 0-23 1-31 1-12 1-7 2019/2020/2021/…

常用表示式:

每分鐘執行:

*/1 * * * *

每日凌晨(每天晚上23:59)執行:

59 23 * * *

每日凌晨1點執行:

0 1 * * *

虛擬主機配置

server

# 當使用root時,location的路徑或加到後面例如下面范文shop時實際的路徑會變成范文/home/shop下的內# 容

location /shop

location /static

}

開啟gzip壓縮配置

在nginx.conf中配置

#開啟壓縮

gzip on;

#限制最小壓縮,小於1位元組檔案不會壓縮

gzip_min_length 1;

#壓縮比(檔案越大壓縮越多cpu使用越多)

gzip_comp_level 3

#壓縮檔案型別

location的匹配規則

空格 :預設匹配,普通匹配

location /

= :精確匹配

location = /shop/img/face1.png

~* :匹配正規表示式,不區分大小寫

#符合的顯示

~ :匹配正規表示式,區分大小寫

#gif必須大寫才能匹配到

^~ :以某個字元路徑開頭

location ^~ /shop/img

穀粒商城電商專案 高可用集群篇

穀粒 電商專案 高可用集群篇 339 k8s 簡介.mp4 340 k8s 架構原理 核心概念.mp4 341 k8s 集群搭建 環境準備.mp4 342 k8s 集群搭建 建立三個虛擬機器.mp4 343 k8s 集群搭建 nat網路和前置環境.mp4 344 k8s 集群搭建 安裝docker ...

電商平台 keepalived高可用

192.168.189.131 電商平台 192.168.189.129 mysql主 192.168.189.130 mysql備 192.168.189.181 vip 配置mysql為互為主從並結合keepalived實現高可用 步驟 mysql主從 mysql高可用 電商平台搭建 登入伺服器...

電商專案模組記錄

spring整合redis集群 購物車dubbocartserviceimpl redis配置 單點登陸 public class jsonutils catch jsonprocessingexception e 將json轉化為物件 public static t toobject string...