文章目录
- 一、Nginx简介
- 二、Nginx 相对于 Apache 的优点
- 三、nginx 应用场景
- 1.同步与异步
- 2.阻塞与非阻塞
- 四、Nginx安装及运行控制
- 1、编译安装
- 2、访问控制
- 1、访问状态统计
- 2、基于授权的访问控制
- 3、基于客户端的访问控制
- 4、基于域名的 Nginx 虚拟主机
- 5、基于IP 的 Nginx 虚拟主机
- 6、基于端口的 Nginx 虚拟主机
- 总结
一、Nginx简介
Nginx是一款轻量级的Web服务器及电子邮件(IMAP/POP3)代理服务器,
最大的优点是它的稳定性和低系统资源消耗,以及对HTTPT并发连接的高出力能力,单台物理服务器可支持30000~50000个并发请求。
二、Nginx 相对于 Apache 的优点
轻量级,同样是 web 服务,比 Apache 占用更少的内存及资源 ;
高并发,Nginx 处理请求是异步非塞的,而 Apache 则是阻塞型的,在高并发下 Nginx 能保持低资源低消耗高性能;
高度模块化的设计编写模块相对简单;社区活跃,各种高性能模块出品迅速。
三、nginx 应用场景
1、静态服务器 (图片、视频服务、文本)
2、动态服务
3、反向代理, 负载均衡
4、缓存服务
1.同步与异步
同步指的是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。异步的概念和同步相对,当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。
2.阻塞与非阻塞
阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式。当数据没有准备的时候,阻塞需要等待调用结果返回之前,进程会被挂起,函数只有在得到结果之后才会返回。非阻塞和阻塞的概念相对,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
小结:
阻塞和非阻塞是指进程访问的数据如果尚未就绪,进程是否需要等待,简单说这相当于函数内部的实现区别,也就是未就绪时是直接返回还是等待就绪。
同步和异步是指访问数据的机制,同步一般指主动请求并等待I/O操作完毕的方式,当数据就绪后在读写的时候必须阻塞,异步则指主动请求数据后便可以继续处理其它任务,随后等待I/O,操作完毕的通知,这可以使进程在数据读写时也不阻塞。
四、Nginx安装及运行控制
1、编译安装
1.关闭防火墙、安全机制
2.安装依赖包
3.创建运行用户与组
4.解压安装包,编译安装
5.添加Nginx系统服务
2、访问控制
1、访问状态统计
1.先使用命令usr/local/nginx/sbin/nginx -V 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块:
2.修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置
3.重启服务,访问测试
systemctl restart nginx
浏览器访问 http192.168.40.103/status
Active connections :表示当前的活动连接数;
server accepts handled requests :表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数、 已处理的请求数。
刷新页面观察页面变化
2、基于授权的访问控制
1.生成用户密码认证文件
yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db swxg
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db
2.修改主配置文件相对应目录,添加认证配置项
3.重启服务,访问测试
浏览器访问 http192.168.40.103
成功登录
3、基于客户端的访问控制
deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。
修改配置文件vim /usr/local/nginx/conf/nginx.conf
4、基于域名的 Nginx 虚拟主机
1、为虚拟主机提供域名解析
echo “192.168.40.103 www.kgc.com www.benet.com” >> /etc/hosts
2、为虚拟主机准备网页文档
3、修改配置文件
vim /usr/local/nginx/conf/nginx.conf
设置域名www.kgc.com
设置域名www.czc.com
4、重启服务,访问测试
systemctl restart nginx
浏览器访问
http://www.kgc.com
http://www.czc.com
5、基于IP 的 Nginx 虚拟主机
1、设置虚拟网卡ifconfig ens33:0 192.168.40.104 netmask 255.255.255.0
ip a查看
2、修改配置文件
vim /usr/local/nginx/conf/nginx.conf
3、重启服务,访问测试
systemctl restart nginx
浏览器访问
http://192.168.40.103
http://192.168.40.104
6、基于端口的 Nginx 虚拟主机
1、修改配置文件
vim /usr/local/nginx/conf/nginx.conf
2、重启服务,访问测试
systemctl restart nginx
浏览器访问
http://192.168.40.103:8080
http://192.168.40.104:8888
总结
LNMP平台的N表示Nginx,是一款轻量级的Web服务器软件,在高并发下 Nginx 能保持低资源低消耗高性能;
Nginx页面访问安全有基于授权和基于客户端两种方式。