安装:
下载:http://nginx.org/en/download.html
然后用工具发送到linux,并解压 tar -xvf nginx-1.16.1.tar.gz
需要环境:
- gcc:yum install gcc-c++ 安装nginx需要先将官网下载的源码进行编译
- PCRE:yum install -y pcre pcre-devel 是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式
- zlib:yum install -y zlib zlib-devel zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip
- openssl: yum install -y openssl openssl-devel 一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议
进入解压目录检测:./configure
make
make install
进入路径:cd /usr/local/nginx/sbin
启动:./nginx
查看进程:ps -ef|grep nginx
访问80端口
命令:
- .查看版本号:./nginx -v
- 停止:./nginx -s stop
- 启动:./nginx
- 重加载:./nginx -s reload
配置:
配置文件路径:usr/local/nginx/conf/nginx.conf
三部分组成:
- 全局块
- events块
- http块(全局server块,location块)
反向代理:
任务1:请求一个路径,然后通过Nginx访问到部署的服务
坑:proxy_pass的路径要与日志里的匹配,不能是127.0.0.1
访问日志: access.log
配置:
server {
listen 8001;
server_name 192.168.32.128;
location / {
proxy_pass http://192.168.32.1:81;
}
任务2:
访问路径带二级目录的
坑:注意底下配置最后一个有 / ,第一个没有
因为我的项目结构是这样的
请求路径配置:
edu后面没/,所以在配置server时最后面也不能有/
上图:
配置:
server {
listen 8004;
server_name 192.168.32.128;
location ~ /edu {
proxy_pass http://192.168.32.1:81;
}
location ~ /edu/ {
proxy_pass http://127.0.0.1:81;
}
}
负载均衡:
1.轮询
配置:
upstream myserver{
server 192.168.32.1:81;
server 192.168.32.1:8003;
}
server {
listen 8005;
server_name 192.168.32.128;
location / {
proxy_pass http://myserver;
}
}
2.weight
默认为1 ,权越大,分配越多
3.ip_hash
每个请求按ip的hash访问,可以解决session共享问题
4.fair
按照后端响应时间分配
动静分离:
把动态请求和静态请求分开
准备工作:
配置: autoindex是展示目录 直接请求img
expires :缓存时间
server {
listen 8006;
server_name 192.168.32.128;
location /htm/ {
root /data/;
}
location /img/ {
root /data/;
autoindex on;
}
}
高可用集群:
nginx可能会宕机
- 需要俩个虚拟机环境
- 安装keepalived yml install keepalived -y 检查:rmp -q -a keepalived
主备模式
router_id : 在 etc/host 里配置
script 脚本内容:
配置文件 : 路径 etc/keepalived/keepalived.conf
虚拟ip
原理:
一个master多个worker
好处:
- 支持热部署 :./nginx -s reload
- 独立进程,不需要加锁
- 其中一个worker胡问题,其他worker继续进行争抢,不会造成中断
设置worker数量: 与服务器cpu数量相等
因为Nginx核redis采用的都是IO多路复用机制
发送一个请求占用worker连接数:
- 普通静态访问 2个
- 反向代理 4个
最大支持连接数:worker数*单个worker连接数 4*1024
支持最大并发数
- 普通静态访问 最大连接数/2
- 反向代理 最大连接数/4