Nginx筆記

一滥朱、安裝Nginx


1煌张、準(zhǔn)備工作

(1)打開虛擬機(jī)呐赡,使用遠(yuǎn)程連接工具連接 linux 操作系統(tǒng)

(2)到 nginx 官網(wǎng)下載軟件

http://nginx.org/

2、開始進(jìn)行 nginx 安裝

(1)安裝 pcre 依賴

第一步 聯(lián)網(wǎng)下載 pcre 壓縮文件依賴

wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

第二步 解壓壓縮文件
使用命令 tar –xvf pcre-8.37.tar.gz

第三步./configure 完成后骏融,回到 pcre 目錄下執(zhí)行 make链嘀,最后執(zhí)行 make install
查看pcre依賴是否安裝成功:pcre-config --version
(2)安裝 openssl 、zlib 档玻、 gcc 依賴

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

(3)安裝 nginx

  • 使用命令解壓

  • ./configure

  • make && make install

進(jìn)入目錄 /usr/local/nginx/sbin/nginx 啟動(dòng)服務(wù)

安裝后怀泊,不能訪問的,需要對(duì)防火墻進(jìn)行設(shè)置

也可以直接關(guān)閉防火墻误趴,并防止自啟(在練習(xí)模式中)
① 查看開放的端口

firewall-cmd --list-all

② 設(shè)置開放的端口號(hào)

firewall-cmd --add-service=http –permanent

firewall-cmd --add-port=80/tcp --permanent

③ 設(shè)置之后需要重啟防火墻

firewall-cmd --reload

④ 訪問成功

二霹琼、Nginx常用命令


進(jìn)入 nginx 目錄中: cd /usr/local/nginx/sbin

1、查看 nginx 版本號(hào)
./nginx -v

2、啟動(dòng) nginx
./nginx
查看是否啟動(dòng)成功:ps -ef|grep nginx

3枣申、停止 nginx
./nginx -s stop

4售葡、重新加載 nginx
./nginx -s reload

三、nginx.conf配置文件


1忠藤、位置

vim /usr/local/nginx/conf/nginx.conf

2挟伙、配置文件中的內(nèi)容(包含三部分)

(1)全局塊:配置服務(wù)器整體運(yùn)行的配置指令
從配置文件開始到 events 塊之間的內(nèi)容,主要會(huì)設(shè)置一些影響 nginx 服務(wù)器整體運(yùn)行的配置指令模孩,主要包括配置運(yùn)行 Nginx 服務(wù)器的用戶(組)尖阔、允許生成的 worker process 數(shù),進(jìn)程 PID 存放路徑榨咐、日志存放路徑和類型以及配置文件的引入等介却。

(2)events 塊:影響 Nginx 服務(wù)器與用戶的網(wǎng)絡(luò)連接.

events 塊涉及的指令主要影響 Nginx 服務(wù)器與用戶的網(wǎng)絡(luò)連接,常用的設(shè)置包括是否開啟對(duì)多 work process下的網(wǎng)絡(luò)連接進(jìn)行序列化块茁,是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接齿坷,選取哪種事件驅(qū)動(dòng)模型來處理連接請(qǐng)求,每個(gè) word process 可以同時(shí)支持的最大連接數(shù)等数焊。

這部分的配置對(duì) Nginx 的性能影響較大胃夏,在實(shí)際中應(yīng)該靈活配置。

(3)http 塊
這算是 Nginx 服務(wù)器配置中最頻繁的部分昌跌,代理、緩存和日志定義等絕大多數(shù)功能和第三方模塊的配置都在這里照雁。

需要注意的是:http 塊也可以包括 http 全局塊蚕愤、server 塊。
①饺蚊、http 全局塊
http 全局塊配置的指令包括文件引入萍诱、MIME-TYPE 定義、日志自定義污呼、連接超時(shí)時(shí)間裕坊、單鏈接請(qǐng)求數(shù)上限等。

②燕酷、server 塊
這塊和虛擬主機(jī)有密切關(guān)系籍凝,虛擬主機(jī)從用戶角度看,和一臺(tái)獨(dú)立的硬件主機(jī)是完全一樣的苗缩,該技術(shù)的產(chǎn)生是為了節(jié)省互聯(lián)網(wǎng)服務(wù)器硬件成本饵蒂。

每個(gè) http 塊可以包括多個(gè) server 塊,而每個(gè) server 塊就相當(dāng)于一個(gè)虛擬主機(jī)酱讶。

而每個(gè) server 塊也分為全局 server 塊退盯,以及可以同時(shí)包含多個(gè) locaton 塊。

  • 全局 server 塊
    最常見的配置是本虛擬機(jī)主機(jī)的監(jiān)聽配置和本虛擬主機(jī)的名稱或 IP 配置。

  • location 塊
    一個(gè) server 塊可以配置多個(gè) location 塊渊迁。
    這塊的主要作用是基于 Nginx 服務(wù)器接收到的請(qǐng)求字符串(例如 server_name/uri-string)慰照,對(duì)虛擬主機(jī)名稱(也可以是 IP 別名)之外的字符串(例如 前面的 /uri-string)進(jìn)行匹配,對(duì)特定的請(qǐng)求進(jìn)行處理琉朽。地址定向毒租、數(shù)據(jù)緩存和應(yīng)答控制等功能,還有許多第三方模塊的配置也在這里進(jìn)行漓骚。

四蝌衔、Nginx 反向代理實(shí)例


1、實(shí)現(xiàn)效果

打開瀏覽器蝌蹂,在瀏覽器地址欄輸入地址 www.123.com噩斟,跳轉(zhuǎn)到 liunx 系統(tǒng) tomcat 主頁面中

2、準(zhǔn)備工作

(1)在 liunx 系統(tǒng)安裝 tomcat孤个,使用默認(rèn)端口 8080

  • tomcat 安裝文件放到 liunx 系統(tǒng)中剃允,解壓

  • 進(jìn)入 tomcat 的 bin 目錄中,./startup.sh 啟動(dòng) tomcat 服務(wù)器

(2)對(duì)外開放訪問的端口
firewall-cmd --add-port=8080/tcp --permanent

firewall-cmd –reload

查看已經(jīng)開放的端口號(hào)

firewall-cmd --list-all

(3)在 windows 系統(tǒng)中通過瀏覽器訪問 tomcat 服務(wù)器

3齐鲤、訪問過程的分析

image.png

4斥废、具體配置

  • 第一步 在 windows 系統(tǒng)的 host 文件進(jìn)行域名和 ip 對(duì)應(yīng)關(guān)系的配置
    添加內(nèi)容在 host 文件中

  • 第二步 在 nginx 進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)的配置(反向代理配置)


    image.png

五、Nginx 反向代理實(shí)例2


1给郊、實(shí)現(xiàn)效果

使用 nginx 反向代理牡肉,根據(jù)訪問的路徑跳轉(zhuǎn)到不同端口的服務(wù)中

nginx 監(jiān)聽端口為 9001,

訪問 http://192.168.17.129:9001/edu/ 直接跳轉(zhuǎn)到 127.0.0.1:8080

訪問 http:// 192.168.17.129:9001/vod/ 直接跳轉(zhuǎn)到 127.0.0.1:8081

2淆九、準(zhǔn)備工作

(1)準(zhǔn)備兩個(gè) tomcat 服務(wù)器统锤,一個(gè) 8080 端口,一個(gè) 8081 端口

(2)創(chuàng)建文件夾和測(cè)試頁面

3炭庙、具體配置

  • (1)找到 nginx 配置文件饲窿,進(jìn)行反向代理配置


    image.png
  • (2)開放對(duì)外訪問的端口號(hào) 9001 8080 8081

4、最終測(cè)試

image.png

六焕蹄、Nginx 配置實(shí)例-負(fù)載均衡


1逾雄、實(shí)現(xiàn)效果

(1)瀏覽器地址欄輸入地址 http://192.168.17.129/edu/a.html,負(fù)載均衡效果腻脏,平均 8080和 8081 端口中

2鸦泳、準(zhǔn)備工作

(1)準(zhǔn)備兩臺(tái) tomcat 服務(wù)器,一臺(tái) 8080永品,一臺(tái) 8081

(2)在兩臺(tái) tomcat 里面 webapps 目錄中辽故,創(chuàng)建名稱是 edu 文件夾,在 edu 文件夾中創(chuàng)建

頁面 a.html腐碱,用于測(cè)試

3誊垢、在 nginx 的配置文件中進(jìn)行負(fù)載均衡的配置

image.png

4掉弛、nginx 分配服務(wù)器策略

  • 第一種 輪詢(默認(rèn))
    每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器 down 掉喂走,能自動(dòng)剔除殃饿。

  • 第二種 weight
    weight 代表權(quán)重默認(rèn)為 1,權(quán)重越高被分配的客戶端越多


    image.png
  • 第三種 ip_hash
    每個(gè)請(qǐng)求按訪問 ip 的 hash 結(jié)果分配,這樣每個(gè)訪客固定訪問一個(gè)后端服務(wù)器


    image.png
  • 第四種 fair(第三方)
    按后端服務(wù)器的響應(yīng)時(shí)間來分配請(qǐng)求芋肠,響應(yīng)時(shí)間短的優(yōu)先分配乎芳。


    image.png

七、Nginx 配置實(shí)例-動(dòng)靜分離


1帖池、什么是動(dòng)靜分離

image.png

Nginx 動(dòng)靜分離簡(jiǎn)單來說就是把動(dòng)態(tài)跟靜態(tài)請(qǐng)求分開奈惑,不能理解成只是單純的把動(dòng)態(tài)頁面和靜態(tài)頁面物理分離。嚴(yán)格意義上說應(yīng)該是動(dòng)態(tài)請(qǐng)求跟靜態(tài)請(qǐng)求分開睡汹,可以理解成使用 Nginx處理靜態(tài)頁面肴甸,Tomcat 處理動(dòng)態(tài)頁面。動(dòng)靜分離從目前實(shí)現(xiàn)角度來講大致分為兩種囚巴,一種是純粹把靜態(tài)文件獨(dú)立成單獨(dú)的域名原在,放在獨(dú)立的服務(wù)器上,也是目前主流推崇的方案彤叉;另外一種方法就是動(dòng)態(tài)跟靜態(tài)文件混合在一起發(fā)布庶柿,通過 nginx 來分開。

通過 location 指定不同的后綴名實(shí)現(xiàn)不同的請(qǐng)求轉(zhuǎn)發(fā)秽浇。通過 expires 參數(shù)設(shè)置浮庐,可以使瀏覽器緩存過期時(shí)間,減少與服務(wù)器之前的請(qǐng)求和流量柬焕。具體 Expires 定義:是給一個(gè)資源設(shè)定一個(gè)過期時(shí)間,也就是說無需去服務(wù)端驗(yàn)證,直接通過瀏覽器自身確認(rèn)是否過期即可碰辅,所以不會(huì)產(chǎn)生額外的流量。此種方法非常適合不經(jīng)常變動(dòng)的資源没宾。(如果經(jīng)常更新的文件凌彬,不建議使用 Expires 來緩存),我這里設(shè)置 3d铲敛,表示在這 3 天之內(nèi)訪問這個(gè) URL会钝,發(fā)送一個(gè)請(qǐng)求伐蒋,比對(duì)服務(wù)器該文件最后更新時(shí)間沒有變化工三,則不會(huì)從服務(wù)器抓取,返回狀態(tài)碼 304先鱼,如果有修改,則直接從服務(wù)器重新下載掸读,返回狀態(tài)碼 200宏多。

2、準(zhǔn)備工作

在 liunx 系統(tǒng)中準(zhǔn)備靜態(tài)資源肾请,用于進(jìn)行訪問

3砌烁、具體配置

在 nginx 配置文件中進(jìn)行配置


image.png

4、最終測(cè)試

(1)瀏覽器中輸入地址

image.png

重點(diǎn)是添加 location避归,

最后檢查 Nginx 配置是否正確即可管呵,然后測(cè)試動(dòng)靜分離是否成功,只需要?jiǎng)h除后端 tomcat服務(wù)器上的某個(gè)靜態(tài)文件账锹,查看是否能訪問坷襟,如果可以訪問說明靜態(tài)資源 nginx 直接返回了,不走后端 tomcat 服務(wù)器

八廓奕、nginx原理


1档叔、mater 和 worker

image.png

2、worker 如何進(jìn)行工作的

image.png

3铃肯、一個(gè) master 和多個(gè) woker 有好處

(1)可以使用 nginx –s reload 熱部署传蹈,利用 nginx 進(jìn)行熱部署操作

(2)每個(gè) woker 是獨(dú)立的進(jìn)程,如果有其中的一個(gè) woker 出現(xiàn)問題宴胧,其他 woker 獨(dú)立的,

繼續(xù)進(jìn)行爭(zhēng)搶乞娄,實(shí)現(xiàn)請(qǐng)求過程显歧,不會(huì)造成服務(wù)中斷

4、設(shè)置多少個(gè) woker 合適

worker 數(shù)和服務(wù)器的 cpu 數(shù)相等是最為適宜的

5范删、連接數(shù) worker_connection

第一個(gè):發(fā)送請(qǐng)求拷肌,占用了 woker 的幾個(gè)連接數(shù)?

答案:2 或者 4 個(gè)

第二個(gè):nginx 有一個(gè) master添忘,有四個(gè) woker若锁,每個(gè) woker 支持最大的連接數(shù) 1024,支持的

最大并發(fā)數(shù)是多少仲器?

普通的靜態(tài)訪問最大并發(fā)數(shù)是: worker_connections * worker_processes /2仰冠,

而如果是 HTTP 作 為反向代理來說,最大并發(fā)數(shù)量應(yīng)該是 worker_connections *

worker_processes/4辆沦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末木张,一起剝皮案震驚了整個(gè)濱河市舷礼,隨后出現(xiàn)的幾起案子郊闯,更是在濱河造成了極大的恐慌蛛株,老刑警劉巖育拨,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熬丧,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡析蝴,警方通過查閱死者的電腦和手機(jī)闷畸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盾沫,“玉大人殿漠,你說我怎么就攤上這事∽婺铮” “怎么了啊奄?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)琼富。 經(jīng)常有香客問我庄新,道長(zhǎng),這世上最難降的妖魔是什么械蹋? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任哗戈,我火速辦了婚禮荷科,結(jié)果婚禮上纱注,老公的妹妹穿的比我還像新娘胆胰。我一直安慰自己,他們只是感情好瞎嬉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布勉盅。 她就那樣靜靜地躺著草娜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宰闰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天解藻,我揣著相機(jī)與錄音葡盗,去河邊找鬼觅够。 笑死,一個(gè)胖子當(dāng)著我的面吹牛喘先,可吹牛的內(nèi)容都是我干的窘拯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼暇番,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼思喊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起厨喂,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤庄呈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后斜纪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體文兑,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绿贞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涡上。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拒名。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖增显,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情糖权,我是刑警寧澤梢杭,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站募判,受9級(jí)特大地震影響咒唆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜装处,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望寝蹈。 院中可真熱鬧登淘,春花似錦、人聲如沸耍鬓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涣达。三九已至证薇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間林螃,已是汗流浹背俺泣。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留横漏,地道東北人熟掂。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓赴肚,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親誉券。 傳聞我的和親對(duì)象是個(gè)殘疾皇子涉茧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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

  • 第一部分 nginx基礎(chǔ)回顧 (一)nginx介紹 Nginx(engine x) 是一個(gè)高性能的HTTP[htt...
    有緣再見閱讀 291評(píng)論 0 0
  • Tomcat 系統(tǒng)架構(gòu)與原理剖析 注意:瀏覽器訪問服務(wù)器使?的是Http協(xié)議箕憾,Http是應(yīng)?層協(xié)議,?于定義數(shù)據(jù)通...
    acc8226閱讀 1,718評(píng)論 0 6
  • 指令上下文 nginx.conf中的配置信息蓖捶,根據(jù)其邏輯上的意義扁远,對(duì)它們進(jìn)行了分類刻像,也就是分成了多個(gè)作用域细睡,或者稱...
    三生紙書閱讀 294評(píng)論 0 0
  • 使用centos7 + jdk1.8 + nginx1.12.2 + tomcat7.0.108 常用命令 使用n...
    米斯燉個(gè)湯閱讀 150評(píng)論 0 0
  • 1.什么是Nginx Nginx是一個(gè)使用c語言開發(fā)的高性能的http服務(wù)器及反向代理服務(wù)器溜徙。Nginx是一款高性...
    慵懶的陽光丶閱讀 184評(píng)論 0 0