欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:運維 nginx技能點匯總

柚子快報邀請碼778899分享:運維 nginx技能點匯總

http://yzkb.51969.com/

nginx技能點匯總

常用正則

. : 匹配除換行符以外的任意字符

? : 重復0次或1次

+ : 重復1次或更多次

* : 重復0次或更多次

\d :匹配數(shù)字

^ : 匹配字符串的開始

$ : 匹配字符串的結束

{n} : 重復n次

{n,} : 重復n次或更多次

[c] : 匹配單個字符c

[a-z] : 匹配a-z小寫字母的任意一個

全局變量

$args: #這個變量等于請求行中的參數(shù),同$query_string

$content_length: 請求頭中的Content-length字段。

$content_type: 請求頭中的Content-Type字段。

$document_root: 當前請求在root指令中指定的值。

$host: 請求主機頭字段,否則為服務器名稱。

$http_user_agent: 客戶端agent信息

$http_cookie: 客戶端cookie信息

$limit_rate: 這個變量可以限制連接速率。

$request_method: 客戶端請求的動作,通常為GET或POST。

$remote_addr: 客戶端的IP地址。

$remote_port: 客戶端的端口。

$remote_user: 已經(jīng)經(jīng)過Auth Basic Module驗證的用戶名。

$request_filename: 當前請求的文件路徑,由root或alias指令與URI請求生成。

$scheme: HTTP方法(如http,https)。

$server_protocol: 請求使用的協(xié)議,通常是HTTP/1.0或HTTP/1.1。

$server_addr: 服務器地址,在完成一次系統(tǒng)調(diào)用后可以確定這個值。

$server_name: 服務器名稱。

$server_port: 請求到達服務器的端口號。

$request_uri: 包含請求參數(shù)的原始URI,不包含主機名,如:”/foo/bar.php?arg=baz”。

$uri: 不帶請求參數(shù)的當前URI,$uri不包含主機名,如”/foo/bar.html”。

$document_uri: 與$uri相同。

例:http://localhost:88/test1/test2/test.php

$host:localhost

$server_port:88

$request_uri:http://localhost:88/test1/test2/test.php

$document_uri:/test1/test2/test.php

$document_root:/var/www/html

$request_filename:/var/www/html/test1/test2/test.php

if語句塊

if判斷指令

語法為if(condition){...},對給定的條件condition進行判斷。如果為真,大括號內(nèi)的rewrite指令將被執(zhí)行,if條件(conditon)可以是如下任何內(nèi)容:

當表達式只是一個變量時,如果值為空或任何以0開頭的字符串都會當做false

直接比較變量和內(nèi)容時,使用=或!=

~正則表達式匹配,~*不區(qū)分大小寫的匹配,!~區(qū)分大小寫的不匹配

-f和!-f用來判斷是否存在文件

-d和!-d用來判斷是否存在目錄

-e和!-e用來判斷是否存在文件或目錄

-x和!-x用來判斷文件是否可執(zhí)行

例如:

if ($http_user_agent ~ MSIE) {

rewrite ^(.*)$ /msie/$1 break;

} //如果UA包含"MSIE",rewrite請求到/msid/目錄下

if ($http_cookie ~* "id=([^;]+)(?:;|$)") {

set $id $1;

} //如果cookie匹配正則,設置變量$id等于正則引用部分

if ($request_method = POST) {

return 405;

} //如果提交方法為POST,則返回狀態(tài)405(Method not allowed)。return不能返回301,302

if ($slow) {

limit_rate 10k;

} //限速,$slow可以通過 set 指令設置

if (!-f $request_filename){

break;

proxy_pass http://127.0.0.1;

} //如果請求的文件名不存在,則反向代理到localhost 。這里的break也是停止rewrite檢查

if ($args ~ post=140){

rewrite ^ http://example.com/ permanent;

} //如果query string中包含"post=140",永久重定向到example.com

location ~* \.(gif|jpg|png|swf|flv)$ {

valid_referers none blocked www.jefflei.com www.leizhenfang.com;

if ($invalid_referer) {

return 404;

} //防盜鏈

}

flag標志位

last: 相當于Apache的[L]標記,表示完成rewrite

break: 停止執(zhí)行當前虛擬主機的后續(xù)rewrite指令集

redirect: 返回302臨時重定向,地址欄會顯示跳轉后的地址

permanent: 返回301永久重定向,地址欄會顯示跳轉后的地址

因為301和302不能簡單的只返回狀態(tài)碼,還必須有重定向的URL,這就是return指令無法返回301,302的原因了。這里 last 和 break 區(qū)別有點難以理解:

last一般寫在server和if中,而break一般使用在location中

last不終止重寫后的url匹配,即新的url會再從server走一遍匹配流程,而break終止重寫后的匹配

break和last都能組織繼續(xù)執(zhí)行后面的rewrite指令

隱藏ngxin版本號

當前使用的nginx可能會有未知的漏洞,如果被黑客使用將會造成無法估量的損失,但是我們可以將nginx的版本隱藏,如下:

server_tokens off; #在http 模塊當中配置

Rewrite規(guī)則

rewrite功能就是,使用nginx提供的全局變量或自己設置的變量,結合正則表達式和標志位實現(xiàn)url重寫以及重定向。rewrite只能放在server{},location{},if{}中,并且只能對域名后邊的除去傳遞的參數(shù)外的字符串起作用

例如http://seanlook.com/a/we/index.php?id=1&u=str 只對/a/we/index.php重寫。語法rewrite regex replacement [flag];

如果相對域名或參數(shù)字符串起作用,可以使用全局變量匹配,也可以使用proxy_pass反向代理。

表明看rewrite和location功能有點像,都能實現(xiàn)跳轉,主要區(qū)別在于rewrite是在同一域名內(nèi)更改獲取資源的路徑,而location是對一類路徑做控制訪問或反向代理,可以proxy_pass到其他機器。很多情況下rewrite也會寫在location里,它們的執(zhí)行順序是:

執(zhí)行server塊的rewrite指令 執(zhí)行l(wèi)ocation匹配 執(zhí)行選定的location中的rewrite指令 如果其中某步URI被重寫,則重新循環(huán)執(zhí)行1-3,直到找到真實存在的文件;循環(huán)超過10次,則返回500 Internal Server Error錯誤。

write實例

http {

# 定義image日志格式

log_format imagelog '[$time_local] ' $image_file ' ' $image_type ' ' $body_bytes_sent ' ' $status;

# 開啟重寫日志

rewrite_log on;

server {

root /home/www;

location / {

# 重寫規(guī)則信息

error_log logs/rewrite.log notice;

# 注意這里要用‘’單引號引起來,避免{}

rewrite '^/images/([a-z]{2})/([a-z0-9]{5})/(.*)\.(png|jpg|gif)$' /data?file=$3.$4;

# 注意不能在上面這條規(guī)則后面加上“l(fā)ast”參數(shù),否則下面的set指令不會執(zhí)行

set $image_file $3;

set $image_type $4;

}

location /data {

# 指定針對圖片的日志格式,來分析圖片類型和大小

access_log logs/images.log mian;

root /data/images;

# 應用前面定義的變量。判斷首先文件在不在,不在再判斷目錄在不在,如果還不在就跳轉到最后一個url里

try_files /$arg_file /image404.html;

}

location = /image404.html {

# 圖片不存在返回特定的信息

return 404 "image not found\n";

}

}

錯誤碼原因和解決方案

400 bad request

錯誤的原因和解決辦法 配置nginx.conf相關設置如下.

client_header_buffer_size 16k;

large_client_header_buffers 4 64k;

根據(jù)具體情況調(diào)整,一般適當調(diào)整值就可以。

Nginx 502 Bad Gateway錯誤

proxy_next_upstream error timeout invalid_header http_500 http_503;

或者嘗試設置:

large_client_header_buffers 4 32k;

Nginx出現(xiàn)的413 Request Entity Too Large錯誤

這個錯誤一般在上傳文件的時候會出現(xiàn),

編輯Nginx主配置文件Nginx.conf,找到http{}段,添加

client_max_body_size 10m; //設置多大根據(jù)自己的需求作調(diào)整.

如果運行php的話這個大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,這樣就不會因為提交數(shù)據(jù)大小不一致出現(xiàn)的錯誤。

post_max_size = 10M

upload_max_filesize = 2M

解決504 Gateway Time-out(nginx)

遇到這個問題是在升級discuz論壇的時候遇到的

一般看來, 這種情況可能是由于nginx默認的fastcgi進程響應的緩沖區(qū)太小造成的, 這將導致fastcgi進程被掛起, 如果你的fastcgi服務對這個掛起處理的不好, 那么最后就極有可能導致504 Gateway Time-out

現(xiàn)在的網(wǎng)站, 尤其某些論壇有大量的回復和很多內(nèi)容的, 一個頁面甚至有幾百K。

默認的fastcgi進程響應的緩沖區(qū)是8K, 我們可以設置大點

在nginx.conf里, 加入: fastcgi_buffers 8 128k

這表示設置fastcgi緩沖區(qū)為8×128k

當然如果您在進行某一項即時的操作, 可能需要nginx的超時參數(shù)調(diào)大點,例如設置成60秒:send_timeout 60;

只是調(diào)整了這兩個參數(shù), 結果就是沒有再顯示那個超時, 可以說效果不錯, 但是也可能是由于其他的原因, 目前關于nginx的資料不是很多, 很多事情都需要長期的經(jīng)驗累計才有結果.

打開目錄瀏覽功能

Nginx默認是不允許列出整個目錄的。如需此功能,打開nginx.conf文件,在location server 或 http段中加入

autoindex on;

另外兩個參數(shù)最好也加上去:

autoindex\_exact\_size off;

默認為on,顯示出文件的確切大小,單位是bytes。

改為off后,顯示出文件的大概大小,單位是kB或者MB或者GB

autoindex\_localtime on;

默認為off,顯示的文件時間為GMT時間。

改為on后,顯示的文件時間為文件的服務器時間

顯示亂碼

server {

listen 80;

server_name example.com;

root /var/www/example;

location / {

charset utf-8; #一般是在個別的location中加入此項,具體情況具體對待

rewrite .* /index.html break;

}

}

配置nginx worker進程最大打開文件數(shù)

worker_rlimit_nofile 65535;

單個工作進程的最大連接數(shù)

通過worker_connections number;進行設置,numebr為整數(shù),number的值不能大于操作系統(tǒng)能打開的最大的文件句柄數(shù),使用ulimit -n可以查看當前操作系統(tǒng)支持的最大文件句柄數(shù),默認為為1024.

events {

worker_connections 102400; #設置單個工作進程最大連接數(shù)102400

}

灰度發(fā)布

根據(jù)ip實現(xiàn)灰度發(fā)布

在百度查自己公司的公網(wǎng)IP

原理

同時把兩個不同版本的代碼拉成兩個項目,根據(jù)ip來判斷用戶可以去哪個項目,灰度發(fā)布的項目目錄指向高版本的項目,其他ip的所有用戶仍然訪問相對的低版本的項目。

nginx配置

server {

listen 80;

server_name mb.com;

gzip on;

charset utf-8;

set $mulu /var/www/mb/dist ;

if ($remote_addr = 1.2.3.4) {

set $mulu /var/www/mr/build;

}

location / {

root $mulu;

index index.html;

location / {

try_files $uri $uri/ /index.html;

}

}

}

柚子快報邀請碼778899分享:運維 nginx技能點匯總

http://yzkb.51969.com/

文章來源

評論可見,查看隱藏內(nèi)容
大家都在看:

本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉載請注明,如有侵權,聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18881346.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄