一、Nginx服务基础
1.概述
- 一款高新能、轻量级Web服务软件
- 稳定性高
- 系统资源消耗低
- 对HTTP并发连接的处理能力高
- 单台物理服务器可支持30 000~50 000个并发请求。
2.Nginx和Apache的优缺点比较
nginx相对于apache的优点∶
- 轻量级,同样起web服务,比apache占用更少的内存及资源高并发,nginx处理请求是异步非阻塞的,而apache是阻塞型的在高并发下,nginx能保持低资源低消耗高性能高度模块化的设计。
- 编写模块相对简
apache相对于nginx的优点∶
- Rewrite比nginx的rewrite强大 模块多,基本想到的都可以找到少bug, nginx的bug相对较超稳定
存在的理由:一般来说,需要性能的web服务,用nginx。若不需要性能只求稳定,就选用apache。 Nginx处理动态请求是弱项,一般动态请求要Apache去做Nginx只适合处理静态网页或反向代理。
Nginx的进程
Nginx有两个进程:
master process:主进程(守护进程),用来管理工作进程。
worker process:工作进程,用来处理用户的请求。
二、编译安装nginx服务
1、安装依赖包
2.下载安装包
3.解压安装包
4.指定安装路径,用户,组
5.编译和安装
6.做个软链接
7.检查配置文件
8.查看pid号
9.停止nginx服务
10.重载服务
11.日志分割
12.创建Nginx 自启动文件
二.Nginx服务的主配置文件
2.1主配置文件位置:/usr/local/nginx/conf/nginx.conf
/usr/local/nginx/conf/ 目录下:
- nginx.conf 是主配置文件
- nginx.conf.default 是主配置文件的备份文件
2.2主配置文件中有六个主要模块:
1、全局块:全局配置,对全局生效。
2、events块:配置影响Nginx服务器与用户的网络连接。
3、http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。
4、server块:配置虚拟主机的相关参数,一个http块中可以有多个server 块。每个 server 块就相当于一个虚拟主机。。
5、location块:用于配置匹配的url,一个server块中可以有多个location块。
6、upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。
2.3关闭版本或修改版本
2.4修改启动的进程数
2.5nginx进程的优先级(work进程的优先级)
nice的优先级是 -20 到 19
worker_priority 0;
#工作进程优先级,-20~20(19)
2.6调试work进程打开的文件的个数
-
所有worker进程能打开的文件数量上限,包括:Nginx的所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接。
-
另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制.最好与ulimit -n 或者limits.conf的值保持一致。
三.访问状态配置统计
3.1 查看nginx安装模块,是否包含HTTP_STUB_STATUS 模块
3.2 修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置
在网页中输入 192.168.37.100/status测试
注:
Active connections: 3 #当前活动链接数
server accepts handled requests 3 3 8 #表示已经处理的连接信息,三个数字表示已处理的连接数、成功的TCP握手次数、已处理的请求数 Reading: 0 Writing: 1 Waiting: 2。
3.3监控当前nginx并发量
可curl -Ls http://192.168.37.100/status 结合awk来写shell脚本,如果链接数过高报警
四.基于授权的访问控制(只有指定用户能访问)
设置只有指定用户才可以访问该网页,想要对哪个路径进行限制,就在location下添加路径和认证配置。
五.基于客户端的访问控制
设置只有指定IP/IP段才可以访问该网页,或指定IP/IP段不能访问。想要对哪个路径进行限制,就在location块下添加路径和控制规则。
六.配置nginx虚拟主机
6.1 基于域名的 Nginx 虚拟主机
6.1.1为虚拟主机提供域名解析
6.1.2为虚拟主机准备网页文档
6.1.3修改Nginx的配置文件
配置两个server块,分别设置不同的域名。
6.2 基于ip地址的nginx虚拟主机
两个server块,设置不同的监听地址即可,其他跟基于域名都一样。
例如:
- listen 192.168.37.100:80 [www.hr.com]
- listen 192.168.37.101:80 [www.xiaoze.com]
6.2.1 设置临时ip,以达到一台服务器拥有多个ip地址,不同ip访问不同的服务页面
6.2.2 修改配置文件,之后重启服务,访问测试。
.
6.3基于端口的nginx虚拟主机
修改ip后面的端口即可