nginx的反向代理-实现网站的发布
nginx的反向代理-实现网站的发布
1.nginx是什么
1.是一个高性能的http服务器功能和tomcat差不多。但是nginx能够支持的并发访问量更大,性能要优于tomcat。但是nginx这个服务器只能作为静态页面服务器,也就是说jsp页面是不能加载到nginx服务器上的。
2.衍生概念—动静分离:由于nginx具有高性能的优势通常会把静态页面放到nginx服务器上,而动态页面放到tomcat上这样就产生了动静分离的概念。
2.什么是反向代理,负载均衡
1.当网站的访问量达到足够大时,单台的tomcat服务器已经满足不了需求了。此时就需要多态tomcat服务器来支撑用户的大量访问。但是同时也会出现一个问题:如何映射服务器地址与用户的请求,也就是用户发送一个请求是该由服务器A去接收还是由服务器B去接收。。。。
2.此时出现了nginx作为一个中间人,让所有的请求都先访问nginx在有nginx向内传送到tomcat服务器上。这便是反向代理。
3.nginx作为中间人,也可以按照设定好的要求来进行请求的权重平衡。例如可以设置让50%的请求访问性能优良的A服务器。让30%的请求访问到性能次一点的B服务,让20%的用户访问到性能最差的C服务器。这样根据服务器自身的性能不同而划分不同的访问量,使得服务器正常运转。成这种功能为nginx的负载均衡。
4.正向代理:有反向代理自然有正向代理,虽然这个并不是nginx的功能,但是也是要说以下概念。正向代理也是先将请求发送到一个代理处然后再由代理向外发出请求。典型的例子就是翻墙,越狱等
3.如何实现反向代理
1.将在eclips中做的系统放到linux系统的tomcat服务器里
1.将maven工程打成war包
2.将war包放到linux的tomcat服务器上
修改数据库,使其连接到linux上的数据库
放法1:在linux下进入到该目录中修改jdbc.properties配置文件:
cd /export/servers/apache-tomcat-7.0.57/webapps/2018-6-30_ssm_03-0.0.1-SNAPSHOT/WEB-INF/classes/jdbc 修改: jdbc.url=jdbc:mysql://192.168.96.131:3306/crm
方法2:直接在eclipse中修改jdbc.propertes,在将该工程加载到linux下的tomcat服务器中
3.利用网页访问该项目进行测试
2.配置nginx
1.配置域名与ip地址的映射关系
进入到windows上的目录 C:\Windows\System32\drivers\etc
修改其中的host文件
添加:192.163.96.131 jd.com
修改该项的原因:后面需要通过jd.com访问到虚拟机中的nginx程序所以需要添加该映射
2.修改nginx配置文件,让nginx知道你配置的域名与ip的映射关系
upstream jd.com { server 192.168.96.131:8080; } server { listen 80; server_name jd.com; location / { proxy_pass http://jd.com; index customer/list.action; } }
3.重启ngix
./nginx -s reload
3.访问测试
4.nginx反向代理流程
http://jd.com/2018-6-30_ssm_03-0.0.1-SNAPSHOT/customer/list.action
0.通过在window中设置的ip与域名的映射,访问jd.com的时候实际上会访问到192.168.96.131这个ip上.
1.通过在nginx中的配置文件的设置,会监听到80端口有请求访问(因为默认访问的是80端口所以在输入网址的时候不用加上80)。
2.查看nginx所代理的服务名称。
3.从配置nginx配置文件中查找该代理的名称。
4.找到之后访问其中的服务,在本图中最后访问的也就是8080端口的tomcat服务。