正向代理:[ 多個(gè)客戶端Client-->Proxy ]-->Server
反向代理:多個(gè)客戶端Client-->[ Proxy-->多個(gè)Server ]
正向代理是代理客戶端,為客戶端收發(fā)請(qǐng)求,使真實(shí)的客戶端對(duì)服務(wù)器不可見岳瞭。
反向代理是代理服務(wù)器端,為服務(wù)器收發(fā)請(qǐng)求,使真實(shí)的服務(wù)器對(duì)客戶端不可見。
一 反向代理
前一篇Nginx基礎(chǔ)知識(shí) 已經(jīng)詳細(xì)介紹了nginx的目錄和文件。當(dāng)我們想去做反向代理時(shí),首頁需要知道去nginx目錄下修改哪個(gè)文件稚失?之后是怎么樣修改?
1.1 操作
1.到/etc/nginx/site-available
目錄下
root@iZ28:~# cd /etc/nginx/sites-available/
root@iZ28:/etc/nginx/sites-available# ls
default
2.復(fù)制一份default
文件恰聘,取名為blog
cp default blog
3.vi blog
修改 blog
文件為:
1).反向到服務(wù)器的不同端口號(hào):
server {
listen 80;
server_name liutao.top;
location / {
proxy_pass http://127.0.0.1:1314;
}
}
此時(shí)這里的意思是:當(dāng)外網(wǎng)訪問liutao.top
時(shí)句各,會(huì)被反向代理到本臺(tái)服務(wù)器的1314端口號(hào)。
此時(shí)如果在自己的服務(wù)器上開了一個(gè)1314端口的項(xiàng)目晴叨,就可以直接通過反向代理的方式訪問到該項(xiàng)目凿宾。具體訪問過程是:在外網(wǎng)瀏覽器地址輸入liutao.top
時(shí)(默認(rèn)是80端口),進(jìn)過nginx監(jiān)聽到了此次訪問兼蕊,nginx反向代理到了本臺(tái)服務(wù)器的1314端口初厚,找到本臺(tái)服務(wù)器1314端口的進(jìn)程是什么。
這里有一個(gè)點(diǎn):當(dāng)進(jìn)過外網(wǎng)訪問到了本臺(tái)服務(wù)器時(shí)孙技,這臺(tái)服務(wù)器的的內(nèi)部訪問可以走內(nèi)網(wǎng)产禾,一律設(shè)置為127.0.0.1,從訪問流量和時(shí)間來說牵啦,這都是一個(gè)很好的措施亚情。
2).反向到不同地址:
server {
listen 80;
server_name liutao.top;
location / {
proxy_pass http://www.baidu.com;
}
}
此時(shí)這里的意思是:當(dāng)外網(wǎng)訪問liutao.top
時(shí),會(huì)被反向代理到百度地址哈雏。
注釋:
listen
:監(jiān)聽端口
server_name
:外網(wǎng)訪問地址
proxy_pass
:定義反向地址
二 基本操作
2.1 windows下:
1.啟動(dòng)
到.exe目錄,start nginx
或者 nginx.exe
(不推薦,會(huì)使的窗口不能做其他事)
2.停止 nginx -s stop
(不推薦,不能保存相關(guān)信息) 或者 nginx -s quit(推薦,會(huì)有條不紊的推出)
3.重新載入 nginx.exe -s reload
當(dāng)配置發(fā)生改變時(shí),可以用這個(gè)
4.查看版本 nginx -v
2.2 ubuntu下:
阿里云的云主機(jī) ubuntu14.04楞件。
1.啟動(dòng)
root@iZ28:~# nginx
2.停止
root@iZ28:~# nginx -s stop
3.重新載入
root@iZ28:~# nginx -s reload
提示:
nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory)
如用reload
重載時(shí),可能會(huì)報(bào)此錯(cuò)僧著。linux重啟nginx后出現(xiàn)可能會(huì)有nginx的pid丟失履因。兩種方式解決:1.服務(wù)器重啟;2.先執(zhí)行第2步再執(zhí)行第1步盹愚。