一、基本概念:
- 反向代理
- 负载均衡
- 动静分离
- 高可用
二、下载安装
- Windows环境官网直接下载安装:nginx.org/en/download…
- Linux下Nginx的安装(centOS):
- 安装nginx前的环境准备,需要安装以下相关依赖:pcre、openssl、zlib
安装步骤:
1.安装gcc gcc-c++(新环境下需要安装gcc)
$ yum install -y gcc gcc-c++
2.安装pcre
`$ cd /usr/local/`
`$ wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz`
`$ tar -zxvf pcre-8.36.tar.gz`
`$ cd pcre-8.36`
`$ ./configure #检查工作`
`$ make && make install #编译安装`
`$ pcre-config --version #查看版本号`
复制代码
3.安装openSSL库
`$ cd /usr/local/`
`$ wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz`
`$ tar -zxvf openssl-1.0.1j.tar.gz`
`$ cd openssl-1.0.1j`
`$ ./config`
`$ make && make install`
复制代码
4.安装zlib库存
`$ cd /usr/local/`
`$ wget http://zlib.net/zlib-1.2.11.tar.gz`
`$ tar -zxvf zlib-1.2.11.tar.gz`
`$ ./configure`
`$ make && make install`
复制代码
注释:openssl和zlib可以一步下载:
yum-y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
复制代码
- 安装Nginx:
1.下载安装包
2.解压缩
3.进入解压缩目录,执行 ./configure
4.make && make install
$ cd /usr/local/
$ wget http://nginx.org/download/nginx-1.8.0.tar.gz
$ tar -zxvf nginx-1.8.0.tar.gz
$ cd nginx-1.8.0
$ ./configure
$ make && make install
复制代码
三、Nginx常用命令:
进入/nginx/sbin目录
查看版本命令:./nginx -v
启动命令:./nginx
关闭命令:./nginx -s stop
重新加载配置文件:./nginx -s reload
复制代码
四、开放防火墙端口:
`查看开放的端口:`
firewall-cmd --list-all
`设置开放的端口号`
firewall-cmd --add-service=http -permanent
firewall-cmd --add-port=80/tcp -permanent
`重启防火墙`
firewall-cmd -reload
复制代码
五、配置文件:
配置文件主要由全局块、events块、http块组成,其中,http块又由http全局块、server块组成,一个http块可以有多个server块。
5.1反向代理配置:
案例一:
案例二:
访问http://192.168.3.70:9001/edu/直接跳转到127.0.0.1:8001
访问http://192.168.3.70:9001/gov/直接跳转到127.0.0.1:8002
5.2负载均衡
简单来说,就是一个请求由不同的tomcat进行处理,默认以轮询方式处理请求。
- 几种常用轮询策略:
1、默认:轮询(weight=1)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2.weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream myserver {
server 192.168.3.70:8080 weight=1;
server 192.168.3.70:8081 weight=2;
}
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。后端服务器down掉,要手工down掉。
upstream myserver{
ip_hash;
server 192.168.3.70:8080;
server 192.168.3.70:8081;
}
4、fair(第三方插件)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream myserver{
fair;
server 192.168.3.70:8080;
server 192.168.3.70:8081;
}
5.url_hash(第三方):
按访问URL的hash结果进行分配请求,使每个URL定向到同一个后端服务器,后端服务器为缓存时比较有效。
在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用hash算法。
upstream myserver{
hash $request_uri;
hash_method crc32;
server 192.168.3.70:8080;
server 192.168.3.70:8081;
}
复制代码
5.3.动静分离(动态资源、静态资源分开放在不同服务器上)
测试访问:http://192.168.3.70/img/01.jpg
可加入expires作为缓存,3d即三天
5.4,高可用(预防Nginx宕机,准备好Nginx备用服务器)
需要安装keepalived,相当于一个路由,它会通过脚本检测当前nginx的存活状态,如果主nginx宕机了,会自动切换到备用nginx。
注意,对外访问的是虚拟ip,虚拟ip要绑定到主用和备用nginx服务器
- 配置高可用的准备工作:
(1)需要两台服务器:192.168.3.70和192.168.3.71
(2)在两台服务器安装nginx
(3)在两台服务器安装keepalived
yum install keepalived -y #安装命令
rpm -q -a keepalived #查看是否安装成功,安装之后,在etc里面生成目录keepalived,有文件keepalived.conf,用于高可用主从配置
systemctl start keepalived.service #启动keepalived命令
systemctl stop keepalived.service #关闭keepalived命令
复制代码
- MASTER和BACKUP配置:
略...
复制代码
- keepalived配置参数解释:
六、Nginx原理:
1.master和worker
一个master多个worker的好处:利于热部署,因为每个worker都是一个独立的进程。
如果Nginx装在windows操作系统下,就无法使用IO多路复用机制,无法使Nginx的
效率发挥到最大。worker数和CPU核心数相等是较为适宜的。
复制代码
2.连接数:work_connection:
问题一:客户端发送请求,占用了work的几个连接数
答案:2个或者4个
问题二:Nginx有一个master,四个worker,每个worker支持的最大连接数是1024,请问支持的最大并发数是多少?
答:(1)访问静态资源的最大并发数:4*1024/2
(2)如果是http作为反向代理来说,支持的最大并发数:4*1024/4
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END