什么是反向代理?
先说正向代理,比如要访问youtube,但是不能直接访问,只能先找个FQ软件,通过FQ软件才能访问youtube. FQ软件就叫做正向代理。
所谓的反向代理,指的是用户要访问youtube,但是youtube悄悄地把这个请求交给bilibili来做,那么bilibili就是反向代理了。
实现案例
我输入nginx地址访问nginx,但是nginx把我的请求发给了tomcat来做,所以我最终访问的界面是tomcat
实现步骤
步骤一
启动一个tomcat,我这里的端口号是8080
进入tomcat的bin目录,点击startup
测试一下启动成功效果http://localhost:8080/
步骤二
进入nginx的conf目录修改nginx.conf
location / {
proxy_pass http://127.0.0.1:8080;
}
location / 表示处理所有请求
proxy_pass http://127.0.0.1:8080; 表示把请求都交给http://127.0.0.1:8080来处理
步骤三
重启nginx并访问
cmd中输入
nginx -s reload
重启nginx
浏览器中输入
http://127.0.0.1/
或http://localhost/
访问,最后的访问效果和步骤一中直接输入http://localhost:8080/
的效果是一样的
这样做反向代理的意义是啥?
因为nginx在处理静态文件的吞吐量上面比tomcat好很多,通常他们俩配合,不会把所有的请求都如本例所示的交给tomcat, 而是把静态请求交给nginx,动态请求,如jsp, servlet,ssm, struts等请求交给tomcat. 从而达到动静分离的效果