NGINX反向代理
说明:
刚接触nginx觉得很难,很多,很杂,之后把nginx文件配置分开看,就发现问题很简单了,这里记录一下个人的nginx的反向代理的配置过程。一起学习。
业务需求
A服务器上边有我的服务,
B客户端需要请求我的服务(A服务器),
但是由于网络等原因B客户端不能直接连接我的A服务器,但是通过中间服务器C访问。流程图是下面这样:
这个时候C服务器就可以做反向代理,直接将B客户端的需求扔给A服务器处理。
一、反向代理是什么?
反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。
二、反向代理的主要作用:
目前web网站使用反向代理,除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,
还可以进行负载均衡,将用户请求分配给多个服务器。
三、配置反向代理(Nginx):
- 准备工作
C服务器需要安装好nginx服务以1.8为例(本文不赘述,请自行百度),
A服务器IP和业务端口。
例如:A服务器有两个业务。
域名为:www.test1.com -对应IP和端口- 123.456.789.147:8080
域名为:www.test2.com -对应IP和端口- 123.456.789.147:8090
2.开始配置
打开C服务器nginx配置
vim /etc/nginx/nginx.conf
找到server并将server改为
server {
listen 8080;
server_name -;
#1.如果B访问域名,请填写C服务器的域名!!!
#2.如果B访问IP,此处可以不填写。
location / {
proxy_pass http://123.456.789.147:8080;
#或者填写域名 proxy_pass http://www.test1.com;
index index.html index.htm index.php;
}
}
server {
listen 8090;
server_name -;
#1.如果B访问域名,请填写C服务器的域名!!!
#2.如果B访问IP,此处可以不填写。
location / {
proxy_pass http://123.456.789.147:8090;
#或者填写域名 proxy_pass http://www.test2.com;
index index.html index.htm index.php;
}
}
如果你没找到server说明你的server是引入文件的形式,可以把引入的地方注释掉,改成上面的。也可以自己去改引入文件的server
3.重启nginx服务
service nginx restart
4.其他说明
注意C服务器的防火墙是否开启了指定端口的出入站规则。
总结
遇到问题不要慌,多观察,多学习。每天都进步。