欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx的一些常用配置與技巧總結

 更新時間:2019年05月29日 09:13:06   作者:37丫37  
這篇文章主要給大家總結介紹了關于Nginx的一些常用配置與技巧的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Nginx具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

文章列舉了幾個Nginx常見的,實用的,有趣的配置,希望看過之后能說一句:學到了!

一個站點配置多個域名

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

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

一個服務配置多個站點

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虛擬主機配置實現(xiàn),Nginx有三種類型的虛擬主機

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

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

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

nginx添加賬號密碼驗證

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

有很多服務通過nginx訪問,但本身沒有提供賬號認證的功能,就可以通過nginx提供的authbase賬號密碼認證來實現(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開啟列目錄

當你想讓nginx作為文件下載服務器存在時,需要開啟nginx列目錄

server {
 location download {
  autoindex on;

  autoindex_exact_size off;
  autoindex_localtime on;
 }
}

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

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

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

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

配置默認站點

server {
 listen 80 default;
}

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

不允許通過IP訪問

server {
 listen  80 default;
 server_name _;

 return  404;
}

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

上邊這個方法比較粗暴,當然你也可以配置下所有未配置的地址訪問時直接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即可,無需真正的把文件給放到服務器上

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加杠不加杠的陷阱,這里詳細說下proxy_pass http://tomcats與proxy_pass http://tomcats/的區(qū)別:

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

1.  目標地址中不帶uri(proxy_pass http://tomcats)。此時新的目標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.  目標地址中帶uri(proxy_pass http://tomcats/,/也是uri),此時新的目標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和后端服務之間的keepalive能夠減少頻繁創(chuàng)建TCP連接造成的資源消耗,配置如上

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

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

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

404自動跳轉到首頁

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

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

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • nginx proxy_set_header的具體實現(xiàn)

    nginx proxy_set_header的具體實現(xiàn)

    proxy_set_header?是 Nginx 配置中的一個重要指令,本文主要介紹了nginx proxy_set_header的具體實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • Nginx正反向代理及負載均衡等功能實現(xiàn)配置代碼實例

    Nginx正反向代理及負載均衡等功能實現(xiàn)配置代碼實例

    這篇文章主要介紹了Nginx正反向代理及負載均衡等功能實現(xiàn)配置代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • nginx 代理80端口轉443端口的實現(xiàn)

    nginx 代理80端口轉443端口的實現(xiàn)

    這篇文章主要介紹了nginx 代理80端口轉443端口的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • nginx: [warn]

    nginx: [warn] "log_format" directive used only on "http" lev

    這篇文章主要介紹了nginx: [warn] "log_format" directive used only on "http" level 解決方法,需要的朋友可以參考下
    2014-08-08
  • Nginx+Windows搭建域名訪問環(huán)境的操作方法

    Nginx+Windows搭建域名訪問環(huán)境的操作方法

    這篇文章主要介紹了Nginx搭建域名訪問環(huán)境,包括nginx配置文件的相關介紹及對nginx配置文件的分析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • nginx添加ssl模塊的方法教程

    nginx添加ssl模塊的方法教程

    這篇文章主要給大家介紹了關于nginx添加ssl模塊的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習許吧。
    2017-12-12
  • Nginx代理axios請求以及注意事項詳解

    Nginx代理axios請求以及注意事項詳解

    這篇文章主要給大家介紹了關于Nginx代理axios請求以及注意事項的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • 手把手教你利用Nginx搭建屬于自己的服務器

    手把手教你利用Nginx搭建屬于自己的服務器

    最近總是想搭建自己的網(wǎng)站,奈何皮夾里空空如也,服務器也租不起,更別說域名了,于是我就尋思能否自己搭建個服務器,還不要錢呢,本文就來手把手教你如何實現(xiàn)吧
    2023-08-08
  • 借用nginx.vim工具進行語法高亮和格式化配置nginx.conf文件

    借用nginx.vim工具進行語法高亮和格式化配置nginx.conf文件

    今天小編就為大家分享一篇關于借用nginx.vim工具進行語法高亮和格式化配置nginx.conf文件,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 使用nginx實現(xiàn)分布式限流的方法

    使用nginx實現(xiàn)分布式限流的方法

    一般對外暴露的系統(tǒng),在促銷或者黑客攻擊時會涌來大量的請求,為了保護系統(tǒng)不被瞬間到來的高并發(fā)流量給打垮, 就需要限流。接下來通過本文給大家分享使用nginx實現(xiàn)分布式限流的方法,感興趣的朋友跟隨腳本之家小編一起學習吧
    2018-05-05

最新評論