目录
一、安装
1. 安装依赖环境
方式①:
1. gcc安装
yum install -y gcc-c++
2. pcre安装
pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。
安装命令:
yum install -y pcre pcre-devel
3. zlib安装:
zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装
安装命令:
yum install -y zlib zlib-devel
4. OpenSSL安装:
penssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔,所以需要安装
安装命令:
yum install -y openssl openssl-devel
方式②:
上面的命令比较麻烦,下面可以直接一步到位
直接使用yum install -y gcc c++ pcre-devel zlib zlib-devel openssl openssl-devel
出现下图就代表安装成功了
2. 安装nginx
1. 上传压缩包
2. 解压文件
3. 配置
进入目录nginx-1.15.10/
使用默认配置./configure
4. 编译和安装
make && make install
5. 查看安装位置
whereis nginx
6. 启动、停止nginx
先通过/usr/local/nginx/sbin进入目录
然后./nginx启动
./nginx -s reload 重新加载
./nginx -s quit 此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
7. 查询nginx进程
ps -ef|grep -v grep|grep nginx
8. 访问nginx
访问的时候需要关闭虚拟机防火墙或者放行80端口号
此时nginx就安装成功了
二、配置
1. 配置文件(nginx.conf)
第一部分:全局块
从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。
比如第一行
worker_processes 1;
这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约
第二部分:events 块
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。
events {
worker_connections 1024;
}
上述例子就表示每个 work process 支持的最大连接数为 1024.
这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。
第三部分:http 块
这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
需要注意的是:http 块也可以包括 http 全局块、server 块。
server{
listen 80; nginx 使用的端口号是80
server_name localhost; (虚拟机IP地址)
}
2. 反向代理:
2. 1
访问 192.168.159.88(虚拟机IP地址)的时候直接指向的是 http://192.168.159.88:8080/tradetype
2. 2
根据访问的路径跳转到不同端口的服务器中
student http://192.168.159.34:8080
admin http://192.168.159.34:8081
location 指令说明 该指令用于匹配 URL。 语法如下:
location [ = | ~ |~* |^~] uri{
}
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。 注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
3. 配置负载均衡
nginx 服务器
准备工作:
- 两个tomcat服务器
- 将服务器中的页面改成不一样的用于区分
- 验证两个tomcat是否能够正常的启动
- 配置nginx
修改nginx.conf文件
upstream 上游
负载均衡的策略配置
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
2、weight
weight 代表权重默认为 1,权重越高被分配的客户端越多
指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况
3、ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。 例如:
upstream aaa{
ip_hash;
server 192.168.159.34:8080 ;
server 192.168.159.34:8081 ;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream aaa{
fair;
server 192.168.159.34:8080 ;
server 192.168.159.34:8081 ;
}
4. 动静分离
Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和 静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面,Tomcat 处理动态页面。动静分离从目前实现角度来讲大是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;
配置静态资源:
约定:静态资源 location / {}
location /dist {
root /usr/pro;
index index.html index.htm;
}
// location 路径
路径一定要包含root里面
访问dist的时候 ip:80/root目录/dist
location /aaa {
alias /usr/pro/dist;
index index.html index.htm;
}
//alias相当于别名
alias 访问aaa的时候 其实访问的是 /usr/pro/dist
location /名字的时候
必须在root对应的目录下面有这个文件夹,没有这个文件夹就不能运行成功
5. 配置开机启动
切换到/lib/systemd/system/目录,创建nginx.service文件vim nginx.service
cd /lib/systemd/system/
vi nginx.service
添加内容如下:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置之后需要使文件生效
systemctl daemon-reload
退出并保存文件,执行systemctl enable nginx.service使nginx开机启动
#开机自启动
systemctl enable nginx.service
#停止开机自启动
systemctl disable nginx.service
#查询当前状态
systemctl status nginx.service
#启动服务
systemctl start nginx.service
#重新启动服务
systemctl restart nginx.service
#停止服务
systemctl stop nginx.service
#重新加载配置
systemctl reload nginx.service