Nginx

Nginx的作用有哪些

  1. 部署前端靜態(tài)代碼奠蹬,實(shí)現(xiàn)前后端分離
  2. 高并發(fā)下負(fù)載均衡朝聋,服務(wù)的容災(zāi)
  3. 代理服務(wù)器(WEB API 網(wǎng)關(guān))


    代理服務(wù)器

什么是虛擬主機(jī)?

虛擬主機(jī)是一種特殊的軟硬件技術(shù)囤躁,它可以將網(wǎng)絡(luò)上的每一臺(tái)計(jì)算機(jī)分成多個(gè)虛擬主機(jī)冀痕,每個(gè)虛擬主機(jī)可以獨(dú)立對(duì)外提供 www 服務(wù)荔睹,這樣就可以實(shí)現(xiàn)一臺(tái)主機(jī)對(duì)外提供多個(gè) web 服務(wù),每個(gè)虛擬主機(jī)之間是獨(dú)立的言蛇,互不影響的僻他。

通過(guò) Nginx 可以實(shí)現(xiàn)虛擬主機(jī)的配置,Nginx 支持三種類(lèi)型的虛擬主機(jī)配置

  • 基于 IP 的虛擬主機(jī)
  • 基于域名的虛擬主機(jī)
  • 基于端口的虛擬主機(jī)

跨域現(xiàn)象(CORS)

Nginx安裝

準(zhǔn)備文件目錄結(jié)構(gòu):

Nginx

我們使用 Docker 來(lái)安裝和運(yùn)行 Nginx腊尚,docker-compose.yml?配置如下:

version: '3.1'
services:
  nginx:
    restart: always
    image: nginx
    container_name: nginx
    ports:
      - 81:80
    volumes:
      - ./conf/nginx.conf:/etc/nginx/nginx.conf
      - ./wwwroot:/usr/share/nginx/wwwroot

Nginx配置文件nginx.conf

# 啟動(dòng)進(jìn)程,通常設(shè)置成和 CPU 的數(shù)量相等
worker_processes  1;

events {
    # epoll 是多路復(fù)用 IO(I/O Multiplexing) 中的一種方式
    # 但是僅用于 linux2.6 以上內(nèi)核,可以大大提高 nginx 的性能
    use epoll;
    # 單個(gè)后臺(tái) worker process 進(jìn)程的最大并發(fā)鏈接數(shù)
    worker_connections  1024;
}

http {
    # 設(shè)定 mime 類(lèi)型,類(lèi)型由 mime.type 文件定義
    include       mime.types;
    default_type  application/octet-stream;

    # sendfile 指令指定 nginx 是否調(diào)用 sendfile 函數(shù)(zero copy 方式)來(lái)輸出文件吨拗,對(duì)于普通應(yīng)用,
    # 必須設(shè)為 on婿斥,如果用來(lái)進(jìn)行下載等應(yīng)用磁盤(pán) IO 重負(fù)載應(yīng)用劝篷,可設(shè)置為 off,以平衡磁盤(pán)與網(wǎng)絡(luò) I/O 處理速度民宿,降低系統(tǒng)的 uptime.
    sendfile        on;

    # 連接超時(shí)時(shí)間
    keepalive_timeout  65;
    # 設(shè)定請(qǐng)求緩沖
    client_header_buffer_size 2k;
    
    #負(fù)載均衡組
    #動(dòng)態(tài)服務(wù)器組
    upstream tomcat {
        server 10.3.133.160:8080;
        #server 192.168.8.203:8080;
    }   

    # 配置虛擬主機(jī) 10.3.133.160
    server {
        # 監(jiān)聽(tīng)的ip和端口携龟,配置 10.3.133.160:80
        listen       80;
        # 虛擬主機(jī)名稱(chēng)這里配置ip地址
        server_name www.suoron.com;
        # 所有的請(qǐng)求都以 / 開(kāi)始,所有的請(qǐng)求都可以匹配此 location
        location / {
          # 使用 root 指令指定虛擬主機(jī)目錄即網(wǎng)頁(yè)存放目錄
          # 比如訪問(wèn) http://ip/index.html 將找到 /usr/local/docker/nginx/wwwroot/html80/index.html
          # 比如訪問(wèn) http://ip/item/index.html 將找到 /usr/local/docker/nginx/wwwroot/html80/item/index.html

          root   /usr/share/nginx/wwwroot/;
          # 指定歡迎頁(yè)面勘高,按從左到右順序查找
            index  index.html index.htm;
       }      
       location /api/ {
          proxy_pass http://tomcat/;
       }
    }
}

Nginx部署前端

將前端文件發(fā)布到 wwwroot

Nginx 配置文件的結(jié)構(gòu)

# ...
events {
    # ...
}

http {
    # ...
    server{
        # ...
    }

    # ...
    server{
        # ...
    }
}

注:每個(gè) server 就是一個(gè)虛擬主機(jī)

負(fù)載均衡相關(guān)配置說(shuō)明

Nginx目前支持五種策略,分別是:默認(rèn)是輪詢坟桅、權(quán)重(weight)华望、ip_hash、fair(第三方)仅乓、url_hash(第三方)


負(fù)載均衡
#### 定義負(fù)載均衡設(shè)備的 Ip及設(shè)備狀態(tài) 
upstream myServer {
    server 127.0.0.1:9090 down;
    server 127.0.0.1:8080 weight=2;
    server 127.0.0.1:6060;
    server 127.0.0.1:7070 backup;
}

在需要使用負(fù)載的 Server 節(jié)點(diǎn)下添加

proxy_pass http://myServer;
  • upstream:每個(gè)設(shè)備的狀態(tài):
  • down:表示當(dāng)前的?server?暫時(shí)不參與負(fù)載
  • weight:默認(rèn)為 1?weight?越大赖舟,負(fù)載的權(quán)重就越大。
  • max_fails:允許請(qǐng)求失敗的次數(shù)默認(rèn)為 1 當(dāng)超過(guò)最大次數(shù)時(shí)夸楣,返回?proxy_next_upstream?模塊定義的錯(cuò)誤
  • fail_timeout:max_fails?次失敗后宾抓,暫停的時(shí)間。
  • backup:其它所有的非?backup?機(jī)器?down?或者忙的時(shí)候豫喧,請(qǐng)求?backup?機(jī)器石洗。所以這臺(tái)機(jī)器壓力會(huì)最輕
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市紧显,隨后出現(xiàn)的幾起案子讲衫,更是在濱河造成了極大的恐慌,老刑警劉巖孵班,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涉兽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡篙程,警方通過(guò)查閱死者的電腦和手機(jī)枷畏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)虱饿,“玉大人拥诡,你說(shuō)我怎么就攤上這事触趴。” “怎么了袋倔?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵雕蔽,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我宾娜,道長(zhǎng)批狐,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任前塔,我火速辦了婚禮嚣艇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘华弓。我一直安慰自己食零,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布寂屏。 她就那樣靜靜地躺著贰谣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迁霎。 梳的紋絲不亂的頭發(fā)上吱抚,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音考廉,去河邊找鬼秘豹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛昌粤,可吹牛的內(nèi)容都是我干的既绕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼涮坐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼凄贩!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起膊升,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤怎炊,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后廓译,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體评肆,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年非区,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瓜挽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡征绸,死狀恐怖久橙,靈堂內(nèi)的尸體忽然破棺而出俄占,到底是詐尸還是另有隱情,我是刑警寧澤淆衷,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布缸榄,位于F島的核電站,受9級(jí)特大地震影響祝拯,放射性物質(zhì)發(fā)生泄漏甚带。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一佳头、第九天 我趴在偏房一處隱蔽的房頂上張望鹰贵。 院中可真熱鬧,春花似錦康嘉、人聲如沸碉输。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)敷钾。三九已至,卻和暖如春肄梨,著一層夾襖步出監(jiān)牢的瞬間闰非,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工峭范, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瘪贱。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓纱控,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親菜秦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子甜害,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容