中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

龍崗個(gè)性化網(wǎng)站建設(shè)價(jià)格低南寧網(wǎng)站運(yùn)營(yíng)優(yōu)化平臺(tái)

龍崗個(gè)性化網(wǎng)站建設(shè)價(jià)格低,南寧網(wǎng)站運(yùn)營(yíng)優(yōu)化平臺(tái),做商品網(wǎng)站的教學(xué)視頻教程,wordpress 雙側(cè)邊欄關(guān)于 Nginx 的哪些事 1、Nginx 主要功能2、Nginx 的常用命令2.1、啟動(dòng)Nginx2.2、停止 Nginx2.3、重新加載Nginx 配置2.4、檢查Nginx配置文件2.5、指定配置文件2.6、檢查Nginx版本2.7、顯示Nginx幫助信息 3、Nginx 配置文件 nginx.conf3.1、Nginx 配置文件(nginx.con…

關(guān)于 Nginx 的哪些事

  • 1、Nginx 主要功能
  • 2、Nginx 的常用命令
    • 2.1、啟動(dòng)Nginx
    • 2.2、停止 Nginx
    • 2.3、重新加載Nginx 配置
    • 2.4、檢查Nginx配置文件
    • 2.5、指定配置文件
    • 2.6、檢查Nginx版本
    • 2.7、顯示Nginx幫助信息
  • 3、Nginx 配置文件 nginx.conf
    • 3.1、Nginx 配置文件(nginx.conf)組成部分
    • 3.2、Nginx 配置文件(nginx.conf)示例
  • 4、反向代理
    • 4.1、簡(jiǎn)單示例
    • 4.2、location 語(yǔ)法
      • 4.2.1、精準(zhǔn)匹配(=)
      • 4.2.2、普通匹配(^~)
      • 4.2.3、正則匹配(~)
      • 4.2.4、默認(rèn)根路徑匹配(/)
      • 4.2.5、nginx內(nèi)部跳轉(zhuǎn)(@)
      • 4.2.6、location URI結(jié)尾帶不帶 /
  • 5、負(fù)載均衡
    • 5.1、簡(jiǎn)單示例
    • 5.2、常用負(fù)載均衡策略
      • 5.2.1、輪詢
      • 5.2.2、權(quán)重輪詢
      • 5.2.3、IP哈希
      • 5.2.4、最少連接
  • 6、動(dòng)靜分離
  • 7、Nginx 限流
    • 7.1、基于IP限流
    • 7.2、基于URL限流

1、Nginx 主要功能

?

Nginx主要功能:

  • 正向代理:需要在客戶端配置代理服務(wù)器,進(jìn)行指定網(wǎng)站訪問(wèn)。

  • 反向代理:反向代理是Nginx的常見功能之一。當(dāng)客戶端向服務(wù)器發(fā)送請(qǐng)求時(shí),首先經(jīng)過(guò)Nginx服務(wù)器,然后Nginx將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部的Web服務(wù)器。這種代理方式使得外部網(wǎng)絡(luò)無(wú)法直接訪問(wèn)內(nèi)部的Web服務(wù)器,提高了安全性。

  • 負(fù)載均衡:它將網(wǎng)絡(luò)流量分擔(dān)到多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上,并行處理請(qǐng)求,從而提高網(wǎng)絡(luò)系統(tǒng)的處理能力,減少前端用戶等待響應(yīng)的時(shí)間。

  • 動(dòng)靜分離:將動(dòng)態(tài)網(wǎng)頁(yè)和靜態(tài)頁(yè)面分開處理。通過(guò)動(dòng)靜分離,Nginx可以充分利用其高并發(fā)、高性能的特點(diǎn),同時(shí)減輕后端服務(wù)器的負(fù)載,提高網(wǎng)站的訪問(wèn)速度和可維護(hù)性。

?

2、Nginx 的常用命令

?

2.1、啟動(dòng)Nginx

?

# 首先進(jìn)入 Nginx 目錄 (一般在該目錄,具體根據(jù)實(shí)際安裝情況而定)
cd /usr/local/nginx
# 啟動(dòng) Nginx
./sbin/nginx# 或者直接執(zhí)行
/usr/local/nginx/sbin/nginx

?

2.2、停止 Nginx

?

# 首先進(jìn)入 Nginx 目錄  (一般在該目錄,具體根據(jù)實(shí)際安裝情況而定)
cd /usr/local/nginx
# 停止 Nginx
./sbin/nginx -s stop
# 或者在 Nginx 目錄執(zhí)行
./sbin/nginx -s quit# 或者直接執(zhí)行
/usr/local/nginx/sbin/nginx -s stop
# 或
/usr/local/nginx/sbin/nginx -s quit

?

2.3、重新加載Nginx 配置

?

# 首先進(jìn)入 Nginx 目錄  (一般在該目錄,具體根據(jù)實(shí)際安裝情況而定)
cd /usr/local/nginx
# 重新加載Nginx 配置
./sbin/nginx -s reload

?

2.4、檢查Nginx配置文件

?

# 首先進(jìn)入 Nginx 目錄  (一般在該目錄,具體根據(jù)實(shí)際安裝情況而定)
cd /usr/local/nginx
# 檢查Nginx配置文件是否正確
./sbin/nginx -t

?

2.5、指定配置文件

?

# 首先進(jìn)入 Nginx 目錄  (一般在該目錄,具體根據(jù)實(shí)際安裝情況而定)
cd /usr/local/nginx
# 指定配置文件:在命令行中添加 -c 參數(shù)。例如:
./sbin/nginx -c /usr/local/nginx/conf/nginx.conf

?

2.6、檢查Nginx版本

?

# 首先進(jìn)入 Nginx 目錄  (一般在該目錄,具體根據(jù)實(shí)際安裝情況而定)
cd /usr/local/nginx
# 檢查Nginx版本
./sbin/nginx -V
# 或者在Nginx目錄中執(zhí)行
./sbin/nginx -v

?

2.7、顯示Nginx幫助信息

?

# 首先進(jìn)入 Nginx 目錄  (一般在該目錄,具體根據(jù)實(shí)際安裝情況而定)
cd /usr/local/nginx
# 顯示Nginx幫助信息
./sbin/nginx -h

?

3、Nginx 配置文件 nginx.conf

?

???????Nginx 配置文件路徑,一般在 /etc/nginx/nginx.conf/usr/local/nginx/conf/nginx.conf

?

3.1、Nginx 配置文件(nginx.conf)組成部分

?

  • ① 全局塊:從配置文件開始到events塊之間的內(nèi)容,主要設(shè)置一些影響nginx服務(wù)器整體運(yùn)行的配置命令,如worker_processes、worker_processes值等。

  • ② events塊:主要配置Nginx服務(wù)器與用戶的網(wǎng)絡(luò)連接,包括是否開啟對(duì)多work process下的網(wǎng)絡(luò)連接進(jìn)行序列化,是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接等。

  • ③ http塊:這是Nginx服務(wù)器配置中最頻繁的部分,包括http全局塊、server塊等。http全局塊配置指令包括文件引入、MIME-TYPE定義、日志定義、連接超時(shí)時(shí)間、單鏈接請(qǐng)求數(shù)上限等。

此外,Nginx還支持對(duì)stream和server塊的配置,stream塊用于配置HTTP和SMTP代理服務(wù)器的代理設(shè)置,server塊用于配置虛擬主機(jī)的設(shè)置。

?

3.2、Nginx 配置文件(nginx.conf)示例

?

# 指定Nginx服務(wù)器的用戶
user  nginx;  
# 指定Nginx服務(wù)器的工作進(jìn)程數(shù)。
worker_processes  1;  
# 指定錯(cuò)誤日志存放路徑  
error_log  /var/log/nginx/error.log;  
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;# 指定Nginx進(jìn)程的存放路徑。
pid        /var/run/nginx.pid;  events {  # 指定每個(gè)worker process的最大連接數(shù)worker_connections  1024;  # 指定Nginx服務(wù)器的工作進(jìn)程數(shù)。# worker_processes 20;# 指定是否允許一個(gè)worker process同時(shí)接收多個(gè)網(wǎng)絡(luò)連接。multi_accept on;  
}  http {  include       /etc/nginx/mime.types;  default_type  application/octet-stream;  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  '$status $body_bytes_sent "$http_referer" '  '"$http_user_agent" "$http_x_forwarded_for"';  access_log  /var/log/nginx/access.log  main;  sendfile        on;  tcp_nopush     on;  tcp_nodelay    on;  keepalive_timeout  65;  types_hash_max_size 2048;  # gzip:開啟gzip壓縮,減少傳輸數(shù)據(jù)量。# gzip  on;# 該 server 配置了Nginx作為反向代理服務(wù)器,# 將所有以example.com為域名的HTTP請(qǐng)求轉(zhuǎn)發(fā)到192.168.1.100:8080的目標(biāo)服務(wù)器。server {  # listen:指定Nginx監(jiān)聽的端口號(hào)。例如,listen 80,表示Nginx將監(jiān)聽80端口。listen 80;  # server_name:指定服務(wù)器名稱,可以是一個(gè)域名或多個(gè)域名。# 指定Nginx要代理的域名,表示Nginx將代理example.com域名的請(qǐng)求。server_name example.com;  # charset:設(shè)置字符集。# charset koi8-r;# access_log  logs/host.access.log  main;# 指定要代理的請(qǐng)求路徑。例,location / { ... }表示Nginx將對(duì)所有請(qǐng)求進(jìn)行代理# location /:匹配所有以該主機(jī)名開頭的URL路徑。location / {  # 指定代理的目標(biāo)服務(wù)器。# 這里指Nginx將所有請(qǐng)求代理到192.168.1.100:8080的目標(biāo)服務(wù)器。proxy_pass http://192.168.1.100:8080;  # index:指定默認(rèn)頁(yè)面,可以是index.html、index.htm或index.nginx-debian.html。# index  index.html index.htm;# try_files:用于嘗試訪問(wèn)本地文件或定義的其他動(dòng)作,如重定向、返回特定狀態(tài)碼等。# try_files $uri $uri/ /index.html;}  # error_page:指定錯(cuò)誤頁(yè)面,用于處理特定錯(cuò)誤碼的頁(yè)面。#error_page  404              /404.html;# redirect server error pages to the static page /50x.html# error_page:指定錯(cuò)誤頁(yè)面,用于處理特定錯(cuò)誤碼的頁(yè)面。error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}  # 該server段落,配置了Nginx作為反向代理和HTTPS代理服務(wù)器。# 這里將所有以example.com為域名的HTTPS請(qǐng)求,轉(zhuǎn)發(fā)到192.168.1.100:8080的目標(biāo)服務(wù)器,     # 并使用SSL證書進(jìn)行加密傳輸。server {  # listen:指定Nginx監(jiān)聽的端口號(hào)。listen 443 ssl;  # server_name:指定服務(wù)器名稱,可以是一個(gè)域名或多個(gè)域名。# 指定Nginx要代理的域名,表示Nginx將代理example.com域名的請(qǐng)求。server_name example.com;  # ssl_certificate:指定SSL證書的路徑。# 這里表示Nginx將使用位于/etc/nginx/ssl/nginx.crt的SSL證書。ssl_certificate /etc/nginx/ssl/nginx.crt;  ssl_certificate_key /etc/nginx/ssl/nginx.key;  # ssl_session_cache    shared:SSL:1m;# ssl_session_timeout  5m;# ssl_ciphers  HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers  on;# location 用于匹配特定URL,并定義相應(yīng)的代理規(guī)則或靜態(tài)文件路徑。location / {  # proxy_pass:定義反向代理規(guī)則。proxy_pass http://192.168.1.100:8080;  }  }  # #server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;# index:指定默認(rèn)頁(yè)面,可以是index.html、index.htm或index.nginx-debian.html。#        index  index.html index.htm;#    }#}}

?

4、反向代理

?

4.1、簡(jiǎn)單示例

?

???????在下面示例中,Nginx作為反向代理服務(wù)器,將所有以example.com為域名的HTTP請(qǐng)求轉(zhuǎn)發(fā)到192.168.1.100:8080的目標(biāo)服務(wù)器。同時(shí),通過(guò)proxy_set_header指令設(shè)置了一些必要的請(qǐng)求頭信息,以便目標(biāo)服務(wù)器正確地處理請(qǐng)求。該示例僅適用于HTTP協(xié)議的代理配置。

?

server {  listen 80;  server_name example.com;  # location /:匹配所有以該主機(jī)名開頭的URL路徑。location / {  proxy_pass http://192.168.1.100:8080;  proxy_set_header Host $host;  proxy_set_header X-Real-IP $remote_addr;  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  }  
}

?

注意:目標(biāo)服務(wù)器,需要對(duì)外開放訪問(wèn)的端口

# 以下是基于 CentOS7 版本的防火墻相關(guān)命令。# 查看防火墻狀態(tài)
firewall-cmd --state# 如果防火墻處于關(guān)閉狀態(tài),先啟動(dòng)它
systemctl start firewalld.service# 防火墻開放8080 端口號(hào)
firewall-cmd --add-port=8080/tcp --permanent# 重啟防火墻以使更改生效
systemctl restart firewalld.service# 重新加載防火墻配置
firewall-cmd –reload# 查看已經(jīng)開放的端口號(hào)
firewall-cmd --list-all

?

4.2、location 語(yǔ)法

?
????????在NGINX中,location指令用于定義請(qǐng)求匹配的URL路徑和相應(yīng)的配置。它是在NGINX配置文件中的server塊內(nèi)使用的。下面是location指令的基本語(yǔ)法:
?

location [=|~|~*|^~] /path {  # 配置指令  
}# 說(shuō)明:
=   :表示完全匹配指定的路徑。
~   :表示使用正則表達(dá)式匹配路徑。
~*  :表示不區(qū)分大小寫的正則表達(dá)式匹配路徑。
^~  :表示前綴匹配路徑,但不使用正則表達(dá)式。

?
location 匹配優(yōu)先級(jí):
= 大于 ^~ 大于 ~ | ~* 大于 最長(zhǎng)前綴匹配 大于 /

?

4.2.1、精準(zhǔn)匹配(=)

?

精準(zhǔn)匹配的符號(hào)標(biāo)記為“=”,示例:

# 如果請(qǐng)求URI和精準(zhǔn)匹配的模式字符串/api完全相同,那么精準(zhǔn)匹配通過(guò).
# 在所有的匹配類型中,精準(zhǔn)匹配的優(yōu)先級(jí)最高.
location = /api {proxy_pass http://192.168.1.100:8080;  
}# 假設(shè) server_name example.com;  
# 只匹配http://example.com/abc
# http://example.com/api [匹配成功]
# http://example.com/api/index [匹配失敗]

?

4.2.2、普通匹配(^~)

?
普通匹配的符號(hào)標(biāo)記為“~”,普通匹配是前綴匹配,也是Nginx默認(rèn)的匹配類型。類型符號(hào)“~”可以省略,如果location沒(méi)有任何匹配類型,就為普通的前綴匹配。示例:

# 普通匹配:如果請(qǐng)求路徑URI頭部,匹配到location的模式字符串,那么匹配成功。
# 如果匹配到多個(gè)前綴,那么最長(zhǎng)模式匹配優(yōu)先
# 匹配以"/api/"開頭的所有請(qǐng)求
location ^~ /api/ {proxy_pass http://192.168.1.100:8080;  
}location ^~ /api/demo {proxy_pass http://192.168.1.101:8081;  
}# 假設(shè) server_name example.com;  
#以 /api/ 開頭的請(qǐng)求,都會(huì)匹配上
#http://example.com/api/index.page  [匹配成功]
#http://example.com/error/error.page [匹配失敗]# 以上 http://example.com/api/demo/index.page 請(qǐng)求  [匹配成功] 
# 且 http://example.com/api/demo/index.page 請(qǐng)求,優(yōu)先匹配目標(biāo):http://192.168.1.101:8081location ^~ /api/ {proxy_pass http://192.168.1.100:8080;  
}
# 等同于
location /api/ {proxy_pass http://192.168.1.100:8080;  
}

?

4.2.3、正則匹配(~)

?

正則匹配的類型,根據(jù)類型符號(hào)的不同,可以細(xì)分為以下4種 :

  • ~:標(biāo)準(zhǔn)正則匹配,區(qū)分字母大小寫,進(jìn)行正則表達(dá)式測(cè)試,若測(cè)試成功,則匹配成功。

  • ~*:標(biāo)準(zhǔn)正則匹配,不區(qū)分字母大小寫,進(jìn)行正則表達(dá)式測(cè)試,若測(cè)試成功,則匹配成功。

  • !~:反向正則匹配,區(qū)分字母大小寫,進(jìn)行正則表達(dá)式測(cè)試,若測(cè)試不成功,則匹配成功。

  • !~*:反向正則匹配,不區(qū)分字母大小寫,進(jìn)行正則表達(dá)式測(cè)試,若測(cè)試不成功,則匹配成功。

?

# ~ :區(qū)分字母大小寫
location ~ /Api/ {proxy_pass http://192.168.1.100:8080;  
}
# 假設(shè) server_name example.com; 
#http://example.com/Api/ [匹配成功]
#http://example.com/api/ [匹配失敗]# ~* :不區(qū)分字母大小寫
location ~* /Api/ {proxy_pass http://192.168.1.100:8080;  
}
# 假設(shè) server_name example.com; 
# 則會(huì)忽略 uri 部分的大小寫
#http://example.com/Api/ [匹配成功]
#http://example.com/api/ [匹配成功]

4.2.4、默認(rèn)根路徑匹配(/)

?
根路徑的路徑規(guī)則就是使用單個(gè)“/”符號(hào),示例:
?

# 匹配所有以該主機(jī)名開頭的URL路徑。
location  /  {proxy_pass http://192.168.1.100:8080; 
}

4.2.5、nginx內(nèi)部跳轉(zhuǎn)(@)

?

location /index/ {error_page 404 @index_error;
}
location @index_error {.....
}
#以 /index/ 開頭的請(qǐng)求,如果鏈接的狀態(tài)為 404。則會(huì)匹配到 @index_error 這條規(guī)則上。

?

4.2.6、location URI結(jié)尾帶不帶 /

?

????????在 Nginx 中,location指令用于匹配請(qǐng)求的 URL,并根據(jù)匹配的結(jié)果來(lái)配置相應(yīng)的代理、重定向、靜態(tài)文件服務(wù)等操作。在 location指令中,URL最后是否帶有斜杠(/)會(huì)對(duì)匹配的結(jié)果產(chǎn)生一些區(qū)別。瀏覽器在發(fā)起請(qǐng)求的時(shí)候,默認(rèn)加上了 / 。雖然很多瀏覽器在地址欄里也不會(huì)顯示 / 。

  1. URL最后帶有斜杠(/):
    • 當(dāng) URL 以斜杠結(jié)尾時(shí),location指令會(huì)精確匹配該 URL。例如,如果配置了location /foo/,則只有請(qǐng)求的 URL 為 /foo/ 時(shí)才會(huì)匹配,但不匹配 /foo/foo123 等。
    • 如果請(qǐng)求的 URL 是 /foo/bar,則不會(huì)匹配 location /foo/,因?yàn)樽詈笥幸粋€(gè)額外的路徑片段(bar)。
    • 如果需要匹配以foo結(jié)尾的所有 URL,包括/foo//foo/bar等,可以使用正則表達(dá)式,例如location ~ ^/foo/$。
  2. URL最后沒(méi)有斜杠(/):
    • 當(dāng) URL 不以斜杠結(jié)尾時(shí),location指令會(huì)匹配以該 URL 為前綴的所有 URL。例如,如果配置了location /foo,則請(qǐng)求的 URL 為/foo、/foobar/foo/bar等以/foo為前綴的 URL 都會(huì)匹配。
    • 如果請(qǐng)求的 URL 是/foo/bar,則會(huì)匹配location /foo,因?yàn)?code>/foo是該 URL 的前綴。

?
????????總結(jié)起來(lái),是否在 location指令的 URL 最后加上斜杠,決定了是精確匹配還是前綴匹配。具體使用哪種方式取決于你的需求,如果需要精確匹配某個(gè) URL,可以使用斜杠結(jié)尾;如果需要匹配某個(gè)前綴的所有 URL,則可以去掉斜杠。

?

5、負(fù)載均衡

?

5.1、簡(jiǎn)單示例

?

# 使用 upstream 塊定義了一個(gè)名為 backend 的后端服務(wù)器組。
# 在該后端服務(wù)器組中,列出了三個(gè)后端服務(wù)器 
# 192.168.1.100:8080、192.168.1.101:8081 和 192.168.1.102:8082
upstream backend {  server 192.168.1.100:8080;  server 192.168.1.101:8081;  server 192.168.1.102:8082;  
}  server {  listen 80;  server_name example.com;  location / {  proxy_pass http://backend;  # 在這里配置其他相關(guān)的反向代理設(shè)置  }  
}

?

5.2、常用負(fù)載均衡策略

?
以下是幾種常見的策略:輪詢、權(quán)重、IP哈希、最少連接。

?

5.2.1、輪詢

?
????????輪詢(Round Robin):每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器。如果后端服務(wù)器down掉,Nginx會(huì)自動(dòng)剔除該服務(wù)器。
?

# 默認(rèn)采用輪詢策略,示例:
upstream backserver {  server 192.168.0.14;  server 192.168.0.15;  
}

?

5.2.2、權(quán)重輪詢

?
????????權(quán)重輪詢(Weighted Round Robin):在輪詢策略的基礎(chǔ)上,指定每個(gè)后端服務(wù)器的輪詢幾率,權(quán)重值越高的服務(wù)器被選擇的可能性就越大。
?

# 使用示例:
upstream backserver {  server 192.168.0.14 weight=2;  server 192.168.0.15 weight=1;  
}

?

5.2.3、IP哈希

?
????????IP哈希(IP Hash):指定負(fù)載均衡器按照基于客戶端IP的分配方式。這個(gè)方法確保了相同的客戶端的請(qǐng)求一直發(fā)送到相同的后端服務(wù)器,以保持會(huì)話一致性。
?

# 使用示例:
upstream backserver {  ip_hash;  server 192.168.0.14;  server 192.168.0.15;  
}

?

5.2.4、最少連接

?
????????最少連接(Least Connections):把請(qǐng)求轉(zhuǎn)發(fā)給連接數(shù)最少的后端服務(wù)器。輪詢算法是把請(qǐng)求平均的轉(zhuǎn)發(fā)給各個(gè)后端,使它們的負(fù)載大致相同;但是,有些請(qǐng)求占用的時(shí)間很長(zhǎng),會(huì)導(dǎo)致其所在的后端負(fù)載較高。使用最少連接策略可以更好地平衡負(fù)載。
?

# 使用示例:
upstream backserver {  least_conn;  server 192.168.0.14;  server 192.168.0.15;  
}

?

6、動(dòng)靜分離

?

Nginx 的動(dòng)靜分離,是指將動(dòng)態(tài)請(qǐng)求和靜態(tài)請(qǐng)求,分發(fā)到不同的后端處理。

動(dòng)態(tài)請(qǐng)求通常需要與數(shù)據(jù)庫(kù)等進(jìn)行交互,處理邏輯較為復(fù)雜。而靜態(tài)請(qǐng)求,則是指只需要直接返回靜態(tài)文件或資源的請(qǐng)求,處理速度較快。

通過(guò)動(dòng)靜分離,可以將動(dòng)態(tài)請(qǐng)求交給專門的動(dòng)態(tài)服務(wù)器處理,而靜態(tài)請(qǐng)求則可以由更高效的靜態(tài)服務(wù)器處理,從而提高整體的處理性能和響應(yīng)速度。

?

server {  listen 80;  server_name example.com;  # 動(dòng)態(tài)請(qǐng)求location /dynamic {  proxy_pass http://dynamic_server;}location /css {  # root指令用于指定靜態(tài)文件的根目錄root /path/to/css;  }  location /js {  # root指令用于指定靜態(tài)文件的根目錄root /path/to/js;  }  # 頁(yè)面訪問(wèn)方式一:location /front {root /data;index index.html;}# 頁(yè)面訪問(wèn)方式二:location /web {alias /data/front;index index.html;}# 圖片訪問(wèn)方式一:location /static {root /data/front; }# 圖片訪問(wèn)方式二:location /photo {alias /data/front/static;}
}

?

注意:aliasroot指令都是用于指定文件路徑的,但它們的使用方式和效果有所不同。

alias指令用于指定匹配的URL段對(duì)應(yīng)的文件或目錄的路徑。當(dāng)請(qǐng)求的URL匹配location塊中配置的URL段時(shí),NGINX會(huì)將其重定向到alias指令指定的路徑下對(duì)應(yīng)的文件或目錄。這意味著請(qǐng)求的URL將會(huì)發(fā)生變化,從原來(lái)的URL變?yōu)樾碌腢RL。

例如,下面的配置將請(qǐng)求的URL為/images/example.jpg重定向到/var/www/html/images/example.jpg

location /images {  alias /var/www/html/images;  
}

?

root指令則是指定最上層目錄的定義,它不會(huì)改變請(qǐng)求的URL。當(dāng)請(qǐng)求的URL匹配location塊中配置的URL段時(shí),NGINX會(huì)在指定的目錄下查找對(duì)應(yīng)的文件。

例如,下面的配置將請(qǐng)求的URL為/images/example.jpg映射到/var/www/html/images/example.jpg

location /images {  root /var/www/html;  
}

?

7、Nginx 限流

?

nginx可以通過(guò)以下方式實(shí)現(xiàn)限流:基于IP限流、基于URL限流、基于時(shí)間限流。
?

7.1、基于IP限流

?
????????基于IP的限流,可以有效地控制每個(gè)IP地址的請(qǐng)求頻率和請(qǐng)求數(shù),有助于防止惡意攻擊和保護(hù)服務(wù)器的性能。

????????需要注意的是,限流區(qū)域的配置和限流指令的應(yīng)用,需要根據(jù)實(shí)際需求進(jìn)行調(diào)整和優(yōu)化。
?
示例配置:

# 創(chuàng)建限流區(qū)域one,限制每個(gè)IP的請(qǐng)求頻率為1次/秒
# $binary_remote_addr 是用于存儲(chǔ)限流信息的共享內(nèi)存名稱,使用了10MB的共享內(nèi)存
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;  
# 創(chuàng)建限流區(qū)域two,限制每個(gè)IP的請(qǐng)求頻率為2次/秒
limit_req_zone $binary_remote_addr zone=two:10m rate=2r/s;  server {  location / {  # 使用limit_req指令,指定使用one限流區(qū)域# 設(shè)置burst參數(shù)為1,表示允許每個(gè)IP在突發(fā)情況下最多多發(fā)送一個(gè)請(qǐng)求。limit_req zone=one burst=1;  ...  }  
}

?

  • 限流算法:

    • nginx的限流算法使用了漏桶算法。

    • 當(dāng)請(qǐng)求到達(dá)時(shí),會(huì)先檢查對(duì)應(yīng)的限流桶中的請(qǐng)求數(shù)量是否已經(jīng)達(dá)到限制速率。

    • 如果未達(dá)到限制速率,則允許請(qǐng)求通過(guò),并在限流桶中增加一個(gè)請(qǐng)求。

    • 如果達(dá)到限制速率,則需要檢查是否允許突發(fā)請(qǐng)求。

      • 如果允許突發(fā)請(qǐng)求,則允許請(qǐng)求通過(guò),并在限流桶中增加一個(gè)請(qǐng)求,同時(shí)記錄突發(fā)請(qǐng)求數(shù);

      • 如果不允許突發(fā)請(qǐng)求,則直接拒絕請(qǐng)求。

?

7.2、基于URL限流

?
????????基于URL的限流,可以有效地控制每個(gè)URL的請(qǐng)求頻率和請(qǐng)求數(shù),有助于保護(hù)服務(wù)器的性能和防止濫用。

????????基于URL的限流方式,適用于限制某些頻繁訪問(wèn)的URL,或者限制對(duì)某些重要接口的請(qǐng)求頻率,以保護(hù)服務(wù)器資源或者控制某些URL的使用。

????????需要注意的是,限流區(qū)域的配置和限流指令的應(yīng)用,需要根據(jù)實(shí)際需求進(jìn)行調(diào)整和優(yōu)化。

示例配置:

# 實(shí)現(xiàn)基于URL的限流,要先配置限流區(qū)域 limit_req_zone,限流區(qū)域是一個(gè)存儲(chǔ)URL和相關(guān)統(tǒng)計(jì)信息的緩存區(qū)。
# $uri 用于存儲(chǔ)限流信息的共享內(nèi)存名稱,這里創(chuàng)建了一個(gè)名為one的限流區(qū)域,使用了10MB的共享內(nèi)存。
# rate 是每個(gè)URL的請(qǐng)求限制速率,這里限制了每個(gè)URL的請(qǐng)求頻率為1次/秒。
limit_req_zone $uri zone=one:10m rate=1r/s;location /api/ {  # 針對(duì)/api/路徑進(jìn)行限流,limit_req指令來(lái)指定使用限流區(qū)域?yàn)閛ne# burst參數(shù)為10,表示允許每個(gè)URL在突發(fā)情況下最多多發(fā)送10個(gè)請(qǐng)求。limit_req zone=one burst=10;  ...  
}

?

  • 限流算法:
    • nginx的限流算法使用了漏桶算法。
    • 當(dāng)請(qǐng)求到達(dá)時(shí),會(huì)先檢查對(duì)應(yīng)的限流桶中的請(qǐng)求數(shù)量,是否已經(jīng)達(dá)到限制速率。
    • 如果未達(dá)到限制速率,則允許請(qǐng)求通過(guò),并在限流桶中增加一個(gè)請(qǐng)求。
    • 如果達(dá)到限制速率,則需要檢查是否允許突發(fā)請(qǐng)求。
      • 如果允許突發(fā)請(qǐng)求,則允許請(qǐng)求通過(guò),并在限流桶中增加一個(gè)請(qǐng)求,同時(shí)記錄突發(fā)請(qǐng)求數(shù);
      • 如果不允許突發(fā)請(qǐng)求,則直接拒絕請(qǐng)求。

?
?
?
?
?
?
?
?
.

http://www.risenshineclean.com/news/53309.html

相關(guān)文章:

  • 公關(guān)做的好的網(wǎng)站平臺(tái)軟件定制開發(fā)
  • 河北特定網(wǎng)站建設(shè)推薦查詢網(wǎng)域名查詢
  • 黃埔區(qū)做網(wǎng)站工具站seo
  • 網(wǎng)站制作推薦廊坊關(guān)鍵詞排名優(yōu)化
  • 佛山高端網(wǎng)站建設(shè)google搜索引擎入口下載
  • 服務(wù)好質(zhì)量好的app開發(fā)seo網(wǎng)站優(yōu)化工具大全
  • 響站怎么建設(shè)網(wǎng)站營(yíng)業(yè)推廣是什么
  • 國(guó)企500強(qiáng)完整名單上海單個(gè)關(guān)鍵詞優(yōu)化
  • 有沒(méi)有網(wǎng)站免費(fèi)的網(wǎng)絡(luò)營(yíng)銷策劃書格式
  • 海寧網(wǎng)站建設(shè)上海seo推廣整站
  • 有關(guān)大數(shù)據(jù)的網(wǎng)站及網(wǎng)址seminar
  • 進(jìn)入福建省建設(shè)干部培訓(xùn)中心網(wǎng)站大數(shù)據(jù)營(yíng)銷的案例
  • 如何用源代碼做網(wǎng)站手機(jī)優(yōu)化什么意思
  • 微信網(wǎng)頁(yè)宣傳網(wǎng)站怎么做的百度搜索關(guān)鍵詞技巧
  • 自己做網(wǎng)站制作流程免費(fèi)網(wǎng)站推廣軟件
  • 做青蛙網(wǎng)站做網(wǎng)站怎么賺錢
  • 響應(yīng)式布局代碼怎么寫名詞解釋搜索引擎優(yōu)化
  • 一個(gè)網(wǎng)站推廣武漢新一輪疫情
  • 新開傳奇手游網(wǎng)站大全網(wǎng)站seo關(guān)鍵詞
  • 政府網(wǎng)站建設(shè)出現(xiàn)的問(wèn)題及對(duì)策廈門百度關(guān)鍵詞seo收費(fèi)
  • 網(wǎng)站上的導(dǎo)航欄怎么做網(wǎng)站站長(zhǎng)工具
  • 日本人真人做真愛(ài)的免費(fèi)網(wǎng)站鄭州網(wǎng)站優(yōu)化顧問(wèn)
  • 電商網(wǎng)站建站開發(fā)語(yǔ)言seo快速建站
  • 做網(wǎng)站賺錢嗎 怎么賺今天特大新聞
  • 做寫手一般上什么網(wǎng)站好百度快照怎么用
  • 做蛋糕的網(wǎng)站科學(xué)新概念外鏈平臺(tái)
  • 小兔自助建站廣州排名推廣
  • 建設(shè)銀行網(wǎng)站用360瀏覽器關(guān)鍵詞seo是什么
  • 建設(shè)部監(jiān)理工程師考試網(wǎng)站怎么給自己的公司做網(wǎng)站
  • 成品網(wǎng)站整套源碼如何做好營(yíng)銷推廣