玩轉nginx

本文內(nèi)容包括:

  • nginx配置實例之反向代理肤晓;
  • nginx配置實例之動靜分離爷贫;
  • nginx配置實例之負載均衡;
  • nginx配置實例之高可用补憾;
  • nginx原理分析漫萄。

歡迎大家關注我的公眾號 javawebkf,目前正在慢慢地將簡書文章搬到公眾號盈匾,以后簡書和公眾號文章將同步更新腾务,且簡書上的付費文章在公眾號上將免費。


一削饵、nginx基本概念

1岩瘦、nginx是什么:
nginx是一個高性能的服務器,占用內(nèi)存少窿撬,并發(fā)能力強启昧。

2、反向代理:

  • 正向代理:眾所周知劈伴,我們不能直接訪問谷歌,因為有墻跛璧,要訪問我們就需要梯子漓柑,這個梯子就是正向代理。在我們?yōu)g覽器端需要配置正向代理服務器,然后讓代理服務器幫我們?nèi)ピL問谷歌割粮,谷歌把內(nèi)容返回給代理服務器,代理服務器再把內(nèi)容返回到我們?yōu)g覽器。

  • 反向代理:通常我們自己擼代碼都是發(fā)布到tomcat上皇型,然后直接在瀏覽器訪問tomcat幢痘,這個過程是沒有代理的喊积。反向代理就是不直接訪問tomcat拟蜻,而是在瀏覽器上訪問一個代理服務器绎签,代理服務器再決定將請求轉發(fā)給哪一個tomcat。對外而言酝锅,客戶端根本不知道自己訪問的是代理服務器诡必。

其實正向代理和反向代理就是代理的對象不同,正向是代理客戶端搔扁,反向是代理服務端爸舒。

3蟋字、負載均衡:
說負載均衡前先說說我們自己擼的代碼發(fā)布到tomcat然后通過瀏覽器訪問是怎么樣的一個過程。我們通過客戶端請求服務端碳抄,服務端跟數(shù)據(jù)庫交互愉老,將數(shù)據(jù)返回服務端,服務端最后響應客戶端剖效。這種方式適合系統(tǒng)業(yè)務復雜度較低嫉入,請求量不大的情況。如果并發(fā)請求特別多璧尸,服務器是頂不住的咒林,就會由于服務器性能瓶頸出現(xiàn)問題。解決辦法就是一只湯姆貓拉不動了就多叫幾只貓爷光。

負載均衡示意圖

4垫竞、動靜分離:
靜態(tài)資源是固定的不變的,比如js蛀序、css欢瞪、jpg等,動態(tài)資源就是要與數(shù)據(jù)庫交互的徐裸,比如servlet遣鼓、jsp之類的。未做動靜分離的時候重贺,不管是動態(tài)資源還是靜態(tài)資源骑祟,我們都放到同一只湯姆貓上,這樣它負擔也挺大的气笙;做了動靜分離次企,就是把動態(tài)資源放到湯姆貓上,靜態(tài)資源放到另外一臺服務器上潜圃,然后客戶端請求通過nginx缸棵,由nginx來決定是訪問動態(tài)服務器還是靜態(tài)服務器,這樣就降低了單臺服務器的壓力谭期。

二蛉谜、nginx安裝以及常用命令和配置文件

1、安裝nginx:

  • 首先進入官網(wǎng)下載nginx崇堵。https://nginx.org/

  • 安裝需要的編譯工具型诚,包括pcre-devel、openssl-devel鸳劳、gcczlib-devel狰贯。用 yum install make安裝即可。

  • 將nginx上傳到Linux中,解壓涵紊,然后進入到解壓縮目錄傍妒,執(zhí)行./configure,出現(xiàn)下圖才表示configure成功了摸柄。

    configure成功

  • 完事兒后再執(zhí)行 make&&make install颤练,如下圖所示則安裝成功了。安裝完后在/usr/local目錄中驱负,會有一個nginx目錄嗦玖,啟動腳本在nginx/sbin中。

    安裝成功

  • 進入到/usr/local/nginx/sbin目錄中跃脊,執(zhí)行./nginx宇挫,就啟動了nginx,瀏覽器訪問你Linux機器的ip酪术,出現(xiàn)下圖就表示啟動成功器瘪。如果訪問不了,注意防火墻是否開放了80端口绘雁。

    nginx啟動成功

2橡疼、nginx常用命令:
以下列舉的命令都是在/usr/local/nginx/sbin下執(zhí)行的。

  • ./nginx:啟動nginx
  • ./nginx -s stop:快速關閉nginx庐舟,可能不保存相關信息
  • ./nginx -s quit:平穩(wěn)關閉nginx欣除,保存相關信息
  • ./nginx -s reload:重新加載配置文件
  • ./nginx -s reopen:重新打開日志文件
  • ./nginx -c filename:為nginx指定一個配置文件
  • ./nginx -t:檢查配置文件的配置是否有語法錯誤
  • ./nginx -v:查看nginx的版本
  • ./nginx -V:查看版本以及配置參數(shù)等

3、nginx的配置文件:
配置文件的位置:/usr/local/nginx/conf下的nginx.conf继阻。配置文件分為三部分,全局塊废酷、events塊和http塊瘟檩。

配置文件

  • 從配置文件開始到events之間的叫全局塊,配置全局的一些指令澈蟆。worker_processes 1表示nginx處理的并發(fā)數(shù)量墨辛,值越大,能處理的并發(fā)量就越多趴俘。

  • events塊主要是影響nginx服務器與用戶的網(wǎng)絡連接睹簇。worker_connections 1024表示支持的最大連接數(shù)。

  • http塊是配置最頻繁的部分寥闪,又包括http全局塊和server塊太惠。http全局塊可配置的指令包括文件引入、mime-type定義疲憋、日志自定義凿渊、連接超時時間和單鏈接請求數(shù)上限等;server塊是最主要的配置部分,配置一些和主機相關的東西埃脏。

三搪锣、nginx實現(xiàn)反向代理

1、最終效果:
在瀏覽器上輸入www.xixihaha.com彩掐,跳轉到tomcat的主頁面(所以要先安裝一個tomcat并啟動构舟;或者也可以搞個springboot項目丟上去啟動)。因為用到了域名堵幽,所以要在windows的host文件中配置域名與虛擬機ip的映射(域名的工作原理就是先看host文件中有沒有映射狗超,沒有就通過DNS服務器去解析域名)。

2谐檀、進行配置:
首先將server_name改成虛擬機的IP抡谐,然后在location那里設置代理的域名和端口,這樣就搞定了桐猬。

配置反向代理

3麦撵、代理多個端口:
上面是將www.xixihaha.com的請求轉發(fā)到8080端口了,現(xiàn)在像將www.xixihaha.com/xi的請求轉發(fā)到8081端口溃肪,www.xixihaha.com/ha的請求轉發(fā)到8082端口免胃。

  • 首先在8081端口tomcat的webapp目錄下新建一閣文件夾名字為"xi",文件夾里面放一個xi.html惫撰;然后在8082端口omcat的webapp目錄下新建一個ha文件夾羔沙,在文件夾里面放一個ha.html。分別啟動這兩個tomcat厨钻。

  • 然后在server塊里面進行如下的配置:

server {
        listen       80;
        server_name  www.xixihaha.com;
        location ~ /xi/ {
            proxy_pass http://127.0.0.1:8081;
        }
        location ~ /ha/ {
            proxy_pass http://127.0.0.1:8082;
        }
    }

注意一個配置文件里可以寫多個server扼雏,這個server和剛才配置的轉發(fā)到tomcat歡迎頁的可以同時存在。這個server配置location的時候用的類似于正則表達式夯膀,~ /xi/就表示路徑中有xi的就轉發(fā)到8081端口诗充。

~   包含該字符串就匹配,區(qū)分大小寫
~*  包含該字符串就匹配诱建,不區(qū)分大小寫
=   完全相同才匹配
^~  匹配不包含正則的且匹配度最高的location
  • 最終效果圖:


    反向代理

四蝴蜓、nginx實現(xiàn)負載均衡

1、準備工作:
上面說了負載均衡就是將多個請求分配給不同的服務器俺猿,減輕單一服務器的壓力【ソ常現(xiàn)在我們先在8081和8082的tomcat的webapp目錄下新建一個文件夾test,里面都放一個index.html(實際上這兩個index.html是完全一樣的押袍,就是代表我們需要做負載均衡的項目诵冒,這里為了等下可以更好的看到效果,這兩個html可以做一些標記谊惭,比如8081的就標記一下8081)造烁。

還有 50% 的精彩內(nèi)容
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
禁止轉載否过,如需轉載請通過簡信或評論聯(lián)系作者。
支付 ¥2.00 繼續(xù)閱讀
  • 序言:七十年代末惭蟋,一起剝皮案震驚了整個濱河市苗桂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌告组,老刑警劉巖煤伟,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異木缝,居然都是意外死亡便锨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門我碟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來放案,“玉大人,你說我怎么就攤上這事矫俺≈ㄑ常” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵厘托,是天一觀的道長友雳。 經(jīng)常有香客問我,道長铅匹,這世上最難降的妖魔是什么押赊? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮包斑,結果婚禮上流礁,老公的妹妹穿的比我還像新娘。我一直安慰自己罗丰,他們只是感情好神帅,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丸卷,像睡著了一般枕稀。 火紅的嫁衣襯著肌膚如雪询刹。 梳的紋絲不亂的頭發(fā)上谜嫉,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音凹联,去河邊找鬼沐兰。 笑死,一個胖子當著我的面吹牛蔽挠,可吹牛的內(nèi)容都是我干的住闯。 我是一名探鬼主播瓜浸,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼比原!你這毒婦竟也來了插佛?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤量窘,失蹤者是張志新(化名)和其女友劉穎雇寇,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚌铜,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡锨侯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了冬殃。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片囚痴。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖审葬,靈堂內(nèi)的尸體忽然破棺而出深滚,到底是詐尸還是另有隱情,我是刑警寧澤耳璧,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布成箫,位于F島的核電站,受9級特大地震影響旨枯,放射性物質發(fā)生泄漏蹬昌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一攀隔、第九天 我趴在偏房一處隱蔽的房頂上張望皂贩。 院中可真熱鬧,春花似錦昆汹、人聲如沸明刷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辈末。三九已至,卻和暖如春映皆,著一層夾襖步出監(jiān)牢的瞬間挤聘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工捅彻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留组去,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓步淹,卻偏偏與公主長得像从隆,于是被迫代替她去往敵國和親诚撵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

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