浅谈nginx反向代理问题
對正向代理和反向代理的概念理解:正向代理,我是這樣認(rèn)為的,正向代理就好比我們想上網(wǎng),然后要通過這個代理服務(wù)器我們才能訪問特定的網(wǎng)絡(luò),正向代理的服務(wù)器是和我們的局域網(wǎng)即客戶端在一起的;反向代理,我們要訪問服務(wù)器,然后代理服務(wù)器將我們的請求發(fā)給在他結(jié)點下面的服務(wù)器,然后代理服務(wù)器將收集到的信息發(fā)給我們,所以我們感覺代理服務(wù)器就是自己的服務(wù)器一樣,其中反向代理服務(wù)器是和對端服務(wù)器部署在一起的。
最近在研究nginx如何做反向代理并且負(fù)載均衡的問題,其中小白我很糾結(jié)于nginx配置文件上面的root目錄到底怎么配置,因為我想模擬的是nginx單獨裝在一臺服務(wù)器,然后通過nginx代理下面的服務(wù)器結(jié)點,所以覺得這種情況Nginx不用配置本地目錄root,后來做實驗發(fā)覺我的猜想是對的,下面說說我進(jìn)行的實驗:
首先說明我的實驗環(huán)境Centos6.5虛擬機(jī),地址是192.168.10.132,然后我的局域網(wǎng)里面有兩個外網(wǎng)的服務(wù)器都是210開頭的,如下圖,你的兩臺210服務(wù)器必須都搭建了相同的網(wǎng)站,并且與上面的192.168.10.132能互相訪問,這里在192.168.10.132和210服務(wù)器之間是隔著防火墻設(shè)備的,在拓?fù)鋱D中忽略了中間設(shè)備
???????????????????????????????????? ?
1安裝nginx,這個網(wǎng)上很多教程,這里就不說了,我是主要參考菜鳥教程里面的linux?nginx安裝以及配置,大家如果想安裝和配置的話可以去上面看看教程。
2修改nginx.conf文件(重點),打開Nginx安裝目錄下的nginx.conf文件,因為我的nginx安裝在/usr/local/nginx下面的,所以就用命令vi /usr/local/nginx/conf/nginx.conf打開
???????????????
我按照上圖修改了上面配置文件的內(nèi)容,畫紅色的是我修改的內(nèi)容,我在http{}里面加了一個upstream負(fù)載均衡器myserver,設(shè)置了weight權(quán)值,weight越大被訪問到的幾率越高,同時也起到了反向代理這兩臺210的服務(wù)器的作用,在server下面將nginx默認(rèn)的本地目錄root注釋掉,加了一個Location模塊,起到了負(fù)載調(diào)度的作用,proxy_pass是負(fù)載均衡組,要和上面的upstream名字相同都為myserver,下面的proxy_next_upstream定義了故障轉(zhuǎn)移策略,如果發(fā)生502,503等錯誤,會將請求轉(zhuǎn)發(fā)到另外一臺服務(wù)器,include包含進(jìn)proxy.conf,這個文件是安裝nginx默認(rèn)存在的,與nginx.conf在同一目錄下
注意:如果是nginx不是用于負(fù)載均衡,只是用作分發(fā)的作用的話,上述就不需要添加upstream模塊,只需要添加不同虛擬主機(jī)的server模塊,然后在里面添加不同的server_name 和proxy_pass(這里proxy_pass是對應(yīng)主機(jī)的URL入口,如http://127.0.0.1:8080或者h(yuǎn)ttp://127.0.0.1:8888),也可以把不同虛擬主機(jī)寫成不同的配置文件(如www_baidu_com.conf和www_google_com.conf),然后在配置文件里面添加server模塊并放到一個文件夾下,接著在nginx_conf中把上面配置文件include進(jìn)去
3/usr/local/nginx/sbin/nginx -s reload重新加載配置文件
輸入http://192.168.10.132測試正確顯示權(quán)值大的服務(wù)器,大功告成!
我在測試的時候遇到了一些問題,有些網(wǎng)站的圖片和格式都無法正常顯示,所以在nginx.conf文件里面的幾個location模塊加上了如下配置
?????????????????????
分別在css模塊和gif圖片模塊中加入了proxy_pass http://myserver;再/usr/local/nginx/bin/nginx -s reload重新加載一下配置文件就可以正常訪問了
還有一點,我用的ie瀏覽器測試,要清理一下ie瀏覽器的緩存,不然的話你會發(fā)覺怎么修改weight的值也是在訪問同一臺服務(wù)器。
總結(jié)
以上是生活随笔為你收集整理的浅谈nginx反向代理问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【OpenCV】透视变换应用——实现鸟瞰
- 下一篇: 软件设计师知识点拿分