正向代理:[ 多个客户端Client-->Proxy ]-->Server
反向代理:多个客户端Client-->[ Proxy-->多个Server ]
正向代理是代理客户端,为客户端收发请求,使真实的客户端对服务器不可见。
反向代理是代理服务器端,为服务器收发请求,使真实的服务器对客户端不可见。
一 反向代理
前一篇Nginx基础知识 已经详细介绍了nginx的目录和文件。当我们想去做反向代理时,首页需要知道去nginx目录下修改哪个文件?之后是怎么样修改?
1.1 操作
1.到/etc/nginx/site-available
目录下
root@iZ28:~# cd /etc/nginx/sites-available/
root@iZ28:/etc/nginx/sites-available# ls
default
2.复制一份default
文件,取名为blog
cp default blog
3.vi blog
修改 blog
文件为:
1).反向到服务器的不同端口号:
server {
listen 80;
server_name liutao.top;
location / {
proxy_pass http://127.0.0.1:1314;
}
}
此时这里的意思是:当外网访问liutao.top
时,会被反向代理到本台服务器的1314端口号。
此时如果在自己的服务器上开了一个1314端口的项目,就可以直接通过反向代理的方式访问到该项目。具体访问过程是:在外网浏览器地址输入liutao.top
时(默认是80端口),进过nginx监听到了此次访问,nginx反向代理到了本台服务器的1314端口,找到本台服务器1314端口的进程是什么。
这里有一个点:当进过外网访问到了本台服务器时,这台服务器的的内部访问可以走内网,一律设置为127.0.0.1,从访问流量和时间来说,这都是一个很好的措施。
2).反向到不同地址:
server {
listen 80;
server_name liutao.top;
location / {
proxy_pass http://www.baidu.com;
}
}
此时这里的意思是:当外网访问liutao.top
时,会被反向代理到百度地址。
注释:
listen
:监听端口
server_name
:外网访问地址
proxy_pass
:定义反向地址
二 基本操作
2.1 windows下:
1.启动
到.exe目录,start nginx
或者 nginx.exe
(不推荐,会使的窗口不能做其他事)
2.停止 nginx -s stop
(不推荐,不能保存相关信息) 或者 nginx -s quit(推荐,会有条不紊的推出)
3.重新载入 nginx.exe -s reload
当配置发生改变时,可以用这个
4.查看版本 nginx -v
2.2 ubuntu下:
阿里云的云主机 ubuntu14.04。
1.启动
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
重载时,可能会报此错。linux重启nginx后出现可能会有nginx的pid丢失。两种方式解决:1.服务器重启;2.先执行第2步再执行第1步。