Nginx
- 一、安装
- 1.1.Windows安装
- 1.2.Linux安装
- 1.3.常用命令
- 二、动静分离
- 三、反向代理
- 3.1.正向代理
- 3.2.反向代理
- 四、负载均衡
- 4.1.轮询
- 4.2.加权轮询
- 4.3.Ip hash
- 五、限流
- 六、缓存
- 七、黑白名单
Nginx是一个高性能的HTTP服务器和反向代理的web服务器,同时也提供IMAP,POP3,SMTP服务
特点:占用内存少,并发能力强,安装运行维护简单
一、安装
1.1.Windows安装
nginx/Windows-1.18.0,可以选择下载Stable version(稳定版本)
解压即可使用:注意解压目录不要带有中文
配置文件:conf/nginx.conf
运行访问:在安装目录cmd打开命令窗口,执行nginx.exe命令,浏览器输入http://localhost/访问
1.2.Linux安装
nginx/Windows-1.18.0,下载Stable version(稳定版本)
将下载好的文件上传到linux服务器上,这里选择使用虚拟机Vmware+centos7,上传工具使用finalshell
ls :查看nginx-linux-1.18.0.tar.gz是否上传成功
tar -zxvf nginx-linux-1.18.0.tar.gz:解压文件
cd nginx-linux-1.18.0:进入文件夹
./configure:执行配置文件
make:编译
如果在make时遇到“make: *** 没有规则可以创建“default”需要的目标“build”。 停止。”问题,那你大概率使用的不是root用户,要么换root用户,要么使用普通用户执行以下命令
yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
执行完命令后再次执行./configure和make命令
make install
whereis nginx:查看nginx所在目录
cd /usr/local/nginx:进入nginx目录
ls -l:会看见一个sbin,执行文件放在里面
cd sbin/:进入sbin
./nginx:启动
cat nginx.conf:查看配置文件
ipconfig:查看linux的ip
浏览器访问ip/80端口:http://192.168.44.132/80
如果不可以:1.查看80端口的防火墙有没有开 2.看远程服务器(阿里云、腾讯云)安全组的80端口也放开
1.3.常用命令
cd /usr/local/nginx/sbin 进入执行文件目录 cd /usr/local/nginx/conf/nginx.conf 修改配置文件
./nginx:启动
./nginx -s stop:停止
./nginx -s quit:安全退出
./nginx -s reload:重新加载配置文件(每次修改配置文件后都要执行)
ps aux|grep nginx:查看nginx进程
二、动静分离
动静分离(静态代理),Nginx是一个HTTP服务器,可以将服务器上的静态文件通过HTTP协议展现给客户端
软件开发中,一些请求是需要后台处理的,有些请求静态文件(css、html、jpg,js等文件)的是不需要经过后台处理的,让动态网站里面的动态网页根据一些规则将不变的资源和经常变的资源跟开,动静资源做好拆分后,就可以根据静态资源的特点将其做缓存操作,提高资源响应速度。
三、反向代理
3.1.正向代理
正向代理:代理客户端
3.2.反向代理
反向代理:代理服务器,无感知访问服务器资源,使服务部署上线更方便
四、负载均衡
负载均衡的两种策略:内置策略(轮询、加权轮询、Ip hash),扩展策略(天马行空)
4.1.轮询
有9个请求,代理3台服务器,1,4,7请求会转发到第一台服务器,2,5,8请求会转发到第二台服务器,3,6,7请求会转发到第三台服务器
4.2.加权轮询
设置服务器的权重,性能高的权重高,大部分请求都会转发到权重高的服务器上,很少一部分转发到权重低的服务器
4.3.Ip hash
主要来解决session不共享的问题:iphash对客户端请求的ip进行hash操作,根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理
但如果某台服务器挂了,session任然会丢失,所以不建议使用nginx实现session共享,比较常用的是Redis实现session共享