色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Nginx配置文件nginx.conf的基本配置實例詳解

瀏覽:156日期:2023-03-13 15:37:33
目錄
  • 前言
  • 1. Nginx配置樣例
  • 2. Nginx負(fù)載均衡方式
    • 2.1 輪詢
    • 2.2 權(quán)重
    • 2.3 Nginx解決集群共享session問題的方案
  • 3. Nginx動靜分離(靜態(tài)資源和動態(tài)資源來自于不同的服務(wù)器)
    • 總結(jié)

      前言

      對于Nginx首先要了解的是Nginx的作用和它的代理方式,Nginx的作用為負(fù)載均衡、代理方式為反向代理。

      負(fù)載均衡平衡web服務(wù)器集群中轉(zhuǎn)發(fā)給各服務(wù)器的請求數(shù),防止出現(xiàn)服務(wù)器因為處理請求壓力大或小導(dǎo)致內(nèi)存溢出、宕機或資源浪費的情況發(fā)生。

      反向代理對外暴露的地址是代理服務(wù)器的地址隱藏了真實服務(wù)器的地址,客戶端將請求發(fā)送到代理服務(wù)器上。由代理服務(wù)器根據(jù)配置規(guī)則選擇真實服務(wù)器處理請求,在獲得服務(wù)器返回數(shù)據(jù)后再返回給客戶端。此時代理服務(wù)器在外看來就是提供服務(wù)的服務(wù)器,客戶端對代理是無感知的并不知道具體是哪臺服務(wù)器處理的它的請求且不需要做任何配置。

      正向代理:例如當(dāng)因工需要,需要訪問瀏覽器正常訪問不到的服務(wù)器時,此時要找到一個可以訪問該服務(wù)器的代理服務(wù)器。客戶端將請求發(fā)送給代理服務(wù)器,代理服務(wù)器去訪問該服務(wù)器,然后將訪問到的數(shù)據(jù)返回給我們,這樣的代理模式稱為正向代理。正向代理時真實客戶端的信息被屏蔽或者隱藏了,服務(wù)器只清楚請求來自哪臺代理服務(wù)器而不清楚來自哪個客戶端,但客戶端非常明確要訪問的服務(wù)器地址。

      即:正向代理代理的是客戶端的請求,反向代理代理的是服務(wù)器。

      1. Nginx配置樣例

      例如頁面請求地址為http://www.sayhi.com/products/pageManage,則在nginx.conf中配置server如下:

      server {
             listen 80;  #監(jiān)聽80的服務(wù)端口
             server_name www.sayhi.com;  #監(jiān)聽的域名
      location /{
      root emstatic;
      index index.html;
      }
      
      location /products {
      proxy_pass http://127.0.0.1:8103/zuul-product/product/manage;
      add_header "Access-Control-Allow-Credentials" "true";
      add_header "Access-Control-Allow-Origin" "*";
      }
      }

      根據(jù)域名www.sayhi.com和后綴/products匹配到server中的server_name和location后,將剩余url后綴/pageManage拼接到location中的配置項proxy_pass的url后通過網(wǎng)關(guān)訪問服務(wù)器資源。

      所以訪問http://www.sayhi.com/products/pageManage時經(jīng)過nginx配置后實際訪問的地址為http://127.0.0.1:8103/zuul-product/product/manage/pageManage。

      2. Nginx負(fù)載均衡方式

      2.1 輪詢

      依次按照順序訪問后端的每一個服務(wù)器,按照這個計算,相當(dāng)于平均分配請求給所有集群節(jié)點-物理均衡。首先準(zhǔn)備一個upstream的虛擬域名,保管后端服務(wù)器的詳細(xì)信息。

      ? ? ? ?upstream ouservers{
      ? ? ? ?? ? ? ?server 127.0.0.1:8091;
      ? ? ? ?? ? ? ?server 128.0.0.2:8092;
      ? ? ? ?? ? ? ?server 129.0.0.3:8093;
      ? ? ? ?}

      nginx啟動時加載成為一個內(nèi)存的list對象元素有3個分別是8091 8092 8093,負(fù)載均衡的計算都是通過這個list完成的,在server中使用proxy_pass指向這個新創(chuàng)建的upstream名稱ouservers。

      添加server案例

      ? ? ? ?server{
      ? ? ? ?? ? ? ?listen 80;
      ? ? ? ?? ? ? ?server_name www.ou.com;
      ? ? ? ?? ? ? ?location / {
      ? ? ? ?? ? ? ?? ? ? ?proxy_pass http://ouservers/;
      ? ? ? ?? ? ? ?}
      ? ? ? ?}

      在訪問有多個用戶訪問www.ou.com時會把請求輪詢轉(zhuǎn)給127.0.0.1:8091、128.0.0.2:8093和129.0.0.3:8093服務(wù)器去處理。

      2.2 權(quán)重

      總是按照物理均衡分配并發(fā)有時候不滿足實際情況,按照情況通過占用比例的分配均衡邏輯就是權(quán)重(權(quán)衡比重)。權(quán)重基于輪詢完成,可以在upstream的輪詢基礎(chǔ)上添加權(quán)重的關(guān)鍵字weight,權(quán)重值越高轉(zhuǎn)發(fā)的請求越多(參數(shù)為整數(shù)等于down表示該server不可訪問)。

      ? ? ? ?upstream ouservers {
      ? ? ? ?? ? ? ?#補充后端服務(wù)器的ip:port-based
      ? ? ? ?? ? ? ?server 127.0.0.1:8091 weight=10;
      ? ? ? ?? ? ? ?server 128.0.0.2:8092 weight=5;
      ? ? ? ?? ? ? ?server 129.0.0.3:8093 weight=1;
      ? ? ? ?}

      2.3 Nginx解決集群共享session問題的方案

      在單節(jié)點進程中可以使用session屬性存儲一些數(shù)據(jù)。在一次會話中使用這些屬性如果是集群中會產(chǎn)生問題,不能實現(xiàn)集群共享session數(shù)據(jù)。由于session是屬于服務(wù)器端的技術(shù),不同進程中生成的session對象無法共同使用,所以無法使用session會話技術(shù)實現(xiàn)攜帶狀態(tài)的請求功能。

      數(shù)據(jù)通信共享:會話的session會被全部節(jié)點所存儲,并發(fā)高時會導(dǎo)致集群中每一個節(jié)點中都有量的session對象容易造成服務(wù)器內(nèi)存溢出。

      ip_hash黏著:根據(jù)ip做hash取余計算綁定服務(wù)器但有可能導(dǎo)致傾斜,會有服務(wù)器由于傾斜嚴(yán)重,提前宕機。

      采用第三方容器:session數(shù)據(jù)不再存儲到服務(wù)器本地,采用第三方存儲使每個服務(wù)器連接這個第三方存儲讀寫數(shù)據(jù)。但引入第三方勢必導(dǎo)致多占用網(wǎng)絡(luò)訪問帶寬資源,對容器技術(shù)的穩(wěn)定性,速度要求比較高。理論上存儲容器可以是關(guān)系型數(shù)據(jù)庫(例mysql)。但是非關(guān)系型數(shù)據(jù)庫(例redis)是更好的選擇。

      nignx配置ip_hash黏著只需要在upstream的括號中填寫一個關(guān)鍵屬性 "ip_hash"。

      ? ? ? ?upstream ouservers {
      ? ? ? ?? ? ? ?ip_hash;
      ? ? ? ?? ? ? ?server 127.0.0.1:8091;
      ? ? ? ?? ? ? ?server 127.0.0.1:8092;
      ? ? ? ?? ? ? ?server 127.0.0.1:8093;
      ? ? ? ?}

      3. Nginx動靜分離(靜態(tài)資源和動態(tài)資源來自于不同的服務(wù)器)

      后端服務(wù)器集群是動態(tài)數(shù)據(jù)的來源,nginx作為http服務(wù)器代理用來管理后端所需文件和靜態(tài)資源,在nginx服務(wù)器中,準(zhǔn)備好訪問的靜態(tài)資源可以通過域名url地址訪問。

      添加server案例(以Linux系統(tǒng)為例)

      ? ? ? ?server{
      ? ? ? ?? ? ? ?listen 80;
      ? ? ? ?? ? ? ?server_name www.image.com;
      ? ? ? ?? ? ? ?location /{
      ? ? ? ?? ? ? ?? ? ? ?root?/home/static; #關(guān)鍵字root配置項為靜態(tài)資源的根目錄
      ? ? ? ? ? ? ? ? ? ? ?index default.html #沒有找到指定靜態(tài)資源時默認(rèn)訪問的靜態(tài)資源
      ? ? ? ?? ? ? ?}
      ? ? ? ? }

      具體流轉(zhuǎn)過程如下:請求地址http://www.image.com/xyy.png匹配server中的location后將靜態(tài)資源名稱tp.png銜接在root配置項后,拼接成資源在Nginx服務(wù)器上的絕對地址/home/static/tp.png根據(jù)地址拿到靜態(tài)資源返回到瀏覽器頁面給用戶展示。

      root配置項:可以是文件夾絕對路徑,如Linux (root /home/static)、Windows(root C:/static)。也可以是文件夾相對路徑root static(表示在nginx安裝的根目錄有一個文件夾叫做static)。

      index配置項:表示當(dāng)訪問請求匹配到location中的root后,在沒有找到指定靜態(tài)資源時默認(rèn)訪問的靜態(tài)資源地址。index也可以配置多個靜態(tài)資源,例如:index default1.html default2.html。如果靜態(tài)資源/home/static/default1.html不存在則接著驗證/home/static/default2.html是否存在,存在則用/default2.html在該server中發(fā)起內(nèi)部重定向去重新匹配location)

      注:在配置nginx.conf文件時需要將資源ip和監(jiān)聽域名寫進Nginx服務(wù)器的本地hosts文件中(如127.0.0.1 www.sayhi.com)

      總結(jié)

      到此這篇關(guān)于Nginx配置文件nginx.conf基本配置的文章就介紹到這了,更多相關(guān)Nginx配置文件nginx.conf內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

      標(biāo)簽: Nginx
      主站蜘蛛池模板: 欧美成人午夜在线全部免费 | 国产的一级毛片完整 | 国产精品亚洲欧美一级久久精品 | 欧美成人看片一区二区三区 | 国产成人久久 | 久草中文视频 | 亚洲国产成人综合精品2020 | 日韩中文字幕精品 | 免费人成年短视频在线观看免费网站 | 成人久久影院 | 九九线精品视频 | 欧日韩视频 | av亚洲男人天堂 | 国产精品久久久久久久久久久搜索 | 久草网在线观看 | 污全彩肉肉无遮挡彩色 | 911精品国产91久久久久 | 国产成人久久综合热 | 欧美做爰孕妇群 | 久久久青草 | 成人 在线播放 | 手机看片亚洲 | 国产精成人品 | 草草影院欧美三级日本 | 久久精品免费全国观看国产 | 九九在线精品视频播放 | 三级毛片免费观看 | 国产免费一级在线观看 | 国产高清一国产免费软件 | 国产亚洲欧美久久精品 | 性感美女一级片 | 中国精品自拍 | 欧美在线一区视频 | 狠狠色综合网站久久久久久久 | 免费看欧美毛片大片免费看 | 不卡一区在线观看 | 亚洲一级毛片免费观看 | 三级黄毛片 | 日韩一区国产二区欧美三 | 久久精品中文字幕首页 | 国产亚洲视频在线播放大全 |