摘要:相信大家都聽說過反向代理,一提到反向代理一定會想到。由于是一款自由的開源的高性能的服務器和反向代理服務器這是個開源的時代啊是一個跨平臺服務器,可以運行在等操作系統上。所以反向代理服務器是引用在服務端。
本文來自于我的慕課網手記:聊聊 Nginx 的反向代理,轉載請保留鏈接 ;)背景
最近在優化服務基礎設施這塊,正好有時間寫一下Nginx的體會。相信大家都聽說過反向代理,一提到反向代理一定會想到Nginx。什么你沒聽過Nginx?那么你一定聽說過Apache吧!Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。Apache的發展時期很長,而且是毫無爭議的世界第一大服務器。它有著很多優點:穩定、開源、跨平臺等等。它出現的時間太長了,它興起的年代,互聯網產業遠遠比不上現在。所以它被設計為一個重量級的。它不支持高并發的服務器。在Apache上運行數以萬計的并發訪問,會導致服務器消耗大量內存。操作系統對其進行進程或線程間的切換也消耗了大量的CPU資源,導致HTTP請求的平均響應速度降低。所以這些都決定了Apache不可能成為高性能WEB服務器,輕量級高并發服務器Nginx就應運而生了。
什么是Nginx俄羅斯的工程師Igor Sysoev,他在為Rambler Media工作期間,使用C語言開發了Nginx。Nginx作為WEB服務器一直為Rambler Media提供出色而又穩定的服務。然后呢,Igor Sysoev將Nginx代碼開源,并且賦予自由軟件許可證。
由于:
Nginx是一款自由的、開源的、高性能的HTTP服務器和反向代理服務器(這是個開源的時代啊~)
Nginx是一個跨平臺服務器,可以運行在Linux,Windows,FreeBSD,Solaris, AIX,Mac OS等操作系統上。
可以作為反向代理進行負載均衡的實現,帶來的極大的穩定性。
Nginx這樣做的目的主要是將數據的承載量分攤到多個服務器上進行執行,這只是在服務基礎設施上提高性能的優化手段之一。從下面圖就可以看出:
什么是反向代理?看了網上很多篇文章,下面這段話是我個人覺得介紹的最清楚的。
反向代理(Reverse Proxy)方式是指以代理服務器來接受Internet上的連接請求,然后將請求轉發給內部網絡上的服務器;并將從服務器上得到的結果返回給Internet上請求連接的客戶端,此時代理服務器對外就表現為一個服務器。
所以反向代理服務器是引用在服務端。決定哪臺服務器提供服務。
那么我就模擬了一個基本的反向代理和負載均衡配置實現,下面是我的操作步驟:
首先創建多個 tomcat 服務器,我這里創建了三個:
然后修改每個 tomcat 運行在不同的端口號上,每個 server.xml配置文件需要修改三處端口:
分別在 8080,8081,8082 端口配置 8006,8081,8010 端口,分別進行啟動測試,但是注意防火墻配置問題。測試結果如下:
接著配置 nginx 的配置文件,進行反向代理:
最后不斷訪問剛配置的 test.tomcats.com 域名,發現三臺 tomcat 成功運行的頁面都有出現,比例大致 1:1:1:
恭喜你,配置成功了!
配置負載均衡其實很簡單,就是在剛剛配置的 nginx 文件中 的 upstream tomcats 中的 server 后面添加一個 weight, 即可代表權重。權重越高,分派請求的數量就越多。默認權重是 1。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40605.html
摘要:但是使用重定向,瀏覽器鏈接是會發生變化的。第二種反向代理有些場景需要內容重定向到另外一個但是鏈接保持不變,這時候就可以利用反向代理配置來達到目的。這里只是針對反向代理配置的一個投機利用,如果不理解反向代理,一定請自行學習。 第一種:rewrite 按照常規理解,實現重定向就是要用rewrite來實現,例如demo:showImg(https://segmentfault.com/img...
閱讀 3317·2019-08-29 16:17
閱讀 1971·2019-08-29 15:31
閱讀 2644·2019-08-29 14:09
閱讀 2547·2019-08-26 13:52
閱讀 743·2019-08-26 12:21
閱讀 2124·2019-08-26 12:08
閱讀 990·2019-08-23 17:08
閱讀 1922·2019-08-23 16:59