亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

docker nginx 配置文件要點及注意事項

 更新時間:2025年02月13日 09:27:24   作者:忘憂人生  
本文介紹了Nginx的配置要點及注意事項,包括訪問靜態(tài)資源、負載均衡等,在訪問靜態(tài)資源時,可以使用root或alias指令指定路徑,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧

        在平常的開發(fā)工作中,我們經(jīng)常需要訪問靜態(tài)資源(圖片、HTML頁面等)、訪問文件目錄、部署項目時進行負載均衡等。那么我們就會使用到Nginx,nginx.conf 的配置至關重要。那么今天主要結合訪問靜態(tài)資源、負載均衡等總結下 nginx.conf 的配置要點及注意事項。

1:概述

        Nginx 是高性能、輕量級的 web 服務器和反向代理服務器。Nginx 可以作為靜態(tài)內容服務,如訪問HTML頁面、圖片等。Nginx 可以作為作為反向代理服務器,隱藏服務器真實IP,用戶只知道 Nginx 的地址,這樣可以提高服務安全性。Nginx 可以將動態(tài)內容請求轉發(fā)給后端應用服務器。Nginx 可以將客戶端請求分發(fā)給后端服務器,通過配置實現(xiàn)負載均衡,提高系統(tǒng)的可用性。

2:訪問靜態(tài)資源      

1:靜態(tài)資源在同一個目錄

       (1):掛載目錄配置

 # 頁面目錄 前面的為宿主機目錄 后面的為容器目錄,如果容器中的目錄不存在,則會自動創(chuàng)建
 - /docker/nginx/html:/usr/share/nginx/html

       (2):nginx.conf 配置文件

       路徑 root 配置:適合 location 路徑與文件路徑一致的情況,路徑是拼接的。如 location 為 /wx/,root 配置為 /usr/share/html,則訪問的完整目錄 為 /usr/share/html/wx/,會把 location 路徑拼接在 root 路徑后面。

user  nginx;
worker_processes  auto;
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
   server {
        listen 80;
        server_name localhost;
	    charset utf-8;
        location / {
           root /usr/share/nginx/html; #路徑為容器內的路徑,通過掛載目錄,實際訪問到宿主機目錄
        }
    }
}

        路徑 alias 配置:適合 location 路徑與文件路徑不一致的情況,路徑是替換的。如 location 配置為 test,alias 配置的文件目錄為 /usr/share/html/wx/,則訪問的目錄即為 /usr/share/html/wx/,會把 location 的路徑替換為 alias 配置的路徑。所以建議 alias 后面的路徑配置的盡可能就是靜態(tài)資源所在的目錄,這樣訪問起來更加方便。

user  nginx;
worker_processes  auto;
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    server {
        listen 80;
        server_name localhost;
	    charset utf-8;
        location /test/ {
           alias /usr/share/nginx/wx/;
        }
    }
}

        (3) 訪問測試:http:ip:端口/文件路徑/test.jpg     

2:靜態(tài)資源在多個目錄

        (1):掛載目錄配置,需要配置多個掛載目錄

# 頁面目錄
- /docker/nginx/html/images:/usr/share/nginx/html
- /docker/nginx/html/photo:/usr/share/nginx/wx

       (2):nginx.conf 配置文件:

user  nginx;
worker_processes  auto;
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
   server {
        listen 9016;
        server_name localhost;
	    charset utf-8;
        # 路徑 root 方式配置
        # 通過 /html/ 訪問,即文件路徑為 /usr/share/nginx/html/ 目錄
        location /html/ {
           root /usr/share/nginx;
        }
        # 通過 /wx/訪問,即文件夾路徑為 /usr/share/nginx/wx/ 目錄
        location /wx/ {
           root /usr/share/nginx;
        }
        # 路徑 alias 方式配置
        # 通過 /html/ 訪問,即文件路徑為 /usr/share/nginx/html/ 目錄
        location /html/ {
           alias /usr/share/nginx/html/;   # 配置后面帶 /
        }
        # 通過 /wx/訪問,即文件夾路徑為 /usr/share/nginx/wx/ 目錄
        location /wx/ {
           alias /usr/share/nginx/wx/;     # 配置后面帶 /
        }
    }
}

       (3):訪問圖片

        ????

       (4) 總結:root 和 alias 都用于指定路徑,在 docker 容器中,指向的都是容器中的路徑,即需要配置掛載目錄,將宿主機的目錄掛載到容器指定的目錄。root 中路徑配置,特別注意最后面沒有 / ,根據(jù)路徑訪問時會將 location 的路徑拼接到 root 指定的路徑后面,root 配置路徑方式是進行路徑拼接。alias 配置路徑,特別注意后面有 / ,alias 路徑配置方式訪問時,匹配對應的 location,會將內容替換為 alias 中配置的完整路徑。簡而言之,root 是路徑拼接,alias 是路徑替換。

3:訪問共享目錄

        我們經(jīng)常需要將常用的軟件、文件等歸納整理放在服務器的某個文件夾下,為了使用更加的方便,這個時候,就需要訪問服務器上的某個目錄。

 (1) nginx.conf 配置

user  nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen 80;
        server_name localhost;
	    charset utf-8;
        location /test/ {
           alias /usr/share/nginx/wx/;
           autoindex on;                   # 開啟自動索引,如果不需要可以去掉
	       autoindex_exact_size off;       # 顯示文件大小
	       autoindex_localtime on;         # 顯示文件時間 
        }
    }
}

       上面配置中一定要注意,如果不添加 autoindex on,on 開啟自動索引,那么訪問文件夾時會報 403 forbidden。autoindex on 用于啟用目錄列表功能,當訪問沒有默認索引文件的目錄時,Nginx會自動生成包含該目錄及子目錄的 HTML 頁面并返回給客戶端。

(2):測試如下:

 4:負載均衡配置

 (1):如果服務是單節(jié)點,則不涉及負載均衡配置

user  nginx;
worker_processes  auto;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  60;
	server {
        listen 80;
        server_name localhost;
	    charset utf-8;
        location / {
           proxy_pass  http://localhost:8008;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

(2):服務多節(jié)點負載均衡配置

        負載均衡將請求分發(fā)到不同的后端服務節(jié)點,這樣可以減輕服務壓力,提高服務可用性。負載均衡可以更加合理的利用服務器的資源,有的服務器配置高,有的服務器剩余資源少,那么權重輪詢可以更加合理的使用服務器的資源。

        負載均衡部署方式可以是同一個機器多個節(jié)點,也可以是多機器多節(jié)點。單機器多節(jié)點的有點在于資源利用率高、不存在跨節(jié)點通信的問題。通常用于開發(fā)環(huán)境、小型應用、或者非關鍵服務。單機器多節(jié)點存在單點故障的問題,多節(jié)點共享資源,存在性能問題。多機器多節(jié)點性能高、方便拓展、不存在單點故障的問題,缺點是成本高、如果跨機通信,維護和配置復雜。多機器多節(jié)點適用于中大型應用,對性能要求高的服務。

user  nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    # 負載均衡,兩個節(jié)點的ip和端口,配置ip和端口即可,不需配置http頭信息
    # upstream 定義一組后端服務器
    # 默認負載均衡方式,將請求依次發(fā)送給后端服務節(jié)點
    upstream backend {
        server 11.22.xx.xx:8001;
        server 11.22.xx.xx:8002;
    }
    # 加權輪詢,權重越大的節(jié)點處理的請求越多
    upstream backend {
        server 11.22.xx.xx:8001 weight=8;
        server 11.22.xx.xx:8002 weight=2;
    }
    # ip 哈希輪詢 根據(jù)客戶端的 IP 地址進行哈希計算,確保同一個客戶端的請求總是分配給同一臺后端服務器。
    upstream backend {
        ip_hash;  # 啟用 IP 哈希
        server 11.22.xx.xx:8001;
        server 11.22.xx.xx:8002;
    }
   server {
        listen 80;
        server_name localhost;
        charset utf-8;
        location / {
           proxy_pass  http://backend; # 將請求轉發(fā)到 upstream 組,proxy_pass 將請求轉發(fā)給指定的目標服務器
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

          nginx 常用輪詢方式:

          默認輪詢:默認輪詢方式會將請求依次轉發(fā)給后端服務器

          加權輪詢:配置不同的權重,權重越大的服務器處理的請求越多。主要常用于不同服務器的配置、性能有差距,或者剩余服務器資源的合理利用。

          IP 哈希輪詢:根據(jù)客戶端的 IP 地址進行哈希計算,確保同一個客戶端的請求總是分配給同一臺后端服務器。根據(jù)客戶端 IP 分配請求,適合會話保持。

        以上為 Nginx 主要內容,在平常的開發(fā)工作中,可以進行靜態(tài)資源的訪問。如有小程序靜態(tài)資源、pc端靜態(tài)資源,則將不同的靜態(tài)資源放在不同的目錄下,配置不同的掛載目錄。root 類型配置的 location 路徑會拼接到 root 配置的路徑后面。alias 類型配置的 location 路徑主要是訪問使用,實際是將其替換為 alias 后面配置的路徑。所以 root 適用于訪問路徑和靜態(tài)資源路徑一致的場景,alias 適用于訪問路徑和靜態(tài)資源路徑不一致的場景。使用負載均衡配置配置,可以更加合理的使用服務器的資源,提高服務可用性。

到此這篇關于docker nginx 配置文件詳解的文章就介紹到這了,更多相關docker nginx 配置文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Docker自動部署Apache Tomcat的方法

    Docker自動部署Apache Tomcat的方法

    這篇文章主要介紹了Docker自動部署Apache Tomcat的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Docker的基本命令使用筆記

    Docker的基本命令使用筆記

    這篇文章主要介紹了Docker的基本命令使用筆記,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Springboot使用docker-compose實現(xiàn)動態(tài)配置過程

    Springboot使用docker-compose實現(xiàn)動態(tài)配置過程

    這篇文章主要介紹了Springboot使用docker-compose實現(xiàn)動態(tài)配置全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 解決docker容器設置DNS不生效的問題

    解決docker容器設置DNS不生效的問題

    文章主要介紹了如何在Docker中設置DNS,并通過兩種方式(`docker run`和`docker-compose.yml`)進行了詳細說明,雖然`docker run`方式可以成功設置DNS,但`docker-compose.yml`方式在某些情況下會導致DNS配置無效,因為容器的`/etc/resolv.conf`文件
    2025-01-01
  • docker pull鏡像失敗問題解決方法

    docker pull鏡像失敗問題解決方法

    在使用Docker拉取鏡像時可能會遇到超時失敗的問題,通常由網(wǎng)絡問題導致,本文介紹了兩種解決方法:更改鏡像加速地址和添加DNS配置,這些措施可以幫助改善與Docker Hub的連接,提高拉取鏡像的成功率,如果問題依舊,請參考更多相關資料或尋求專業(yè)幫助
    2024-09-09
  • Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解

    Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解

    這篇文章主要介紹了Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Docker動態(tài)添加端口不需要重新建立鏡像的方法

    Docker動態(tài)添加端口不需要重新建立鏡像的方法

    Docker容器在運行期間有時可能會需要修改或者添加暴露的端口,但是有時候運行的容器又不想再另外建立一個新的鏡像。接下來通過本文給大家分享Docker動態(tài)添加端口不需要重新建立鏡像的方法,感興趣的朋友一起看看吧
    2019-07-07
  • Docker 部署Scrapy的詳解

    Docker 部署Scrapy的詳解

    這篇文章主要介紹了Docker 部署Scrapy的詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • docker-compose鏡像發(fā)布springboot項目的流程分析

    docker-compose鏡像發(fā)布springboot項目的流程分析

    Docker-Compose項目由Python編寫,調用Docker服務提供的API來對容器進行管理。因此,只要所操作的平臺支持Docker API,就可以在其上利用Compose來進行編排管理,接下來通過本文給大家介紹docker-compose發(fā)布springboot項目的流程分析,一起看看吧
    2021-06-06
  • docker /var/lib/docker/aufs/mnt 目錄清理方法

    docker /var/lib/docker/aufs/mnt 目錄清理方法

    在本篇文章里小編給各位整理的是關于docker /var/lib/docker/aufs/mnt 目錄清理方法,有需要的朋友們可以參考下。
    2020-03-03

最新評論