nginx設置緩存時間、日志分割、開啟多進程、網頁壓縮、配置防盜鏈

一、設置緩存時間

????????當網頁數據返回給客戶端后,可針對靜態網頁設置緩存時間,在配置文件內的http段內server段添加location,更改字段expires 1d來實現:避免重復請求,加快訪問速度

第一步:修改主配置文件

#修改配置文件
vim? ? /apps/nginx/conf/nginx.conf
? ? ? ? #添加以下內容
? ? ? ? location ~ \.(jpg|png|bmp|gif)$ {
? ? ? ? ? ? root ? html;
? ? ? ? ? ? expires 1d;
? ? ? ? }
???
?
#查看是否有語法錯誤
nginx -t
?
#重啟服務
systemctl restart nginx.service?
?

第二步:導入圖片并對網頁文件進行編輯

第三步:編輯主頁文件

vim index.html?
-------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
?
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
?
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
?
<p><em>Thank you for using nginx.</em></p>
<img src="1.jpg"/> ? ? ? ? #插入添加此行

第四步:驗證

#查看是否有語法錯誤
nginx -t
?
#重啟服務
systemctl restart nginx.service?
?
#在網頁中查看服務
192.168.200.12
?
Cahce-Control:max-age=86400 表示緩存時間是 86400 秒。
也就是緩存一天的時間,一天之內瀏覽器訪問這個頁面,都是用緩存中的數據,而不需要向 Nginx 服務器重新發出請求,減少了服務器的使用帶寬。

二、日志分割

? ?使用腳本將很多日志進行切割,可以增加工作效率,方便管理

#編寫日志分割腳本
vim /opt/rzfg.sh
----------------------------------------------
#!/bin/bash
d=$(date -d "-1 day" "+%Y%m%d")
logs_path="/var/log/nginx"
pid_path="/usr/local/nginx/logs/nginx.pid"
[ -d $logs_path ] || mkdir -p $logs_path
mv /usr/local/nginx/logs/access.log ${logs_path}/kgc.com-access.log-$d
kill -USR1 $(cat $pid_path)
find $logs_path -mtime +30 -exec rm -rf {} \;
#find $logs_path -mtime +30 |xargs rm -rf
-------------------------------------------------------
#賦權
chmod +x /opt/rzfg.sh
?
#執行腳本
/opt/rzfg.sh
?
#查看日志是否生成
ls /var/log/nginx
ls/usr/local/nginx/logs/access.log?
?
#定時執行日志分割
crontab -e
0 1 * * * /opt/fenge.sh
?
?
#######################注釋###############################
#!/bin/bash
#顯示前一天的時間
DAY=$(date -d "-1 day" +%Y%m%d)
#定義日志存放目錄的路徑?? ??? ??? ??? ??? ??? ??? ?
LOG_PATH="/var/log/nginx"
#定義Nginx PID文件路徑
PID_PATH="/usr/local/nginx/logs/nginx.pid"
#判斷日志存放目錄是否存在,如果不存在則創建日志文件目錄
[ -d $LOG_PATH ] || mkdir -p $LOG_PATH ?? ??? ??? ??? ??? ??? ?
#移動并重命名日志文件
mv /usr/local/nginx/logs/access.log ${LOG_PATH}/my.com-access.log-$DAY
#在Nginx目錄下重建新日志文件
kill -USR1 $(cat $PID_PATH)?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?
#刪除30天之前的日志文件
find $LOG_PATH -mtime +30 -exec rm -rf {} \;?? ??? ??? ??? ??? ?
#find $LOG_PATH -mtime +30 | xargs rm -rf?

三、開啟多進程

cat /proc/cpuinfo | grep -c "physical id"?? ?#查看cpu核數
ps aux | grep nginx?? ??? ??? ??? ??? ??? ??? ?#查看nginx主進程中包含幾個子進程
?
#修改配置文件
vim /apps/nginx/conf/nginx.conf
------------------------------------------------------------------------
worker_processes ?2;?? ??? ??? ??? ?
#修改為核數相同或者2倍
?
worker_cpu_affinity 01 10;?? ?
#設置每個進程由不同cpu處理,進程數配為4時0001 0010 0100 1000 ??
#1所在的位置代表cpu的ID號?
-----------------------------------------------------------
?
#重啟服務
systemctl restart nginx
?
#驗證是否為兩個
ps aux | grep nginx?? ?

四、網頁壓縮

?????????Nginx的ngx_http_gzip_module壓縮模塊提供對文件內容壓縮的功能。允許Nginx服務器將輸出內容在發送客戶端之前進行壓縮,以節約網站帶寬,提升用戶的訪問體驗,默認已經安裝,可在配置文件中加入相應的壓縮功能參數對壓縮性能進行優化。

vim /usr/local/nginx/conf/nginx.conf
---------------------------------------
http {
......?
? ?gzip on;?? ??? ??? ??? ??? ??? ??? ?#取消注釋,開啟gzip壓縮功能
? ?gzip_min_length 1k; ? ? ??? ??? ?#最小壓縮文件大小
? ?gzip_buffers 4 16k; ? ? ??? ??? ?#壓縮緩沖區,大小為4個16k緩沖區
? ?gzip_http_version 1.1; ? ?? ??? ?#壓縮版本(默認1.1,前端如果是squid2.5請使用1.0)
? ?gzip_comp_level 6; ? ? ? ?? ??? ?#壓縮比率
? ?gzip_vary on;?? ??? ??? ??? ??? ?#支持前端緩存服務器存儲壓縮頁面
? ?gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;?? ??? ?#壓縮類型,表示哪些網頁文檔啟用壓縮功能
......?
}
----------------------------------------------------
?
#重啟服務
systemctl restart nginx.service?
?

五、配置防盜鏈

實驗準備:

web源主機(192.168.200.12 www.zhuo.com)

盜鏈主機 (192.168.200.11 www.fake.com)

5.1 配置web源主機(192.168.200.12?www.zhuo.com)

5.1.1?安裝nginx服務并配置被盜鏈圖片

#安裝nginx服務
yum或編譯安裝都可
此處使用編譯安裝,路徑為/usr/local/nginx
不再演示,安裝教程可見《Nginx的搭建與核心配置》
?
#導入圖片1.jpg
準備一張圖片 改名為1.jpg
?
#切換目錄
cd /apps/nginx/html/
?
#上傳圖片
rz -E
?
#編輯主頁文件
vim index.html?
-------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
?
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
?
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
?
<p><em>Thank you for using nginx.</em></p>
<img src="1.jpg"/> ? ? ? ? #插入添加此行
?
-------------------------------------------------------
#檢查和重啟服務
nginx -t
systemctl restart nginx
?
#驗證
火狐輸入

192.168.200.11

5.1.2 配置域名映射關系?

#修改主機名和IP配置文件
vim /etc/hosts
--------------------------------------------------?
127.0.0.1 ? localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 ? ? ? ? localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.12 www.zhuo.com ? ? ? #添加此行
?
#關閉防火墻并重啟服務
systemctl stop firewalld.service?
setenforce 0
systemctl restart nginx

5.2 配置盜鏈主機 (192.168.200.11 www.fake.com)

5.2.1?安裝apache服務并配置盜鏈主頁

#安裝apache服務
yum install httpd -y ?
?
#配置盜鏈主頁
vim /var/www/html/index.html
--------------------------------------------- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
<html>
<body>
<h1>盜鏈</h1>
<img src="http://www.zhuo.com/1.jpg"/> ?#圖片鏈接地址通過瀏覽器訪問http://www.zhuo.com 所得圖片地址
</body>
</html>

5.2.2?設置域名映射

vim /etc/hosts
-----------------------------------------------------------
127.0.0.1 ? localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 ? ? ? ? localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.79.210 www.zhuo.com
192.168.79.28 www.fake.com

5.2.3?重啟服務并測試?

#關閉防火墻并重啟服務
systemctl stop firewalld.service?
setenforce 0
systemctl restart httpd
?
#在盜鏈主機(192.168.79.28 )的瀏覽器中輸入盜鏈主機的域名
打開火狐輸入
192.168.200.12 或 www.zhuo.com

192.168.200.11 或 www.fake.com
驗證是否被盜鏈

5.3 在web源主機(192.168.200.12 www.zhuo.com)中配置防盜鏈

5.3.1 將盜鏈圖片放入web源主機中

cd /apps/nginx/html/ ? ? ?#切換目錄
rz -E ? ? ? ? ? ? ? ? ? ? ? ? ?#上傳圖片

5.3.2?配置防盜鏈

vim /apps/nginx/conf/nginx.conf ? ?(約49行開始插入
--------------------------------------------------------
http {
......
?? ?server {
?? ?......
?? ??? ?location ~* \.(jpg|gif|swf)$ {
?? ??? ??? ?valid_referers none blocked *.zhuo.com zhuo.com;
?? ??? ??? ?if ( $invalid_referer ) {
?? ??? ??? ??? ?rewrite ^/ http://www.zhuo.com/2.jfif;
? ? ? ? ? ? }
? ? ? ? }
------------------------------------------------------------
~* \.(jpg|gif|swf)$ :這段正則表達式表示匹配不區分大小寫,以.jpg 或.gif 或.swf 結尾的文件;
?
valid_referers :設置信任的網站,可以正常使用圖片;
?
none:允許沒有http_refer的請求訪問資源(根據Referer的定義,它的作用是指示一個請求是從哪里鏈接過來的,如果直接在瀏覽器的地址欄中輸入一個資源的URL地址,那么這種請求是不會包含 Referer 字段的),如 http://www.zhuo.com/2.jfif?
我們使用 http://www.zhuo.com 訪問顯示的圖片,可以理解成 http://www.zhuo.com/2.jfif 這個請求是從 http://www.zhuo.com 這個鏈接過來的。
?
blocked:允許不是http://開頭的,不帶協議的請求訪問資源;?
?
*.zhuo.com:只允許來自指定域名的請求訪問資源,如 http://www.zhuo.com
?
if語句:如果鏈接的來源域名不在valid_referers所列出的列表中,$invalid_referer為true,則執行后面的操作
?

5.4?驗證防盜鏈是否有效

#在盜鏈主機(192.168.79.28 )的瀏覽器中輸入盜鏈主機的域名
打開火狐輸入
192.168.200.12 或 www.zhuo.com

192.168.200.11 或 www.fake.com
驗證是否被盜鏈

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/710789.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/710789.shtml
英文地址,請注明出處:http://en.pswp.cn/news/710789.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vulnhub靶機:basic_pentesting_2

一、介紹 運行環境&#xff1a;Virtualbox 攻擊機&#xff1a;kali&#xff08;10.0.2.4&#xff09; 靶機&#xff1a;basic_pentesting_2&#xff08;10.0.2.7&#xff09; 目標&#xff1a;獲取靶機root權限和flag 靶機下載地址&#xff1a;https://download.vulnhub.c…

如何選擇O2OA(翱途)開發平臺的部署架構?

概述 O2OA(翱途)開發平臺[下稱O2OA開發平臺或者O2OA]支持公有云&#xff0c;私有云和混合云部署&#xff0c;也支持復雜的網絡結構下的分布式部署。本篇主要介紹O2OA(翱途)開發平臺支持的部署環境以及常用的集群部署架構。 軟硬件環境說明 支持的云化平臺&#xff1a; 華為云…

分布式概念:編碼一個簡單分布式系統

分布式系統是由多臺計算機組成的系統&#xff0c;它們通過網絡連接并共同完成任務。以下是一個簡單的分布式系統的編碼示例&#xff1a; 定義系統架構 首先&#xff0c;需要定義系統的架構。包括確定系統中的計算節點、通信機制和任務分配方式等。 編寫計算節點代碼 每個計算節…

算法簡介:遞歸

遞歸 1. 遞歸1.1 基線條件和遞歸條件 2. 棧2.1 調用棧2.2 遞歸調用棧 1. 遞歸 循環和遞歸可以實現相同的功能&#xff0c;如&#xff1a; 循環 def look_for_key(main_box)pile main_box.make_a_pile_to_look_thorugh()while pile is not empty:box pile.grab_a_box()for …

LLM 聊天對話界面chatwebui 增加實時語音tts功能

類似豆包聊天,可以實時語音回復 1、聊天界面 streamlit頁面 參考界面:https://blog.csdn.net/weixin_42357472/article/details/133199866 stream_web.py 2、 增加實時語音tts功能(接入melotts api服務) 參考:https://blog.csdn.net/weixin_42357472/article/detai…

vue3學習 ref和reactive的使用

使用ref聲明一個響應式對象并使用 <script lang"ts" setup> import { ref } from vue; const message ref("HelloWorld") message.value"被修改了啊~~" </script> <template>{{ message }} </template>ref() 接收參數…

Docker容器與虛擬化技術:OpenEuler 使用 docker-compose 部署 LNMP

目錄 一、實驗 1.環境 2.OpenEuler 部署 docker-compose 3.docker-compose 部署 LNMP 二、問題 1.ntpdate未找到命令 2.timedatectl 如何設置時區與時間同步 3.php網頁顯示時區不對 一、實驗 1.環境 &#xff08;1&#xff09;主機 表1 主機 系統架構版本IP備注Lin…

docker啟動容器報錯:ERRO[0000] error waiting for container: context canceled,解決方法

系統環境&#xff1a;ubuntu16.04&#xff0c;已安裝docker 執行命令&#xff1a;sudo docker run -it --privileged --shm-size128g -v /home:/home docker-image /bin/bash 報錯 docker: Error response from daemon: could not select device driver "" with …

Android PMS實戰——Hook技術介紹(十四)

在了解了 PMS 的調用流程之后,都有那些用處呢?首先幫助了解 Android 包管理系統原理,還有就是配合 AMS 通過 Hook 技術,實現熱更新、插件化等功能。 我們可以通過反射獲取到 PackageParser 對象,再反射調用它的 parsePackage() 傳入 apk 路徑完成解析獲取到 Package 對象,…

厚膜電阻與薄膜電阻相比,特點是什么?

厚膜電阻與薄膜電阻是兩種常見的電阻器件&#xff0c;它們之間的特點主要有以下幾個方面&#xff1a; 1. 厚度不同&#xff1a;厚膜電阻的膜層厚度較大&#xff0c;一般在幾微米到幾十微米之間&#xff0c;而薄膜電阻的膜層厚度較薄&#xff0c;一般在幾納米到幾微米之間。 2. …

單片機精進之路-9ds18b20溫度傳感器

ds18b20復位時序圖&#xff0c;先將b20的數據引腳拉低至少480us&#xff0c;然后再將數據引腳拉高15-60us&#xff0c;再去將測傳感器的數據引腳是不是變低電平并保持60-240us&#xff0c;如果是&#xff0c;則說明檢測到溫度傳感器&#xff0c;并正常工作。需要在240us后才能檢…

xss高級靶場

一、環境 XSS Game - Ma Spaghet! | PwnFunction 二、開始闖關 第一關 看看代碼 試一下直接寫 明顯進來了為什么不執行看看官方文檔吧 你不執行那我就更改單標簽去使用唄 ?somebody<img%20src1%20onerror"alert(1)"> 防御&#xff1a; innerText 第二關…

Codeforces Round 930 (Div. 2) (A~B)

比賽&#xff1a;Codeforces Round 930 (Div. 2) (A~B) 目錄&#xff1a;A B A題&#xff1a;Shuffle Party 標簽: 模擬 題目大意 給你一個數組 a1,a2,…,an。最初&#xff0c;每個 1 ≤ i ≤ n都有 ai i&#xff0c;整數 k ≥ 2的運算 swap(k)定義如下&#xff1a; 設 d是…

Python圖像形態學處理:腐蝕、膨脹、禮帽、黑帽……

文章目錄 二值形態學灰度形態學 python圖像處理教程&#xff1a;初步&#x1f4f7;插值變換 最基礎的形態學操作有四個&#xff0c;分別是腐蝕、膨脹、開計算和閉計算&#xff0c;【scipy.ndimage】分別實現了二值數組和灰度數組的這四種運算。而針對灰度圖像&#xff0c;【sc…

Office/WPS 好用的PPT插件-智能選擇布局

軟件介紹 PPT大珩助手是一款全新設計的Office PPT插件&#xff0c;它是一款功能強大且實用的PPT輔助工具&#xff0c;能夠輕松幫助您修改、優化和管理幻燈片。憑借豐富的功能和用戶友好的界面&#xff0c;PPT大珩助手能夠助力您打造出精美而專業的演示文稿。我們致力于為用戶提…

Flutter學習7 - Dart 泛型

1、泛型類 //泛型類 class Cache<T> {final Map<String, T> _cache {};void saveData(String key, T value) {_cache[key] value;}//泛型方法T? getData(String key) {return _cache[key];} }void main() {Cache<int> cache1 Cache();const String name…

NGINX的重寫與反向代理機制解析

目錄 引言 一、重寫功能 &#xff08;一&#xff09;if指令 1.判斷訪問使用的協議 2.判斷文件 &#xff08;二&#xff09;return指令 1.設置返回狀態碼 2.返回指定內容 3.指定URL &#xff08;三&#xff09;set指令 1.手動輸入變量值 2.調用其它變量值為自定義變…

RISC-V特權架構 - CSR寄存器

RV32/64 特權架構 - CSR寄存器 1 CSR地址空間2 CSR定義2.1 用戶級2.2 監管級2.3 超級監管級2.4 機器級 3 CSR訪問3.1 CSRRW3.2 CSRRS3.3 CSRRC3.4 CSRRWI3.5 CSRRSI3.6 CSRRCI 本文屬于《 RISC-V指令集基礎系列教程》之一&#xff0c;歡迎查看其它文章。 1 CSR地址空間 RISC&…

房貸計算器微信小程序原生語言

微信小程序: 房貸計算器 效果: 輸入 300萬 結果 還款明細 一共有3個頁面 1、輸入頁面 2、結果頁面 3、詳情頁面 1 index頁面 index.wxml文件 <view class="text-black"><!--房屋總價--><view class="cu-bar bg-white solid-bottom"&…

TCP/IP狀態遷移

TCP&#xff08;傳輸控制協議&#xff09;是一種面向連接的流式控制協議&#xff0c;它定義了不同的狀態以管理通信過程中的連接。TCP 狀態遷移描述了 TCP 連接在不同狀態之間的轉換過程&#xff0c;常見的 TCP 狀態包括 CLOSED、LISTEN、SYN_SENT、SYN_RECEIVED、ESTABLISHED、…