Nginx學習筆記

2021-10-19 09:27:26 字數 3580 閱讀 3236

nginx的特點:

docker-compose.yml

version

:'3.1'

services

:nginx

:restart

: always

image

: daocloud.io/library/nginx:latest

container_name

: nginx

ports:-

80:80

關於nginx的核心配置檔案nginx.conf

user  nginx;

worker_processes 1

;error_log /

var/log/nginx/error.log warn;

pid /

var/run/nginx.pid;

# 以上統稱為全域性塊

# worker_processes數值越大,nginx的併發能力就越強

# error_log表示nginx的錯誤日誌存放位置

events

# events模組

# worker_connections數值越大,nginx的併發能力就越強

# location塊

# root:將接收到的請求根據/usr/share/nginx/html去查詢靜態資源

# index:預設去上述路徑中找到index.html或index.htm

}# server塊

# listen: 代表nginx監聽的埠號

# localhost: 代表nginx接收請求的ip

include /etc/nginx/conf.d/*.conf; /*引入檔案,使用者可以自定義*/

}# http塊

# include表示引入乙個外部的檔案 --

>

/mime.types中存放著大量的**型別

# include /etc/nginx/conf.d/*.conf; --> 引入了conf.d目錄下的以.conf為結尾的配置檔案

version

:'3.1'

services

:nginx

:restart

: always

image

: daocloud.io/library/nginx:latest

container_name

: nginx

ports:-

80:80

volumes

:- /opt/docker_nginx/conf.d/:/etc/nginx/conf.d # 對映

資料卷對映之後,要在對應目錄/opt/docker_nginx/conf.d下建立相應的.conf檔案

正向**:

正向**服務是由客戶端設立的

客戶端知道**伺服器和目標伺服器是誰

幫助突破訪問許可權,提高訪問速度,對目標伺服器隱藏客戶端的ip位址

反向**:

反向**伺服器是配置在服務端的

客戶端不知道訪問的是哪一台伺服器

能達到負載均衡,並且可以隱藏伺服器真正的ip位址

準備乙個目標伺服器

啟動之前的tomcat伺服器

編寫nginx的配置檔案, 通過nginx訪問到tomcat伺服器

server 

}

優先順序關係:

(location = )>(location /xx/yy/zz)>(location ^~)>(location ,*)>(location /起始路徑)>(location /)

# 1.

= 匹配

location =

/

# 2. 通用匹配

location /***

# 3. 正則匹配

location ~

/***

# 4. 匹配開頭路徑

nginx預設提供三種負載均衡的策略:

輪詢:將客戶端發起的請求,平均分配給每一台伺服器

權重:將客戶端的請求,根據伺服器的權重值不同,分配不同的數量

只需要在配置檔案中新增如下內容

upstream 名字 

server

}

在之前的基礎上,加weight

upstream 名字 

server

}

第一行加上ip_hash即可

upstream 名字 

server

}

nginx的併發能力公式:

​ worker_processes * worker_connections / n = nginx最終的併發能力

對於動態資源,n=4,因為客戶端請求nginx後,nginx要再請求伺服器;

對於靜態資源,n=2,因為客戶端請求nginx後,nginx在本地若能找到資源,可以直接返回。

nginx通過動靜分離,來提公升併發能力,為使用者提供更快的響應。

# 配置如下

location /

# 配置如下

location /

# 先修改docker,新增乙個資料卷,對映到nginx伺服器的乙個目錄

# 在資料卷的路徑下新增靜態資源,如index.html和1.jpg

# 修改配置檔案,再restart

伺服器和nginx都可能出現單點故障,需要通過集群解決

為了避免由於nginx的宕機,而導致整個程式的崩潰

準備多台nginx

準備keepalived,監聽nginx的健康情況

準備haproxy,提供乙個虛擬的路徑,統一去接收使用者請求

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-q5bjfvsv-1613100168809)(

Nginx 學習筆記

nginx配置proxy pass 的 路徑問題 在nginx中配置proxy pass時,如果是按照 匹配路徑時,要注意proxy pass後的url最後的 當加上了 相當於是絕對根路徑,則nginx不會把location中匹配的路徑部分 走 如果沒有 則會把匹配的路徑部分也給 走。locatio...

Nginx學習筆記

常用命令 啟動 start nginx 或者 nginx.exe 停止 nginx.exe s stop 或者 nginx.exe s quit stop是快速停止nginx,quit是完整有序的停止nginx 重啟 nginx.exe s reload 配置資訊修改使用此命令 配置 1 匹配以ro...

nginx學習筆記

mac os x 10.11.5環境 brew install nginx 即可。預設安裝目錄 usr local etc nginx。可以修改目錄下nginx.conf檔案的配置,將8080改為8081,則通過http localhost 8081訪問就可以看到nginx的歡迎介面了。主程序可以處...