一、概念
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
二、特点
- 占用内存少 不超过2M tomcat服务器占用内存 200M
- 并发能力强 3-5万次/秒 tomcat 支持的并发能力 220-260个/秒 调优1000个/秒
- 开发语言 C语言开发 tomcat是java写的
知识点:
1. 并发能力: 多个用户同时访问服务器.
2. 并行 计算机中的一种处理方式.
三、Nginx代理
反向代理:位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,用户访问反向代理服务器获取资源,同时,用户也不需要知道目标服务器的地址,也无须在用户端做任何设定。
通常可用来作为web加速,即使用反向代理作为web服务器的前置机来降低网络和服务器的负载,提高访问效率。
特点:
1、反向代理服务器介于用户和目标服务器之间。
2、用户的资源从反向代理服务器中获取。
3、用户不清楚真实的服务器到底是谁,保护了服务器的信息,称之为服务器端代理。
正向代理:位于客户端和原始服务器之间的服务器,为了从原始服务器获取资源,客户端向代理发送一个请求,并指定目标(原始服务器),然后代理向原始服务器转交请求并将获取的内容返回给客户端。
特点:
1、反向代理服务器介于用户和目标服务器之间。
2、用户的资源从正向代理服务器中获取。
3、客户端通过正向代理服务器,指向目标服务器,(用户非常清楚知道目标服务器的存在),服务器端不清楚到底是谁访问服务器,以为只是代理服务器访问。
总结:
反向代理---用户不知道真实的服务器是谁,保护了服务器的信息。
正向代理---服务器端不知道谁访问服务器,以为只是代理服务器访问。
每次请求服务器,都伴随正向代理和反向代理,正向主要提供网络服务,反向提供数据支持
四、入门案例
关键字:
1. events 可以配置nginx 的环境
2. http 请求协议. nginx 可以接收http请求规则, 协议有且只有一份.
3. server 一个反向代理服务,就是一个server
4. listen nginx中一般的监听端口号:80
5. server_name nginx拦截URL中的哪个请求.
6. location 拦截服务之后,开始反向代理配置的核心关键字
7. / 需要拦截的请求的路径 /拦截根目录
/images 拦截images请求路径.
8. root root代表反向代理的是一个文件夹
9. index 反向代理时 默认加载的页面.
http {
server {
# 监听80端口
listen 80;
# 拦截的域名
server_name localhost;
# 拦截所有的请求路径/ 根目录
location / {
#代理的是一个目录
root html;
#默认页面
index index.html index.htm;
}
}
}
五、域名设置
域名: manage.jt.com:80/443
代理服务器: http://localhost:8091 通过域名,访问后端服务器
域名: www.jt.com:80/443
代理服务器: http://localhost:8080 通过域名,访问后端服务器
#配置图片代理 写完之后记得保存 ctrl+s
server {
listen 80;
server_name image.jt.com;
location / {
root E:/project3/images;
}
}#配置后端服务器代理
server {
listen 80;
server_name manage.jt.com;
location / {
#代理请求协议
proxy_pass http://localhost:8091;
}
}
#配置前端服务器代理 www.jt.com localhost:8080
server {
listen 80;
server_name www.jt.com;
location / {
#代理请求协议
proxy_pass http://localhost:8080;
}
}
六、负载均衡
1、轮询策略
说明: 根据配置文件中的服务器的顺序,依次访问服务器.
编辑完成之后,记得重启服务器
#定义tomcat服务器集群
upstream tomcats {
server localhost:8091;
server localhost:8092;
server localhost:8093;
}
#配置后端服务器代理 manage.jt.com localhost:8091
server {
listen 80;
server_name manage.jt.com;
location / {
#代理请求协议
#proxy_pass http://localhost:8091;
proxy_pass http://tomcats;
}
}
2、权重策略
说明: 根据服务器的性能,灵活的进行访问的配比
#定义tomcat服务器集群
upstream tomcats {
server localhost:8091 weight=6;
server localhost:8092 weight=3;
server localhost:8093 weight=1;
}
3、 IPHASH策略
说明: 如果需要用户与tomcat服务器进行绑定. 可以选用 iphash策略
策略: 有时会将用户的数据,存储到后端服务器的Session中.并且保证每次用户访问都访问同一个tomcat服务器.
#定义tomcat服务器集群
upstream tomcats {
ip_hash;
server localhost:8091 weight=6;
server localhost:8092 weight=3;
server localhost:8093 weight=1;
}
七、Nginx高可用
- down 属性 用来标识tomcat服务器. 告知nginx 该服务器已经下线. 以后不会访问该服务器.
- backup属性 设定备用机. 正常情况下 不会主动提供服务. 当服务器遇忙时/或者主机全部下线时,才起作用.
#定义tomcat服务器集群
upstream tomcats {
#ip_hash; weight=6
server localhost:8091 ;
server localhost:8092 down;
server localhost:8093 backup;
}
在线部署:
需求: 要求用户正常使用,并且完成项目升级. 打成jar包,重新部署. 如何操作?
关键点: 原有的服务必须关闭,之后才能升级.
步骤:
1. 将设计部署的策略
2. 通过down属性标识下线.
3. 之后部署新的项目,启动测试.如果没有问题.则上线运行.
4. 重复执行上述的操作即可.
5. 上述的操作 一般都有脚本完成 几分钟即可实现上线操作. Linux运维