国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

Linux運(yùn)維:Nginx(1)

KitorinZero / 2047人閱讀

摘要:作為反向代理的時(shí)候啟用,決定開(kāi)啟或者關(guān)閉后端服務(wù)器返回的結(jié)果是否壓縮,匹配的前提是后端服務(wù)器必須要返回包含的頭。

軟件介紹

與 Apache軟件類(lèi)似, Nginx ( “engme x")是一個(gè)開(kāi)源的,支持高性能、高并發(fā)的 WWW服務(wù)器和代理服務(wù)軟件。它是由俄羅斯人 Igor Sysoev開(kāi)發(fā)的,最初被應(yīng)用在勘羅斯的大型網(wǎng)站 www.rambler.ru 上,后來(lái)作者將源代碼以類(lèi)BSD許可證的形式開(kāi)源出來(lái)供全球使用。

Nginx因具有高并發(fā)(特別是靜態(tài)資源)占用系統(tǒng)資源少等特性,且功能豐富而逐漸流行起來(lái)。

在功能應(yīng)用發(fā)面,Nginx不但是一個(gè)優(yōu)秀的Web服務(wù)軟件,還具有反向代理負(fù)載均衡功能和緩存服務(wù)功能。在反向代理負(fù)載均衡功能方面,它類(lèi)似于大名鼎鼎的LVS負(fù)載均衡及Haproxy等專(zhuān)業(yè)代理軟件,但是Nginx部署起來(lái)更為簡(jiǎn)單、方便;在緩存服務(wù)功能方面,它又類(lèi)似于Squid等專(zhuān)業(yè)的緩存服務(wù)軟件。
Nginx 的官方介紹見(jiàn) http://nginx.org/en

nginx軟件特性

HTTP服務(wù)器的特色及優(yōu)點(diǎn):

支持高并發(fā):能支持幾萬(wàn)并發(fā)連接(特別是靜態(tài)小文件業(yè)務(wù)環(huán)境)

資源消耗少:在3萬(wàn)并發(fā)連接下,開(kāi)啟10個(gè)Nginx線程消耗的內(nèi)存不到200MB

可以做HTTP反向代理及加速緩存、即負(fù)載均衡功能,內(nèi)置對(duì)RS節(jié)點(diǎn)服務(wù)器健康檢查功能這相當(dāng)于專(zhuān)業(yè)的Haproxy軟件或LVS的功能。

具備Squid等專(zhuān)業(yè)緩存軟件等的緩存功能。

支持異步網(wǎng)絡(luò)I/O事件橫型epoll(Linux2.6+)

nginx的安裝

nginx的安裝可參考上一篇博文,這里不再啰嗦了。介紹幾個(gè)nginx管理的命令吧。
啟動(dòng)

 $ /usr/local/nginx/sbin/nginx 

重新加載

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

檢查語(yǔ)法

$  /usr/local/nginx/sbin/nginx -t 

殺死進(jìn)程

 $ pkill nginx
 或者 
 $ killall nginx
 # 如果現(xiàn)實(shí)沒(méi)有killall命令,執(zhí)行:yum install -y psmisc

nginx配置文件詳解

nginx.conf配置文件全局結(jié)構(gòu)大致如下:

全局配置(user,worker_process,error_log,pid)

events(網(wǎng)絡(luò)連接部分,worker_connections)

http(最重要的部分,大部分功能都在這里)

server(虛擬主機(jī)相關(guān),在http塊里)

location(server里面)

全局配置部分
user nobody;
# 定義運(yùn)行nginx服務(wù)的用戶,還可以加上組,如 user nobody nobody;
worker_processes 1;
# 定義nginx子進(jìn)程數(shù)量,即提供服務(wù)的進(jìn)程數(shù)量,該數(shù)值建議和服務(wù)cpu核數(shù)保持一致。
# 除了可以定義數(shù)字外,還可以定義為auto,表示讓系統(tǒng)自動(dòng)調(diào)整。
error_log logs/error.log;
# 定義錯(cuò)誤日志的路徑,可以是相對(duì)路徑(相對(duì)prefix路徑的),也可以是絕對(duì)路徑。
# 該配置可以在此處定義,也可以定義到http、server、location里。
error_log logs/error.log notice;
# 定義錯(cuò)誤日志路徑以及日志級(jí)別.
# 錯(cuò)誤日志級(jí)別:常見(jiàn)的錯(cuò)誤日志級(jí)別有[debug|info|notice|warn|error|crit|alert|emerg],級(jí)別越高記錄的信息越少。
# 如果不定義默認(rèn)是error
pid logs/nginx.pid;
# 定義nginx進(jìn)程pid文件所在路徑,可以是相對(duì)路徑,也可以是絕對(duì)路徑。
worker_rlimit_nofile 100000;
# 定義nginx最多打開(kāi)文件數(shù)限制。如果沒(méi)設(shè)置的話,這個(gè)值為操作系統(tǒng)(ulimit -n)的限制保持一致。
# 把這個(gè)值設(shè)高,nginx就不會(huì)有“too many open files”問(wèn)題了。
events配置部分
worker_connections 1024;

定義每個(gè)work_process同時(shí)開(kāi)啟的最大連接數(shù),即允許最多只能有這么多連接。

accept_mutex on;

當(dāng)某一個(gè)時(shí)刻只有一個(gè)網(wǎng)絡(luò)連接請(qǐng)求服務(wù)器時(shí),服務(wù)器上有多個(gè)睡眠的進(jìn)程會(huì)被同時(shí)叫醒,這樣會(huì)損耗一定的服務(wù)器性能。Nginx中的accept_mutex設(shè)置為on,將會(huì)對(duì)多個(gè)Nginx進(jìn)程(worker processer)接收連接時(shí)進(jìn)行序列化,防止多個(gè)進(jìn)程爭(zhēng)搶資源。 默認(rèn)就是on。

multi_accept on;

nginx worker processer可以做到同時(shí)接收多個(gè)新到達(dá)的網(wǎng)絡(luò)連接,前提是把該參數(shù)設(shè)置為on。
默認(rèn)為off,即每個(gè)worker process一次只能接收一個(gè)新到達(dá)的網(wǎng)絡(luò)連接。

use epoll;

Nginx服務(wù)器提供了多個(gè)事件驅(qū)動(dòng)器模型來(lái)處理網(wǎng)絡(luò)消息。
其支持的類(lèi)型有:select、poll、kqueue、epoll、rtsing、/dev/poll以及eventport

select:只能在Windows下使用,這個(gè)事件模型不建議在高負(fù)載的系統(tǒng)使用

poll:Nginx默認(rèn)首選,但不是在所有系統(tǒng)下都可用

kqueue:這種方式在FreeBSD 4.1+, OpenBSD2.9+, NetBSD 2.0, 和 MacOS X系統(tǒng)中是最高效的

epoll: 這種方式是在Linux 2.6+內(nèi)核中最高效的方式

rtsig:實(shí)時(shí)信號(hào),可用在Linux 2.2.19的內(nèi)核中,但不適用在高流量的系統(tǒng)中

/dev/poll: Solaris 7 11/99+,HP/UX 11.22+, IRIX 6.5.15+, and Tru64
UNIX 5.1A+操作系統(tǒng)最高效的方式

eventport: Solaris 10最高效的方式

http配置部分

官方文檔 http://nginx.org/en/docs/

參考鏈接: https://segmentfault.com/a/11...

參考鏈接: https://segmentfault.com/a/11...

參考鏈接:http的header https://kb.cnblogs.com/page/9...

常見(jiàn)配置:

include       mime.types;  //cat conf/mime.types

定義nginx能識(shí)別的網(wǎng)絡(luò)資源媒體類(lèi)型(如,文本、html、js、css、流媒體等)

default_type  application/octet-stream;

定義默認(rèn)的type,如果不定義改行,默認(rèn)為text/plain.

log_format main  "$remote_addr - $remote_user [$time_local] "$request" "
                  "$status $body_bytes_sent "$http_referer" "
                  ""$http_user_agent" "$http_x_forwarded_for"";

定義nginx日志格式,其中main為日志格式的名字,后面的為nginx的內(nèi)部變量組成的一串字符串。

access_log logs/access.log main; 

定義日志的路徑以及采用的日志格式,該參數(shù)可以在server配置塊中定義。

sendfile on;

是否調(diào)用sendfile函數(shù)傳輸文件,默認(rèn)為off,使用sendfile函數(shù)傳輸,可以減少u(mài)ser mode和kernel mode的切換,從而提升服務(wù)器性能。對(duì)于普通應(yīng)用設(shè)為 on,如果用來(lái)進(jìn)行下載等應(yīng)用磁盤(pán)IO重負(fù)載應(yīng)用,可設(shè)置為off,以平衡磁盤(pán)與網(wǎng)絡(luò)I/O處理速度,降低系統(tǒng)的負(fù)載。

sendfile_max_chunk 128k;

該參數(shù)限定Nginx worker process每次調(diào)用sendfile()函數(shù)傳輸數(shù)據(jù)的最大值,默認(rèn)值為0,如果設(shè)置為0則無(wú)限制。

tcp_nopush on;

當(dāng)tcp_nopush設(shè)置為on時(shí),會(huì)調(diào)用tcp_cork方法進(jìn)行數(shù)據(jù)傳輸。
使用該方法會(huì)產(chǎn)生這樣的效果:當(dāng)應(yīng)用程序產(chǎn)生數(shù)據(jù)時(shí),內(nèi)核不會(huì)立馬封裝包,而是當(dāng)數(shù)據(jù)量積累到一定量時(shí)才會(huì)封裝,然后傳輸。這樣有助于解決網(wǎng)絡(luò)堵塞問(wèn)題。默認(rèn)值為on。舉例:快遞員收快遞、發(fā)快遞,包裹累積到一定量才會(huì)發(fā),節(jié)省運(yùn)輸成本。

keepalive_timeout 65 60;

該參數(shù)有兩個(gè)值,第一個(gè)值設(shè)置nginx服務(wù)器與客戶端會(huì)話結(jié)束后仍舊保持連接的最長(zhǎng)時(shí)間,單位是秒,默認(rèn)為75s。
第二個(gè)值可以省略,它是針對(duì)客戶端的瀏覽器來(lái)設(shè)置的,可以通過(guò)curl -I看到header信息中有一項(xiàng)Keep-Alive: timeout=60,如果不設(shè)置就沒(méi)有這一項(xiàng)。
第二個(gè)數(shù)值設(shè)置后,瀏覽器就會(huì)根據(jù)這個(gè)數(shù)值決定何時(shí)主動(dòng)關(guān)閉連接,Nginx服務(wù)器就不操心了。但有的瀏覽器并不認(rèn)可該參數(shù)。

send_timeout

這個(gè)超時(shí)時(shí)間是發(fā)送響應(yīng)的超時(shí)時(shí)間,即Nginx服務(wù)器向客戶端發(fā)送了數(shù)據(jù)包,但客戶端一直沒(méi)有去接收這個(gè)數(shù)據(jù)包。
如果某個(gè)連接超過(guò)send_timeout定義的超時(shí)時(shí)間,那么Nginx將會(huì)關(guān)閉這個(gè)連接。

client_max_body_size 10m;

瀏覽器在發(fā)送含有較大HTTP包體的請(qǐng)求時(shí),其頭部會(huì)有一個(gè)Content-Length字段,client_max_body_size是用來(lái)限制Content-Length所示值的大小的。
這個(gè)限制包體的配置不用等Nginx接收完所有的HTTP包體,就可以告訴用戶請(qǐng)求過(guò)大不被接受。會(huì)返回413狀態(tài)碼。
例如,用戶試圖上傳一個(gè)1GB的文件,Nginx在收完包頭后,發(fā)現(xiàn)Content-Length超過(guò)client_max_body_size定義的值,
就直接發(fā)送413(Request Entity Too Large)響應(yīng)給客戶端。

gzip on;

是否開(kāi)啟gzip壓縮。

gzip_min_length 1k;

設(shè)置允許壓縮的頁(yè)面最小字節(jié)數(shù),頁(yè)面字節(jié)數(shù)從header頭得content-length中進(jìn)行獲取。默認(rèn)值是20。建議設(shè)置成大于1k的字節(jié)數(shù),小于1k可能會(huì)越壓越大。

gzip_buffers 4 16k;

設(shè)置系統(tǒng)獲取幾個(gè)單位的buffer用于存儲(chǔ)gzip的壓縮結(jié)果數(shù)據(jù)流。4 16k代表分配4個(gè)16k的buffer。

gzip_http_version 1.1;

用于識(shí)別 http 協(xié)議的版本,早期的瀏覽器不支持 Gzip 壓縮,用戶會(huì)看到亂碼,所以為了支持前期版本加上了這個(gè)選項(xiàng)。
如果你用了Nginx反向代理并期望也啟用Gzip壓縮的話,由于末端通信是http/1.1,故請(qǐng)?jiān)O(shè)置為 1.1。

gzip_comp_level 6;

gzip壓縮比,1壓縮比最小處理速度最快,9壓縮比最大但處理速度最慢(傳輸快但比較消耗cpu)

gzip_types mime-type ... ;

匹配mime類(lèi)型進(jìn)行壓縮,無(wú)論是否指定,”text/html”類(lèi)型總是會(huì)被壓縮的。在conf/mime.conf里查看對(duì)應(yīng)的type。
示例:gzip_types text/plain application/x-javascript text/css text/html application/xml;

gzip_vary on;

和http頭有關(guān)系,會(huì)在響應(yīng)頭加個(gè) Vary: Accept-Encoding ,可以讓前端的緩存服務(wù)器緩存經(jīng)過(guò)gzip壓縮的頁(yè)面,例如,用Squid緩存經(jīng)過(guò)Nginx壓縮的數(shù)據(jù)。

gzip_proxied any;

Nginx作為反向代理的時(shí)候啟用,決定開(kāi)啟或者關(guān)閉后端服務(wù)器返回的結(jié)果是否壓縮,匹配的前提是后端服務(wù)器必須要返回包含”Via”的 header頭。
以下為可用的值:

off - 關(guān)閉所有的代理結(jié)果數(shù)據(jù)的壓縮

expired - 啟用壓縮,如果header頭中包含 "Expires" 頭信息

no-cache - 啟用壓縮,如果header頭中包含 "Cache-Control:no-cache" 頭信息

no-store - 啟用壓縮,如果header頭中包含 "Cache-Control:no-store" 頭信息

private - 啟用壓縮,如果header頭中包含 "Cache-Control:private" 頭信息

no_last_modified - 啟用壓縮,如果header頭中不包含 "Last-Modified" 頭信息

no_etag - 啟用壓縮 ,如果header頭中不包含 "ETag" 頭信息

auth - 啟用壓縮 , 如果header頭中包含 "Authorization" 頭信息

any - 無(wú)條件啟用壓縮

nginx服務(wù)優(yōu)化 虛擬主機(jī)

1、虛擬主機(jī)概念

虛擬主機(jī)指的是,在web服務(wù)里是一個(gè)獨(dú)立的網(wǎng)站站點(diǎn),這個(gè)站點(diǎn)對(duì)應(yīng)獨(dú)立的域名,也可能是IP或端口,具有獨(dú)立的程序及資源目錄,可以獨(dú)立地對(duì)外提供服務(wù)供用戶訪問(wèn)。Nginx軟件是使用一個(gè)server{}標(biāo)簽來(lái)標(biāo)識(shí)一個(gè)虛擬主機(jī)的。一個(gè)web服務(wù)里可以有多個(gè)虛擬主機(jī)標(biāo)簽對(duì),即可同時(shí)支持多個(gè)虛擬主機(jī)站點(diǎn)。

2、虛擬主機(jī)類(lèi)型

常見(jiàn)的虛擬主機(jī)類(lèi)型分三種

基于域名的虛擬主機(jī)

基于端口的虛擬主機(jī)

基于IP的虛擬主機(jī)

基于域名的虛擬主機(jī)是通過(guò)不同域名區(qū)分不同的虛擬主機(jī),是企業(yè)應(yīng)用最廣泛的虛擬主機(jī)類(lèi)型。
基于端口的虛擬主機(jī)是通過(guò)不同端口區(qū)分不同的虛擬主機(jī),常用于公司內(nèi)部的網(wǎng)站,比如不希望用戶訪問(wèn)的網(wǎng)站后臺(tái)等。
基于IP地址的虛擬主機(jī)是通過(guò)不同IP地址區(qū)分不同的虛擬主機(jī),不常用很少見(jiàn)。

3、基于域名的虛擬主機(jī)配置
第一、編輯nginx配置文件nginx.conf,找到http{}塊,在http{}塊里面添加server{}標(biāo)簽,一個(gè)server{}代表一個(gè)虛擬主機(jī)。默認(rèn)nginx.conf中有一個(gè)server{},這里修改一下,并配置兩個(gè)基于域名的虛擬主機(jī)。
配置內(nèi)容如下:

server {
        listen 80;
        server_name www.syushin.com;
        location / {
                root    html/com;
                index   index.html index.htm;
                }               
        }
server {
        listen 80;
        server_name www.syushin.org;
        location / {
                root    html/org;
                index   index.html index.htm;
                }               
        }        

可以看到基于域名的虛擬是在server_name中定義。

第二、創(chuàng)建域名對(duì)應(yīng)的站點(diǎn)目錄及文件。

$ mkdir ../html/com ../html/org
$ echo "I am syushin.com" >> ../html/com/index.html
$ echo "I am syushin.org" >> ../html/org/index.html

第三、配置域名解析
linux下
echo "192.168.30.7 www.syushin.com www.syushin.org" >> /etc/hosts

windows下
找到域名解析文件,通常在C:WindowsSystem32driversetchosts
添加內(nèi)容:192.168.30.7 www.syushin.com www.syushin.org

第四、檢查nginx語(yǔ)法,重新加載

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

第五、測(cè)試
linux下用curl命令測(cè)試

[root@lnmp conf]$ curl www.syushin.com
I am syushin.com
[root@lnmp conf]$ curl www.syushin.org
I am syushin.org

windows下用瀏覽器訪問(wèn)

這樣就可以實(shí)現(xiàn)基于域名的虛擬主機(jī)了,用戶輸入不同的域名,訪問(wèn)不同的站點(diǎn)內(nèi)容。而基于端口的虛擬主機(jī)是在server{}標(biāo)簽里的listen處修改監(jiān)聽(tīng)的端口,比如listen 8080;或者listen 8090;
基于IP地址也是在listen里修改,格式如下:192.168.30.7:80;或者192.168.30.8:81
都很簡(jiǎn)單,就不再實(shí)際操作了。

規(guī)范優(yōu)化nginx配置文件

nginx主配置文件是nginx.conf,可以將主配置文件包含所有虛擬主機(jī)的子配置文件統(tǒng)一放入extra目錄里。
使用include參數(shù)實(shí)現(xiàn),它可以放在nginx配置文件的任何地方,用法示例如下:

$ include extra/web01.conf

下面是我的使用方案:
$ vim nginx.conf在http{}刪除默認(rèn)的server{}標(biāo)簽,使用include extra/*.conf;

http
{
    include mime.types;
    default_type application/octet-stream;
    ...(這里省略)
    include extra/*.conf; #就是這一行
}

創(chuàng)建虛擬主機(jī)配置保存的目錄

$ mkdir /usr/local/nginx/conf/extra

進(jìn)入extra目錄,創(chuàng)建虛擬主機(jī)配置文件。

$ vim web01.conf
# 內(nèi)容如下
server {
        listen 80;
        server_name localhost;
        index index.html index.htm ;
        root html;
    }

這樣通過(guò)主配置文件加上include包含的配置使得Nginx配置更加簡(jiǎn)單,清晰,規(guī)范。

域名重定向

在一個(gè)虛擬主機(jī)上有多個(gè)域名的時(shí)候,可以針對(duì)這多個(gè)域名做域名重定向。即訪問(wèn)A域名,瀏覽器會(huì)跳轉(zhuǎn)到B域名。

server {
        listen 80;
        server_name www.syushin.com blog.syushin.cc;
        if ($host = "blog.syushin.cc" ) {
                rewrite  /(.*)  http://syushin.com/$1  permanent;
        }
        index index.html index.htm index.php;
        root html/web01;
}

虛擬主機(jī)配置如上:其中if語(yǔ)句就是域名重定向的配置了。$host變量就是域名,當(dāng)訪問(wèn)域名是blog.syushin.cc的時(shí)候,就將域名跳轉(zhuǎn)到www.syushin.com。
測(cè)試:

[root@lnmp ~]$ curl -x127.0.0.1:80 www.syushin.com -I
HTTP/1.1 200 OK # 正常訪問(wèn)狀態(tài)碼200
Server: nginx/1.14.2
Date: Sun, 10 Mar 2019 13:00:16 GMT
Content-Type: text/html
Content-Length: 12
Last-Modified: Sun, 10 Mar 2019 12:38:09 GMT
Connection: keep-alive
ETag: "5c850531-c"
Accept-Ranges: bytes

[root@lnmp ~]$ curl -x127.0.0.1:80 blog.syushin.cc -I 
HTTP/1.1 301 Moved Permanently # 狀態(tài)碼301
Server: nginx/1.14.2
Date: Sun, 10 Mar 2019 13:00:25 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: http://www.syushin.com/ # 重定向域名
用戶認(rèn)證 nginx訪問(wèn)日志

nginx訪問(wèn)日志就是用戶訪問(wèn)網(wǎng)站的記錄。可以針對(duì)不同格式記錄日志。
配置nginx訪問(wèn)日志格式(這里只使用其中一部分):

   
  # 在nginx主配置文件中的http{}塊里定義
 log_format main "$remote_addr $http_x_forwarded_for [$time_local]"
    " $host "$request_uri" $status"
    " "$http_referer" "$http_user_agent"";

參數(shù)說(shuō)明:

變量 描述
$remote_addr 客戶端IP(公網(wǎng)IP)
$http_x_forwarded_for 代理服務(wù)器的IP
$time_local 服務(wù)器本地時(shí)間
$host 訪問(wèn)主機(jī)名(域名)
$request_url 訪問(wèn)的url地址
$status 狀態(tài)碼
$http_referer referer
$http_user_agent user_agent

虛擬主機(jī)配置文件爬配置nginx訪問(wèn)日志保存目錄以及使用主配置文件里的日志格式:

server {
        listen 80;
        server_name www.syushin.com blog.syushin.cc;
        if ($host = "blog.syushin.cc" ) {
                rewrite  /(.*)  http://www.syushin.com/$1  permanent;
        }
        index index.html index.htm index.php;
        root html/web01;
        location ~ .php$
        {
            include fastcgi_params;
            fastcgi_pass unix:/tmp/php-fcgi.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
        }
        access_log /var/log/nginx/syushin_access.log main; # 這一行就是配置訪問(wèn)日志

}

創(chuàng)建日志文件目錄

$ mkdir -p /var/log/nginx

檢查語(yǔ)法、重新加載

[root@lnmp conf]$ $ /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp conf]$ /usr/local/nginx/sbin/nginx -s reload

測(cè)試,瀏覽器訪問(wèn)一次域名和在本地curl一下,查看是否有日志生成。

[root@lnmp nginx]$ curl -x127.0.0.1:80 blog.syushin.cc 

301 Moved Permanently

301 Moved Permanently


nginx/1.14.2
[root@lnmp nginx]$ cat syushin_access.log 192.168.30.1 - [11/Mar/2019:12:55:01 +0800] www.syushin.com "/" 304 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" 127.0.0.1 - [11/Mar/2019:12:56:32 +0800] blog.syushin.cc "/" 301 "-" "curl/7.29.0"

這樣配置訪問(wèn)日志就成功了。

日志切割

生產(chǎn)環(huán)境下,訪問(wèn)日志的量是很大的,如果把訪問(wèn)日志都放在一個(gè)文件里是會(huì)有很大影響的。因此將nginx訪問(wèn)日志進(jìn)行切割是很有必要的。
如何切割日志?Linux有個(gè)日志切割工具logrotate。它的配置文件在/etc/logrotate.conf
查看配置文件

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we"ll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

其中weekly表示按周切割;
rotate 4表示一次存儲(chǔ)4個(gè)歸檔文件,對(duì)于第5個(gè)歸檔文件,時(shí)間最久的文檔會(huì)被覆蓋;
create以指定的權(quán)限創(chuàng)建全新的日志文件,同時(shí)logrotate也會(huì)重命名原始日志文件。
dataext表示以日期為格式命令新的日志文件

/var/log/wtmp {
        monthly
        create 0664 root utmp
            minsize 1M
        rotate 1
    }

上面代碼塊表示針對(duì)/var/log/wtmp這個(gè)目錄下做日志切割,時(shí)間為一個(gè)月,只對(duì)文件大小大于1M文件進(jìn)行切割。

對(duì)于nginx的日志切割
如果是yum安裝的nginx,logrotate已經(jīng)有默認(rèn)的切割策略了/etc/logrotate.d/nginx
而編譯安裝的nginx就沒(méi)有,需要手動(dòng)定義,也可以用這個(gè)日志配置

$ cat /etc/logrotate.d/nginx 
/var/log/nginx/*.log {
    daily
    rotate 5
    missingok
    notifempty
    create 644 www www
    postrotate
      if [ -f /application/nginx/logs/nginx.pid ]; then
          kill -USR1 `cat /application/nginx/logs/nginx.pid`
      fi
endscript
}

logrotate工具對(duì)于防止因龐大的日志文件而耗盡存儲(chǔ)空間是十分有用的。配置完畢后,進(jìn)程是全自動(dòng)的,可以長(zhǎng)時(shí)間在不需要人為干預(yù)下運(yùn)行。除了樣例之外,自己還可以定制不同的樣式滿足需求。

訪問(wèn)日志不記錄靜態(tài)文件

在訪問(wèn)日志里,過(guò)濾掉一些圖片、js、css等的請(qǐng)求日志。因?yàn)檫@樣的日志沒(méi)有多大意義,而且會(huì)占用很大的磁盤(pán)空間。
配置,編輯虛擬主機(jī)配置文件,添加location:

location ~* .(png|jpeg|jpg|gif|js|css|bmp)$
        {
                access_log off;
        }

上面規(guī)則表示凡是匹配到以.png|jpeg|jpg|gif|js|css|bmp結(jié)尾的文件,訪問(wèn)日志功能就關(guān)閉,即不記錄訪問(wèn)靜態(tài)文件的訪問(wèn)記錄。*號(hào)表示不區(qū)分大小寫(xiě),.號(hào)前面需要只用轉(zhuǎn)義字符,|表示或者。
測(cè)試
在虛擬主機(jī)站點(diǎn)目錄里添加資源文件test.png,然后curl訪問(wèn)一下、再查看日志是否有記錄這條訪問(wèn)記錄,如果沒(méi)有則表示配置成功。
清空日志

$ > /var/log/nginx/syushin_access.log 

創(chuàng)建以png結(jié)尾的文件

$ touch /usr/local/nginx/html/web01/test.png    

訪問(wèn)

# 成功訪問(wèn)
[root@lnmp web01]$ curl -x127.0.0.1:80 www.syushin.com/test.png -I
HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Mon, 11 Mar 2019 05:19:58 GMT
Content-Type: image/png
Content-Length: 0
Last-Modified: Mon, 11 Mar 2019 05:16:14 GMT
Connection: keep-alive
ETag: "5c85ef1e-0"
Accept-Ranges: bytes

查看日志

[root@lnmp web01]# cat /var/log/nginx/syushin_access.log 
[root@lnmp web01]# 

無(wú)日志記錄,說(shuō)明配置成功。

防盜鏈

盜鏈?zhǔn)侵阜?wù)提供商自己不提供服務(wù)的內(nèi)容,通過(guò)技術(shù)手段繞過(guò)其它有利益的最終用戶界面(如廣告),直接在自己的網(wǎng)站上向最終用戶提供其它服務(wù)提供商的服務(wù)內(nèi)容,騙取最終用戶的瀏覽和點(diǎn)擊率。受益者不提供資源或提供很少的資源,而真正的服務(wù)提供商卻得不到任何的收益。

防盜鏈就是防止上面情況的。常見(jiàn)的盜鏈?zhǔn)菆D片盜鏈,音頻盜鏈,文件盜鏈。

Referer 防盜鏈
Referer在HTTP協(xié)議里有特殊的用途,當(dāng)瀏覽器向服務(wù)器發(fā)送請(qǐng)求時(shí),一般會(huì)帶上
Referer頭,告知服務(wù)器該請(qǐng)求是從哪個(gè)頁(yè)面鏈接過(guò)來(lái)的。Referer經(jīng)常被用于頁(yè)面訪問(wèn)統(tǒng)計(jì)、圖片防盜鏈等。

配置圖片防盜鏈

location ~ .(png|gif|jpeg|bmp|mp3|mp4|flv)$
        {
                valid_referers none blocked server_name *.syushin.com;
                if ($invalid_referer){
                    return 403;
                }
        }

valid referers指的是白名單內(nèi)的域名可以引用站點(diǎn)圖片
none表示空referer,即直接打開(kāi)站點(diǎn)的圖片,而不是從其他網(wǎng)站打開(kāi)本站點(diǎn)的圖片文件,因此對(duì)直接訪問(wèn)站點(diǎn)內(nèi)容的不做限制。
blocked指的是非法鏈接
server_name就是虛擬主機(jī)域名
后面的*.syushin.com就是白名單域名
這樣配置后,當(dāng)從其他網(wǎng)站引用本站的圖片的時(shí)候,就引用不了了。
測(cè)試:使用curl -e選項(xiàng)測(cè)試,-e指定referer

$ curl -I -e "http://www.aaa.com/1.txt" http://www.syushin.com/test.png

出現(xiàn)403說(shuō)明配置成功

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/40373.html

相關(guān)文章

  • Linux運(yùn)維:CentOS7安裝LNMP(nginx1.14.2、mariadb10.3.13、p

    摘要:?jiǎn)?dòng)服務(wù)啟動(dòng)查看端口進(jìn)程進(jìn)入數(shù)據(jù)庫(kù)設(shè)置軟連接設(shè)置密碼用戶登錄至此安裝完畢。編譯安裝下載軟件包解壓編譯安裝添加啟動(dòng)腳本內(nèi)容如下設(shè)置開(kāi)機(jī)啟動(dòng)啟動(dòng),查看進(jìn)程端口確定至此安裝完畢。 前言 系統(tǒng)環(huán)境 [root@lnmp mysql]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) [root@lnmp mysql]...

    cocopeak 評(píng)論0 收藏0
  • 寶塔面板優(yōu)惠券永久版:寶塔Linux面板僅2088元;寶塔windows面板僅2488元

    摘要:寶塔面板優(yōu)惠券永久授權(quán)版多少錢(qián)寶塔面板讓運(yùn)維簡(jiǎn)單高效。目前,很多站長(zhǎng)及企業(yè)可能會(huì)購(gòu)買(mǎi)寶塔面板專(zhuān)業(yè)版或企業(yè)版,寶塔面板專(zhuān)業(yè)版僅元寶塔面板專(zhuān)業(yè)版僅元寶塔面板企業(yè)版僅元年寶塔面板企業(yè)版僅元年起。如寶塔數(shù)據(jù)同步工具主從復(fù)制。寶塔面板優(yōu)惠券永久授權(quán)版多少錢(qián)?寶塔面板讓運(yùn)維簡(jiǎn)單高效。面板支持Linux與Windows系統(tǒng)。一鍵配置:LAMP/LNMP、網(wǎng)站、數(shù)據(jù)庫(kù)、FTP、SSL,通過(guò)Web端輕松管理云...

    laznrbfe 評(píng)論0 收藏0
  • IT運(yùn)維必備技能

    摘要:熟練使用等抓包工具底層大神級(jí),內(nèi)核其它素養(yǎng)處理方式除了技能,我覺(jué)得素養(yǎng)態(tài)度也可以談?wù)劙踩\(yùn)維人員的權(quán)限很大,所以一定要保證帳號(hào)私鑰的安全。應(yīng)該第一時(shí)間和開(kāi)發(fā)部門(mén)確認(rèn),要求優(yōu)化代碼。進(jìn)取心不斷學(xué)習(xí)運(yùn)維的知識(shí)范圍很廣,要不斷學(xué)習(xí)。 寫(xiě)代碼寫(xiě)了10多年, 從小公司到大公司, 前端, 后端, 數(shù)據(jù)庫(kù), 運(yùn)維什么都做, 最后還是專(zhuān)職做運(yùn)維了. 整理下運(yùn)維的一些技能, 部分是網(wǎng)上資料并整理. Li...

    lily_wang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<