1 Nginx反向代理
1.1 实现图片回显
1.1.1 反向代理
说明:当用户发出image.jt.com/2018/1.jpg时,首先将请求发往nginx.经过Nginx内部配置自动进行路径的切换.E:jt-upload/2018/1.jpg并且访问切换后的路径.将返回的结果再次返回给浏览器.这时浏览器可以进行正常的展现
1.1.2 Nginx介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,
轻量级:
从代码角度看
实现代码时,代码设计耦合性较低.
占用内存
占用内存特别的少.例如spring-core大小不到1M,可以运行在小型机.
1.1.3 Nginx的实例化
命令:
start nginx 启动
nginx -s reload 重启命令
nginx -s stop 停止
说明:
当启动nginx时需要依赖于nginx.exe文件.所以应该在exe的根目录执行启动命令.
1.1.4 Nginx多实例
说明:当启动nginx时 一次启动会有2个nginx进程.一个是主进程,一个是守护进程.当主进程意外停止时,这时守护进程会自动的启动一个主进程.保证服务正常启动.所以在关闭nginx时先关闭守护进程之后再关闭主进程.
1.1.5 Nginx reload命令作用
当Nginx启动时,如果配置文件出错了,Nginx实例将不能正常启动.这时可以通过Nginx -s reload 查询报错信息,方便用户进行修改.
1.1.6 Nginx的配置文件
说明:
Server表示服务,在Nginx中可以配置很多项服务.
Listen表示端口监听:80.目的就是为了让nginx起作用.
server_name 表示服务的名称.浏览器中访问的具体路径.
Location 表示当Nginx成功拦截请求后做的处理.
root 表示转发到文件夹中.这是一个关键字 不要随便修改.
Index 默认访问路径
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
1.1.7 定义图片服务器
#配置图片服务器
server {
listen 80;
server_name image.jt.com;
location / {
root E:\jt-upload;
}
}
1.1.8 修改Host文件
1.1.9 上传图片出现问题检测
1.检测虚拟的url是否正确
2.检测image.jt.com与虚拟路径是否一致
3.Nginx重启是否报错
4.检测Nginx.conf文件
1.1.10 为什么要改host?
说明:
只有修改了host文件,当浏览器发送image.jt.com时,才会将请求发往本地.之后Nginx才能实现反向代理的过程
1.2 实现后台跳转
1.2.1 需求
当用户输入manage.jt.com时自动的跳转到jt后台服务器中.127.0.0.1:8091
1.2.2 添加后台的Host文件
作用:能够将用户的连接发往本机
127.0.0.1 manage.jt.com
1.2.3 配置nginx实现后台转向
#添加后台管理
server {
listen 80;
server_name manage.jt.com;
location / {
proxy_pass http://127.0.0.1:8091;
}
}
1.2.4 Nginx配置请求头
将以下代码添加到nginx.conf文件的server_name下
#添加京淘后台管理
server {
listen 80;
server_name manage.jt.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:8091;
}
}
2 Nginx的负载均衡
2.1 后台服务器
2.1.1 Tomcat集群部署
说明:通过京淘后台项目搭建tomcat集群.搭建3台tomcat服务器
目的:为了抗击高并发.
2.1.2 项目打包
1.Clean(project ---- clean) 2.将target目录删除 3.再打包(install),除非Install将首字母大写(web.xml)
将三个项目都install.之后形成jar包文件,改名为ROOT.war
2.1.3 Tomcat集群部署
分别修改3台tomcat的端口号
规则:依次加1
2.1.4 Nginx实现负载均衡
- 配置负载均衡项
#nginx实现负载均衡
upstream jt {
server 127.0.0.1:8080;
server 127.0.0.1:8090;
server 127.0.0.1:8091;
}
- (linux版)配置负载均衡项
#nginx实现负载均衡
upstream jt {
server 192.168.161.130:8080;
server 192.168.161.130:8090;
server 192.168.161.130:8091;
}
- 实现负载均衡
#添加后台管理
server {
listen 80;
server_name manage.jt.com;
location / {
proxy_pass http://jt;
}
}
说明:nginx中默认的访问方式是轮询的方式.1-3依次执行.
2.2 负载均衡的方式
2.2.1 轮询
说明:因为在公司中,服务器的价格和性能是不一样的.一般数据库服务器是最好的.一般不会都采用性能最优的服务器因为价格太贵.一般公司都是好坏都有.
2.2.2 权重(重点掌握)
说明:尽可能的让性能优良的服务器处理更多的请求.
#nginx实现负载均衡 默认都是轮询 采用权重的方式数值越大越容易被访问
upstream jt {
server 127.0.0.1:8080 weight=6;
server 127.0.0.1:8090 weight=1;
server 127.0.0.1:8091 weight=3;
}
2.2.3 IP_HASH
说明:
根据用户的访问IP地址,经过内部HASH计算会指定一台服务器绑定.那么以后该用户访问项目时,都会访问指定的那台服务器.
例子:例如本机启动了IP_HASH则只会访问8080服务器
作用:一般企业如果实现低级的Session共享则使用IP_HASH.
问题:容易产生Session黏着问题,所以一般不用Ip_hash
#nginx实现负载均衡 默认都是轮询 采用权重的方式数值越大越容易被访问
#如果在配置服务器时配置ip_hash 则会自动按照IP进行绑定,其他配置将不起作用
upstream jt {
ip_hash;
server 127.0.0.1:8080 weight=6;
server 127.0.0.1:8090 weight=1;
server 127.0.0.1:8091 weight=3;
}
2.2.4 备用机机制
说明:
如果当前的服务器都处于忙碌状态,没有时间响应新的请求,这时如果配置了备用机.则备用机会承担一部分压力.如果主服务器压力减小,可以正常处理用户请求.则备用机处于等待状态.
#nginx实现负载均衡 默认都是轮询 采用权重的方式数值越大越容易被访问
#如果在配置服务器时配置ip_hash 则会自动按照IP进行绑定,其他配置将不起作用
#ip_hash;
upstream jt {
server 127.0.0.1:8080 weight=6;
server 127.0.0.1:8090 weight=1 backup;
server 127.0.0.1:8091 weight=3;
}
2.2.5 上线部署
上线的步骤:
1.先修改nginx配置文件 让需要上线的服务器down掉
2.应该将需要上线的服务停止
3.之后将war包发布.
4.启动服务器
5.将服务器还原回nginx中(将down去掉)
6.重启nginx即可
upstream jt {
server 127.0.0.1:8080 weight=6;
server 127.0.0.1:8090 weight=1 backup;
server 127.0.0.1:8091 weight=3 down;
}
3 后台项目Linux部署
3.1 VMware的使用
3.1.1 使用VMware介绍
说明:
VMware是一款虚拟化技术的产品.可以在window的系统中通过没有配置实现Linux系统的运行.
网卡:
VMnet1:负责桥接模式的网络配置
VMnew8:负责nat模式的网络配置
注意:一般情况下不要随意的修改.
链接模