Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器
具有内存占用少,启动极快,高并发能力强的优点、在互联网项目中广泛应用。
一台nginx能承受大约5万个并发连接数。
中国Nginx官网:https://www.nginx-cn.net/
GitHub地址:https://github.com/nginxinc/

代理就是代理服务器介于用户客户端和目标服务器之间,
正向代理就是用户指定想要获取的目标内容,通过客户端先向代理服务器发送请求,再由代理服务器发送到目标服务器,随后将获得的内容返回用户客户端。
正向代理的情况下,客户端需要知道正向代理服务器的IP地址,还有代理程序的端口才可使用。
正向代理是代理用户客户端,为客户端发送请求,使真实的用户客户端对服务器不可见。
反向代理刚好与正向代理相反。
对于反向代理,客户端对代理是无感知的,
因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,
暴露的是代理服务器地址,隐藏了真实服务器IP地址。

客户端想访问tomcat服务器,只需要访问ww.baidu.com。对真实的服务器IP是隐藏的

步骤一:修改主机映射“C:\Windows\System32\drivers\etc\hosts”


步骤二:修改Nginx中的配置文件并启动
发现报错

注意:我的nginx和tomcat都在Docker中,容器之间是相互隔离的。
127.0.0.1访问的nginx容器内部的8080端口,而此容器并没有tomcat所以肯定会报错
注意:我的tomcat8080容器已经映射到虚拟机的8080端口,所以进行以下更改:

可以看到此时访问成功
但是输入www.123.com(已经设置hosts端口映射)访问却报错
解决方法:关闭windows本地代理

访问成功


步骤一:为了区分Tomcat,对欢迎页面进行小改,修改webapps/ROOT/index.jsp

同理8081端口也是一样操作
步骤二:修改Nginx配置文件并重新启动Nginx

这里注意:
proxy_pass http://192.168.31.238:8080/;
proxy_pass最后面有斜杠”/”,此时通过浏览器请求http://http://192.168.31.238/edu/,那么实际访问的地址就是 http://192.168.31.238:8080,会将/edu抛弃的,
proxy_pass http://192.168.31.238:8080;
说明:proxy_pass最后面没有斜杠”/”,此时通过浏览器请求http://192.168.31.238/vod/,
那么实际访问的地址就是 http://192.168.31.238/vod/,会将匹配路径/vod一起加过去
注意:路径/usr/share/nginx/html/vod文件夹下需要有html文件才可以正常访问
步骤三:测试结果(成功)


更多location实例可以参考:nginx之location详解