一、nginx简介
**概念 **
** **Nginx是一款轻量级HTTP服务器,也是一款邮箱代理服务器,同时具有反向代理、通用TCP/UDP代理的功能。
Nginx可以运行x86、ARM等多种平台上,同时支持Linux、Windows等主流的操作系统。
特点
支持高并发
单机Nginx可支持十万级的并发连接,经过优化后可最高支持百万级并发连接
内存资源消耗低
在同级web服务器中,Nginx占用的内存最少,一万非活跃的httpkeep-alive连接仅消耗2.5M内存
高扩展性
和Apache一样,Nginx采用模块化设计,并支持非常丰富的第三方模块
高可靠性
Nginx采用master-worker模式,如果worker出现故障,master可以快速开启一个新的worker来提供服务
二、nginx架构
主进程:master
- 检查nginx配置是否正确
- 创建、监控worker进程的数量和状态
- 接收对nginx的管理指令,并作出对应操作
工作进程:worker
- 处理用户请求
- 接收master发来的指令,并做对应操作
注意:默认情况下,nginx会建立和服务器CPU核心数相等的worker进程,woker进程之间相互独
立,若一个进程故障不会影响其它进程
三、部署nginx
1.nginx配置文件
[root@server ~]# cd /etc/nginx
[root@server nginx]# tree
.
├── conf.d 子配置文件 /etc/nginx/conf.d/*.conf
├── default.d
├── fastcgi.conf
├── fastcgi.conf.default
├── fastcgi_params
├── fastcgi_params.default
├── koi-utf
├── koi-win
├── mime.types
├── mime.types.default 样例文件
├── nginx.conf 主配置文件
├── nginx.conf.default 样例文件
├── scgi_params
├── scgi_params.default
├── uwsgi_params
├── uwsgi_params.default
└── win-utf2 directories, 15 files
网页默认目录:/usr/share/nginx/html
访问日志:/var/log/nginx/access.log
错误日志:/var/log/nginx/error.log
#/usr/share/nginx/modules/*.conf 配置影响Nginx的核心功能和模块行为。 生效范围:这些配置文件中的设置将在Nginx启动时加载,并且对整个Nginx服务器的操作都有效。它们通常用于定义Nginx模块的行为,而不是特定服务或location的配置。
#/etc/nginx/conf.d/*.conf 配置影响特定的虚拟主机和服务配置。 这个 include 指令位于 http 块内部,通常 用于包含定义了虚拟主机(server blocks)和服务配置的文件。每个 .conf 文件可以定义一个或多个服务器块(server blocks),这些服务器块可以监听不同的端口、处理不同的域名以及提供不同的网站内容。 生效范围:这些配置文件中的设置仅对它们各自定义的虚拟主机或服务有效。例如,如果你在 /etc/nginx/conf.d/ 目录下有一个名为 example.com.conf 的文件,那么该文件中的配置只会应用于 example.com 这个域名。
2.主配置文件
结构
分析
- 层级结构图
四.虚拟主机配置实战
1.修改端口、默认目录、默认文件访问web页面
(1).通过不同端口访问同一web页面
主配置文件中添加监听端口 listen 666;
测试主机128
(2).通过不同默认目录访问同一页面
测试:
(3).通过不同文件访问web页面
测试:
2.基于不同端口、不同ip、不同域名访问不同页面
(1)基于不同端口访问不同页面
在子配置文件中配置:
测试:
在主配置文件中配置:
测试:
(2)基于不同目录访问不同页面
测试:
(3)基于不同ip访问不同页面
或者这么写 测试:
(4)基于不同域名访问不同页面
客户端手动配置IP地址与域名的映射关系,再进行测试:
3.访问控制
(1)搭建密码验证功能访问网站数据
windows打开浏览器输入192.168.31.128时有验证密码的对话框弹出:
Linux客户端测试:
(2)基于不同用户的访问控制
1.安装nginx、httpd-tools
2.创建存储密码的文件,增强访问控制
htpasswd -cb /etc/nginx/passwd 用户名 密码
3.设置访问网站是需要验证密码
4.重启服务,测试
测试:
(3)基于不同用户不同ip访问:
客户端测试:
(4)基于源ip的访问控制
是一种网络安全机制,用于限制或允许特定 IP 地址或地址段对网络资源的访问。
允许所有主机访问 allow all;
测试:
4.使用nginx的http_ssl模块建立加密认证网站
**配置文件: **
证书文件:/……/xxxx.crt
私钥文件:/……/xxxx.key
(1)搭建nginx+ssl的加密认证web服务器
1.生成秘钥
2.制作证书
3.除去口令
4.修改配置文件,将存储证书、秘钥文件目录加到配置文件中
5.重启服务并进行测试
测试:浏览器输入https://192.168.31.128 ,点击高级--> 接收风险继续
证书查看:
(2)组建多个子目录网站
比如:www.openlab.com/file1 www.openlab.com/file2
测试:
2.https://www.openlab.com/file2 -->高级 --> 接收风险继续
版权归原作者 酥暮沐 所有, 如有侵权,请联系我们删除。