介绍
Nginx 是一个高性能的Http和反向代理服务器,占用内存小,并发能力强(比Tomcat并发能力强),同时也提供负载均衡能力。
Nginx 分为Nginx open source 版本和Nginx Plus 商用版,本文只针对Nginx open source 版本做说明和测试。
Nginx 官方文档:文档
目的
当作Http 服务器时,通常为静态Web服务器,安装相应模块,也可作为动态Web服务器,如PHP 开发的动态应用程序(暂时不支持Java语言开发的动态应用)。
当作反向代理服务器时,Nginx 会将用户的请求转发到别的后端服务器进行请求,当后端服务器返回响应时,Nginx 再负责将响应返回给用户。
反向代理的请求可以根据负载均衡的策略转发到不同的后端服务器进行请求,从而缓解单台服务器的压力。
命令
(REHL 7 and CentOS 7 or higher version)
- 启动命令: systemctl start nginx
- 停止命令:systemctl stop nginx
- 查看状态: systemctl status nginx
- 检测配置文件正确性:nginx -t
- 重载配置文件:nginx -s reload
- 指定配置文件启动 nginx -c ${nginx_configuration}
配置文件
默认配置文件路径:/etc/nginx/nginx.conf
工作进程
master_process : 只有一个,管理维护worker_process 的运行
worker_process: 可有多个,可手动指定数量或者配置位自动(自动配置下位CPU核数)
反向代理
操作环境
CentOS 8 64位
Tomcat 9.0
核心配置
server {
...
location /test.html {
proxy_pass http://127.0.0.1:8080;
}
...
}
访问效果
请求nginx ip 地址http://172.16.34.132/test.html,agin 将tomcat 返回的内容呈现给用户。
负载均衡
操作环境
CentOS 8 64位
Tomcat 9.0
核心配置
策略
- 轮询 (Round Robin):请求按先后顺序转发后后端服务器。
- 权重 (Weight):权重大的获得更多的请求。
- hash (基本hash和ip hash) :同一台客户端的请求全部会转发到同一台后端服务器,保证了session 一致性。
- 最少连接:请求将优先转发到活跃连接最少的后端服务器。
upstream backedserver {
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:9080;
}
server {
...
location / {
proxy_pass http://backedserver;
}
...
}