1、入门
1.1、什么是Nginx?
- 高性能的HTTP和反向代理的web服务器
- 支持热部署,数个月不间断运行
- 占有内存少,并发能力强
- 专为性能优化而开发非常注重效率,能经受高负载的考验
- 有报告表明能支持高达5w的并发数
1.2、反向代理
正向代理:
- Nginx不仅可以做反向代理实现负载均衡,还能做正向代理进行上网等功能。
- 如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器,这种代理服务称为正向代理
?
反向代理:
- 客户端对代理无感知的,因为客户端不需要任何配置就可以访问
- 我们只需将请求发送到反向代理服务器,由ta去选择目标服务器获取数据后,返回给客户端
- 此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理的地址,隐藏真实服务器的IP
1.3、负载均衡
有多个真实服务器,请求会先经过代理服务器,然后由某种算法合理分配到其中的一个。
1.4、动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器解析,降低当服务器的压力
2、使用
2.1、安装
环境要求:
- pcre-8.37.tar.gz
- openssl-1.0.1t.tar.gz
- zlib-1.2.8.tar.gz
- nginx-1.11.1.tar.gz
Nginx中文官网:https://www.nginx.cn/install
2.2、常用命令
- 查看版本号:
./nginx -v - 停止服务:
./nginx -s stop - 开启服务:
./nginx - 查看是否开启:
ps -ef | grep nginx - 重加载服务:./nginx -s reload
2.3、nginx.conf
全局块
- 主要设置一些影响nginx整体运行的指令
- 主要包括:
- 用户组
- 允许生成的workere process数
- 进程PID存放路径
- 日志路径和类型
- 配置文件的引入等
- worker_processes
- 值越大,能处理的并发量越多
- 会受到硬件和软件等设备的约束
events块:
- 主要配置Nginx与用户的网络连接的指令
- 主要包括:
- 是否开启对多
- work process下的网络连接进行序列化
- 是否允许同时接收多个网络连接
- 选取哪种事件驱动模型来处理连接请求
- 每个work proess可以同时支持的最大连接数
- worker_connnections:每个work process支持的最大连接数
http块:
-
包括http全局 块和server 块 -
http全局块指令:
- 文件引入
- MIME-TYPE定义
- 日志自定义
- 连接超时时间
- 单链接请求数上限等
-
server块:
- 与虚拟主机密切相关
- 虚拟主机从用户角度看,与一台独立硬件主机完全一样,该技术的产生是为了节省互联网服务器硬件成本
- http块可包括多个server块,而每个server块据相当于一个虚拟主机
- 每个server块分为
全局server块 以及多个location块 - 全局server块:
- location块
- 主要作用是基于Nginx服务器接收到的请求字符串(例如server_name/uri-string),对虚拟主机名称(也能使IP别名)之外的字符串(例如/uri-string)进行匹配
- 对特定的请求进行处理
- 地址定向
- 数据缓存
- 应答控制
- 第三方模块的配置
2.4、反向代理
假设有三个域名:
- www.test1.com
- www.test2.com
- www.test3.com
nginx.conf配置:
server{
listen 80;
server_name www.test1.com;
location / {
root html;
proxy_pass http://ip:端口1;
index index.html index.htm;
}
}
server{
listen 80;
server_name www.test2.com;
location / {
root html;
proxy_pass http://ip:端口2;
index index.html index.htm;
}
}
server{
listen 80;
server_name www.test3.com;
location / {
root html;
proxy_pass http://ip:端口3;
index index.html index.htm;
}
}
2.5、负载均衡
nginx.conf:
server{
listen 80;
server_name ip;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
}
分配策略:
-
轮询(默认):
-
weight:
-
ip_hash:
-
fair(第三方):
2.7、动静分离
动静分离有两种方式:
有两个文件
/data/image/a.jpg
/data/www/b.html
nginx.conf配置:
server{
listen 80;
server_name ip;
location /www/ {
root /data/;
index index.html index.htm;
}
location /image/ {
root /data/;
autoindex on;
}
}
2.8、高可用集群
-
需要两台nginx服务器 112.124.32.136 121.40.40.202 -
需要keepalived
sudo apt install keepalived -y
-
需要虚拟ip
|