日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx的几个常用配置和技巧

發(fā)布時間:2024/8/26 Nginx 80 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx的几个常用配置和技巧 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一個站點配置多個域名

server?{
????listen???????80;
????server_name??ops-coffee.cn?b.ops-coffee.cn;
}

server_name?后跟多個域名即可,多個域名之間用空格分隔

一個服務(wù)配置多個站點

server?{
????listen???????80;
????server_name??a.ops-coffee.cn;

????location?/?{
????????root?/home/project/pa;
????????index?index.html;
????}
}

server?{
????listen???????80;
????server_name??ops-coffee.cn?b.ops-coffee.cn;

????location?/?{
????????root?/home/project/pb;
????????index?index.html;
????}
}

server?{
????listen???????80;
????server_name??c.ops-coffee.cn;

????location?/?{
????????root?/home/project/pc;
????????index?index.html;
????}
}

基于Nginx虛擬主機(jī)配置實現(xiàn),Nginx有三種類型的虛擬主機(jī)

基于IP的虛擬主機(jī):?需要你的服務(wù)器上有多個地址,每個站點對應(yīng)不同的地址,這種方式使用的比較少

基于端口的虛擬主機(jī):?每個站點對應(yīng)不同的端口,訪問的時候使用ip:port的方式訪問,可以修改listen的端口來使用

基于域名的虛擬主機(jī):?使用最廣的方式,上邊例子中就是用了基于域名的虛擬主機(jī),前提條件是你有多個域名分別對應(yīng)每個站點,server_name填寫不同的域名即可

nginx添加賬號密碼驗證

server?{
????location?/?{
????????auth_basic?"please?input?user&passwd";
????????auth_basic_user_file?key/auth.key;
????}
}

有很多服務(wù)通過nginx訪問,但本身沒有提供賬號認(rèn)證的功能,就可以通過nginx提供的authbase賬號密碼認(rèn)證來實現(xiàn),可以用以下腳本來生成賬號的密碼

#?cat?pwd.pl?
#!/usr/bin/perl
use?strict;

my?$pw=$ARGV[0]?;
print?crypt($pw,$pw)."\n";

使用方法:

#?perl?pwd.pl?ops-coffee.cn
opf8BImqCAXww
#?echo?"admin:opf8BImqCAXww"?>?key/auth.key

nginx開啟列目錄

當(dāng)你想讓nginx作為文件下載服務(wù)器存在時,需要開啟nginx列目錄

server?{
????location?download?{
????????autoindex?on;

????????autoindex_exact_size?off;
????????autoindex_localtime?on;
????}
}

autoindex_exact_size:?為on(默認(rèn))時顯示文件的確切大小,單位是byte;改為off顯示文件大概大小,單位KB或MB或GB

autoindex_localtime:?為off(默認(rèn))時顯示的文件時間為GMT時間;改為on后,顯示的文件時間為服務(wù)器時間

默認(rèn)當(dāng)訪問列出的txt等文件時會在瀏覽器上顯示文件的內(nèi)容,如果你想讓瀏覽器直接下載,加上下邊的配置

if?($request_filename?~*?^.*?\.(txt|pdf|jpg|png)$)?{
????add_header?Content-Disposition?'attachment';
}

配置默認(rèn)站點

server?{
????listen?80?default;
}

當(dāng)一個nginx服務(wù)上創(chuàng)建了多個虛擬主機(jī)時默認(rèn)會從上到下查找,如果匹配不到虛擬主機(jī)則會返回第一個虛擬主機(jī)的內(nèi)容,如果你想指定一個默認(rèn)站點時,可以將這個站點的虛擬主機(jī)放在配置文件中第一個虛擬主機(jī)的位置,或者在這個站點的虛擬主機(jī)上配置listen default

不允許通過IP訪問

server?{
????listen???????80?default;
????server_name??_;

????return??????404;
}

可能有一些未備案的域名或者你不希望的域名將服務(wù)器地址指向了你的服務(wù)器,這時候就會對你的站點造成一定的影響,需要禁止IP或未配置的域名訪問,我們利用上邊所說的default規(guī)則,將默認(rèn)流量都轉(zhuǎn)到404去

上邊這個方法比較粗暴,當(dāng)然你也可以配置下所有未配置的地址訪問時直接301重定向到你的網(wǎng)站去,也能為你的網(wǎng)站帶來一定的流量

server?{
????rewrite?^/(.*)$?https://ops-coffee.cn/$1????permanent;
}

直接返回驗證文件

location?=?/XDFyle6tNA.txt?{
????default_type?text/plain;
????return?200?'d6296a84657eb275c05c31b10924f6ea';
}

很多時候微信等程序都需要我們放一個txt的文件到項目里以驗證項目歸屬,我們可以直接通過上邊這種方式修改nginx即可,無需真正的把文件給放到服務(wù)器上

nginx配置upstream反向代理

http?{
????...
????upstream?tomcats?{
????????server?192.168.106.176?weight=1;
????????server?192.168.106.177?weight=1;
????}

????server?{
????????location?/ops-coffee/?{?
????????????proxy_pass?http://tomcats;?

????????????proxy_set_header?Host?$host;
????????????proxy_set_header?X-Real-IP?$remote_addr;
????????????proxy_set_header?X-Forwarded-For?$proxy_add_x_forwarded_for;
????????????proxy_set_header?X-Forwarded-Proto?$scheme;
????????}
????}

}

稍不注意可能會落入一個proxy_pass加杠不加杠的陷阱,這里詳細(xì)說下proxy_pass http://tomcats與proxy_pass http://tomcats/的區(qū)別:

雖然只是一個/的區(qū)別但結(jié)果確千差萬別。分為以下兩種情況:

1.? 目標(biāo)地址中不帶uri(proxy_pass http://tomcats)。此時新的目標(biāo)url中,匹配的uri部分不做修改,原來是什么就是什么。

location?/ops-coffee/?{
????proxy_pass??http://192.168.106.135:8181;
}

http://domain/ops-coffee/???-->?????http://192.168.106.135:8181/ops-coffee/
http://domain/ops-coffee/action/abc???-->?????http://192.168.106.135:8181/ops-coffee/action/abc

2.? 目標(biāo)地址中帶uri(proxy_pass http://tomcats/,/也是uri),此時新的目標(biāo)url中,匹配的uri部分將會被修改為該參數(shù)中的uri。

location?/ops-coffee/?{
????proxy_pass??http://192.168.106.135:8181/;
}

http://domain/ops-coffee/???-->?????http://192.168.106.135:8181
http://domain/ops-coffee/action/abc???-->?????http://192.168.106.135:8181/action/abc

nginx upstream開啟keepalive

upstream?tomcat?{
????server?ops-coffee.cn:8080;
????keepalive?1024;
}

server?{
????location?/?{
????????proxy_http_version?1.1;
????????proxy_set_header?Connection?"";

????????proxy_pass?http://tomcat;
????}
}

nginx在項目中大多數(shù)情況下會作為反向代理使用,例如nginx后接tomcat,nginx后接php等,這時我們開啟nginx和后端服務(wù)之間的keepalive能夠減少頻繁創(chuàng)建TCP連接造成的資源消耗,配置如上

keepalive:?指定每個nginxworker可以保持的最大連接數(shù)量為1024,默認(rèn)不設(shè)置,即nginx作為client時keepalive未生效

proxy_http_version 1.1:?開啟keepalive要求HTTP協(xié)議版本為HTTP 1.1

proxy_set_header Connection "":?為了兼容老的協(xié)議以及防止http頭中有Connection close導(dǎo)致的keepalive失效,這里需要及時清掉HTTP頭部的Connection

404自動跳轉(zhuǎn)到首頁

server?{
????location?/?{
???????error_page?404?=??@ops-coffee;
????}

????location?@ops-coffee?{
???????rewrite??.*??/?permanent;
????}
}

網(wǎng)站出現(xiàn)404頁面不是特別友好,我們可以通過上邊的配置在出現(xiàn)404之后給自動跳轉(zhuǎn)到首頁去

轉(zhuǎn)載于:https://www.cnblogs.com/cheyunhua/p/10820294.html

總結(jié)

以上是生活随笔為你收集整理的Nginx的几个常用配置和技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。