使用centos7 + jdk1.8 + nginx1.12.2 + tomcat7.0.108
常用命令
- 使用nginx命令的前提要进入到有效目录内 /usr/local/nginx/sbin
- 查看版本 ./nginx -v
- 关闭服务 ./nginx -s stop
- 开启服务 ./nginx
- 重新加载 ./nginx -s reload
配置文件
配置文件的存放位置 /usr/local/nginx/conf/nginx.conf
全局块
从配置文件开始,到events块之间的内容,主要会设置一些影响nginx服务整体运行的参数配置,主要包括配置运行nginx服务的用户(组)、允许生成的work process数、进程PID存放路径、日志存放路径和类型、配置文件引入等events块
主要影响nginx服务与用户的网络连接,常用的设置包括是否开启对多work process下的网络连接进行序列化、是否允许同时接收多个网络连接、选取哪种事件驱动模型处理连接请求、每个work process支持的最大连接数等http块
1、这是配置最频繁的部分
2、其中包含http全局块和server块
反向代理
nginx服务器代理访问tomcat
# http块中修改server块配置
server {
listen 80;
# 将server_name localhost改为ip地址
server_name 192.168.1.100;
# 在location / 中增加proxy_pass参数
location / {
root html;
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
通过路径访问不同端口
- 配置两个tomcat服务,默认端口分别为8080,8081
- 在tomcat/webapps/分别新建 testa、testb目录,并存放index.html文件
- 配置nginx
# 在http块中新增server块
server {
listen 9000;
server_name 192.168.1.100;
# 正则匹配访问路径
location ~ /testa/ {
proxy_pass http://127.0.0.1:8080;
}
location ~ /testb/ {
proxy_pass http://127.0.0.1:8081;
}
}
- 浏览器分别访问192.168.1.100:9000/testa/index.html 和 .../testb/index.html
负载均衡
- linux启动两个tomcat服务,分别默认端口为8080,8081
- tomcat中webapps目录下创建 edu/index.html文件
- 配置nginx
# http块中增加名称为myserver的upstream,并设置两台服务器
upstream myserver {
server 192.168.1.100:8080;
server 192.168.1.100:8081;
}
server {
listen 80;
server_name 192.168.1.100;
# 配置代理转发,填写新增的upstream名称
location / {
proxy_pass http://myserver;
root html;
index index.html index.htm;
}
负载均衡模式
- 轮询
upstream myserver {
server 192.168.1.100:8080;
server 192.168.1.101:8080;
}
- 权重
默认权重为1,权重越高被分配的请求数越多
upstream myserver {
server 192.168.1.100:8080 weight=2;
server 192.168.1.101:8080 weight=5;
}
- ip_hash
按照发出请求的客户端ip地址分配,当客户端ip地址固定时,将会一直分配到同一个服务器
upstream myserver {
ip_hash;
server 192.168.1.100:8080;
server 192.168.1.101:8080;
}
- fair
可以根据请求数据大小,响应时间长短来智能分配服务器,使用此方式需要安装nginx-upstream-fair模块并配置后使用
nginx-upstream-fair 官方下载地址:https://github.com/gnosek/nginx-upstream-fair
upstream myserver {
server 192.168.1.100:8080;
server 192.168.1.101:8080;
fair;
}
-url_hash
根据URI地址的hash值分配,固定的URI将分配给固定的SERVER
upstream myserver {
server 192.168.1.100:8080;
server 192.168.1.101:8080;
hash $request_uri;
hash_method crc32;
}
down、backup
upstream myserver {
# down 该server不参与负载
server 192.168.1.100:8080 down;
server 192.168.1.101:8080;
server 192.168.1.102:8080;
# backup 备用server,当参与负载的server忙碌或down机时,请求备用server
server 192.168.1.103:8080 backup;
fair;
}
动静分离
- 根目录下新建mobile目录,同时创建mobile/www和mobile/static/images目录
- www目录存放静态html文件,images目录存放图片文件
- 配置nginx静态资源访问规则
location /www/ {
root /mobile/;
index index.html index.htm;
}
location /images/ {
root /mobile/static/;
}
- 浏览器访问
服务器IP/www/index.html
服务器IP/images/flower.jpg