我们本篇将通过两个实例进行对Nginx反向代理的学习。
1、概念基础
反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就是可以访问。我们只需要将请求发送到反向代理服务器上,有反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴漏的是代理服务器地址,隐藏了真实服务器地址。
反向代理的作用:
保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网
负载均衡,通过反向代理服务器来优化网站的负载
2、反向代理实例一
2.1、实例目标
通过nginx服务器的反向代理到本地的tomcat服务器上,我们可以通过修改hosts,设定一个域名访问,比如123.com
2.2、具体操作
- 修改本地hosts:进入/etc目录vi hosts添加以下内容:127.0.0.1 www.123.com;
- 启动nginx:进入nginx/sbin目录 ./nginx
- 修改nginx配置文件:进入/usr/local/nginx/conf目录vi nginx.cong修改以下内容。
listen 80; (这里是默认监听端口)
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://127.0.0.1:8080;(在这里添加如下内容,映射到tomcat服务器)
index index.html index.htm;
}
- 更新修改:进入nginx/sbin目录 ./nginx -s reload
- 启动tomcat:进入tomcat/bin目录 ./startup.sh
## 2.3效果截图
3、反向代理实例二
3.1、实例目标
我们本节的实例,是通过不同的路径分别访问不同的Tomcat服务器。
3.2、具体操作
- 复制一个tomcat然后修改端口号和备用端口,这里以修改为8081为例。
- 修改conf:在nginx.conf文件中加入
server {
listen 9001;
server_name localhost;
location ~/a/ {
root html;
proxy_pass http://127.0.0.1:8080/;
index index.html index.htm;
}
location ~/b/ {
root html;
proxy_pass http://127.0.0.1:8081/;
index index.html index.htm;
}
}
- 重启nginx
3.3 效果截图