底层原理---请求代理机制
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
特点:
1. 内存少 2M, tomcat启动内存占用量200M
2. 并发能力强 3-5万次 tomcat支持 180-250,调优之后支持1000
3. Nginx可以作为web服务器使用
反向代理
特点:
1. 代理服务器,介于用户和服务器之间.
2. 用户从反向代理服务器,获取数据资源.
3. 用户不知道真实的服务器到底是谁,保护了服务器的信息,也称之为:服务器端代理
正向代理
特点:
1. 代理服务器 介于用户和服务器之间.
2. 用户清楚自己访问的服务器到底是谁,但是服务器不清楚是谁访问的.所以保护了用户的信息. 所处称之为: 客户端代理.
3. 使用场景: 网络通信, 路由器
下载与安装
下载地址:https://nginx.org/en/download.html
解压-->进入文件目录-->操作如下:(c语言写的,注意文件目录不要有中文空格特殊符号)
nginx命令启动
要求: 操作nginx的命令,必须在nginx的根目录中执行
- 启动nginx start nginx
- 重启nginx nginx -s reload
- 关闭nginx nginx -s stop
访问服务:hppt://localhost:80,出现如下界面,说明Nginx启动成功
反向代理配置
http {
#1.每个反向代理服务 都是一个server
server {
#2. 默认条件下 都会监听 80端口
listen 80;
#3. 拦截的域名名称
server_name localhost;
#4. 拦截的策略 / 拦截全部的请求
location / {
#5. root关键字 代表磁盘目录
root html;
#6. index关键字 默认页面
#index index.html index.htm;
index abc.html;
}
}
#配置图片服务器反向代理
server {
listen 80;
server_name image.jt.com;
location / {
root F:/JT_SOFT/images;
}
}
#配置tomcat服务器集群 默认原则: 1.轮询策略
upstream tomcats {
server 127.0.0.1:8091;
server 127.0.0.1:8092;
server 127.0.0.1:8093;
}
server {
listen 80;
server_name manage.jt.com;
location / {
#代理URL请求地址
proxy_pass http://tomcats;
}
}
}
Nginx负载均衡
轮询策略
说明: 根据配置文件的顺序,依次访问.#配置tomcat服务器集群 默认原则: 1.轮询策略 upstream tomcats { server 127.0.0.1:8091; server 127.0.0.1:8092; server 127.0.0.1:8093; }
权重策略
说明: 根据性能的不同,可以改变tomcat服务器的访问量.让性能更好的服务器,接收更多的请求. 记得重启服务器.#配置tomcat服务器集群 默认原则: 1.轮询策略 upstream tomcats { server 127.0.0.1:8091 weight=6; server 127.0.0.1:8092 weight=3; server 127.0.0.1:8093 weight=1; }
IPHASH策略
需求: 要求用户和服务器进行绑定.#配置tomcat服务器集群 默认原则: 1.轮询策略 upstream tomcats { ip_hash; server 127.0.0.1:8091; server 127.0.0.1:8092; server 127.0.0.1:8093; }
Nginx常用属性
down属性
说明: 如果要求nginx 不将请求发送给某个服务器,则使用down属性#配置tomcat服务器集群 默认原则: 1.轮询策略 upstream tomcats { #ip_hash; server 127.0.0.1:8091 down; server 127.0.0.1:8092 ; server 127.0.0.1:8093 ; }
backup 属性
说明: 可以理解为备用机, 正常情况下,该服务器不会被访问. 当其它服务器遇忙时,或者全部down掉时,该服务器才会有效!.#配置tomcat服务器集群 默认原则: 1.轮询策略 upstream tomcats { #ip_hash; server 127.0.0.1:8091 down; server 127.0.0.1:8092 backup; server 127.0.0.1:8093 down; }
nginx 实现tomcat高可用
说明: 当tomcat服务器意外关闭时,nginx 还没有标识down熟悉时, 则nginx 依然会将请求发送给该服务器.这时看到用户的请求一直在"转圈" 2-3秒之后,切换其它服务器 进行访问. 这样的话 用户体验不好.如何解决: 可以为nginx配置 自检的功能. 如果发现服务器宕机,则在指定的时间内,不会再次访问故障机!!!
#配置tomcat服务器集群 默认原则: 1.轮询策略 upstream tomcats { #ip_hash; # 如果访问服务器 失败1次之后,60s之内 不会再次访问故障机. server 127.0.0.1:8091 max_fails=1 fail_timeout=60s; server 127.0.0.1:8092 max_fails=1 fail_timeout=60s; server 127.0.0.1:8093 max_fails=1 fail_timeout=60s; }
如果买了域名解析器可以使用域名解析器:
本机测试可以采取如下方案:
常见问题
80端口被占用,需要释放进程
如果80端口 被PID=4占用,则需要升级驱动配置. (百度上好多答案)
关闭多余Nginx
1. 主进程: 主要提供反向代理服务的.
2. 守护进程: 防止主进程意外关闭的.
关闭策略: 先关闭守护进程,再关闭主进程(占用内存大的).