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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx的动态代理,负载均衡,动静分离的简单使用

發布時間:2024/4/15 Nginx 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx的动态代理,负载均衡,动静分离的简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

nginx

一 Nginx介紹

1.1 為什么要學習Nginx

問題1: 客戶端到底要將請求發送那臺服務器

問題2:所有客戶端的請求都發送給了服務器1

問題3:客戶端發送的請求可能是申請靜態資源的,也有可能是訪問動態資源的

1.2 Nginx介紹

特點:

1.穩定性極強,7*24小時不間斷運行

2.Nginx提供了非常的配置實例

3.占用內存小,并發能力強

二 Nginx安裝

2.1 安裝

version: '3.1' services: nginx:restart: alwaysimage: nginx:1.19.2container_name: study_nginxports:- 80:80

2.2 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 {worker_connections 1024; }# events塊 # worker_connections 默認1024 數字越大,Nginx的并發能力越強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;keepalive_timeout 65;#gzip on;include /etc/nginx/conf.d/*.conf; }# http塊 # 上面的include 代表引入一個外部文件 ->mime.types中存放了大量的媒體類型 # 下面的include /etc/nginx/conf.d/*.conf; 引入了conf.d目錄下的以.conf的配置文件

Server塊

server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;} # location 塊 # root 將接收到的請求根據/usr/share/nginx/html去查找靜態資源 # index 默認去上述的路徑中找到index.html或者index.htmerror_page 500 502 503 504 /50x.html;location = /50x.html {root html;}} # server塊 # listen 代表Nginx的監聽端口號 # localhost 代表Nginx接收請求的ip #

三 Nginx的反向代理

3.1 什么是正向代理:

1.正向代理服務時由客戶端設立的

2客戶端了解代理服務器和目標服務器都是誰

3.幫助實現突破訪問權限,提高訪問的速度,對目標服務器隱藏客戶端的ip地址

3.2 什么是反向代理

1.反向代理服務器是配置在服務端的

2.客戶端是不知道到底訪問的那一臺服務器

3.達到負載均衡,并且可以真正的隱藏ip地址

3.3 基于Nginx實現反向代理

1.準備一個目標服務器

啟動一個tomcat服務器8080端口,在ROOT目錄下放一個index.html頁面

2.編寫nginx配置文件通過nginx訪問tomcat容器,實現反向代理

修改conf.d目錄下的default.conf文件

server{listen 80;server_name localhost;#基于反向代理訪問到nacoslocation = /index {proxy_pass http://47.112.174.148:8848/nacos;}# 基于反向代理訪問百度location ^~ /test/ {proxy_pass http://47.112.174.148:8081;}#基于反向代理訪問到tomcat服務器location / {proxy_pass http://47.112.174.148:8080;} }

然后訪問nginx的80端口,如果頁面展示的是tomcat的index.html頁面,說明nginx反向代理成功

3.3.1 關于nginx的location路徑映射

優先級關系:

(location = ) > (location /xxx/yyy/zzz) > (location ^~) > (location ~ , ~*) > (location/起始路徑) > (location /)

# 1. = 匹配 location = / {# 精準匹配,主機名后面不能攜帶任何字符串 }# 2. 通用匹配 location /xxx {# 匹配所有以/xxx開頭的路徑 }# 3. 正則匹配 location ~ /xxx {# 匹配所有以/xxx開頭的路徑,2的效果一樣 但是比2中優先級高些 }# 4. 匹配開頭路徑 location ^~/images/ {# 匹配所有以/images開頭的路徑 }# 5 匹配文件路徑 ~*\.(gif|jpg|png){# 匹配以gif或者jpg或者png為結尾的路徑 }

四 Nginx的負載均衡

Nginx為我們提供了三種負載均衡的策略

  • 輪詢:

    將客戶端發起的請求,平均分配給每個服務器,輪著處理請求

  • 權重:

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

  • ip_hash

    基于發起請求的客戶端IP地址不同,他會始終將請求發送到指定的服務器上.

  • 4.1 輪詢

    修改conf.d目錄下的default.conf文件

    # 在server塊外面聲明upsteam fs-server是我自己取得名字 自定義名稱不要加下劃線_ # server 指定服務地址,端口 upsteam fs-server {server 47.112.174.148:8080;server 47.112.174.148:8081;..... }server{listen 80;server_name localhost;#基于反向代理到我們上面upsteam指定的服務名字,默認使用輪詢location / {proxy_pass http://upsteam的名字/;} }

    4.2 權重

    修改conf.d目錄下的default.conf文件

    # 在server塊外面聲明upsteam fs-server是我自己取得名字 自定義名稱不要加下劃線_ # server 指定服務地址,端口 # weight=值越大權重約定,被訪問的幾率大些 upsteam fs-server {server ip:port weight=10;server ip:port weight=2;..... }server{listen 80;server_name localhost;#基于反向代理到我們上面upsteam指定的服務名字,默認使用輪詢location / {proxy_pass http://upsteam的名字/;} }

    4.3 ip_hash

    修改conf.d目錄下的default.conf文件

    # 在server塊外面聲明upsteam fs-server是我自己取得名字 自定義名稱不要加下劃線_ # server 指定服務地址,端口 # ip_hash 表示負載均衡使用ip_hash 當某個ip訪問nginx的時候,后續始終將請求發送到指定的服務器上. upsteam fs-server {ip_hash;server ip:port;server ip:port;..... }server{listen 80;server_name localhost;#基于反向代理到我們上面upsteam指定的服務名字,默認使用輪詢location / {proxy_pass http://upsteam的名字/;} }

    五 Nginx的動靜分離

    Nginx的并發能力公式:

    Nginx的配置文件中worker_processes和events塊的worker_connections相乘除以4或者2,最終的結果就是nginx的并發能力

    worker_processes*worker_connections/4|2=Nginx最終的并發能力

    動態資源需要/4,靜態資源/2

    Nginx通過動靜分離,來提升Nginx的并發能力,更快的給用戶響應

    5.1 動態資源代理

    # 配置如下 location / {proxy_pass ip; }

    5.2 靜態資源代理

    # 配置如下 location / {root 靜態資源路徑;index 默認訪問路徑下的資源;autoindex on: # 代表展示靜態資源全部的內容,以列表的形式展開. }

    測試案例,先修添加一個index.html和1.jpg靜態資源

    六 Nginx集群

    單點故障,導致整個程序的崩潰,提升高可用

    總結

    以上是生活随笔為你收集整理的Nginx的动态代理,负载均衡,动静分离的简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。