1.关于Nginx
Nginx的关键特性
1.支持高并发
2.内存资源消耗低
3.高扩展性(模块化设计)
4.高可用性(master-worker)
Nginx运行架构
注意
默认情况下,Nginx会创建和服务器cpu核心数量相等的worker进程
worker进程之间相互独立,其中一个故障不会影响其他进程
Nginx关键工作机制
模块化
反向代理
负载均衡功能
安装Nginx
bash
[root@localhost ~]# yum insatll nginx -y
当然你也可以选择编译安装
常见的Nginx命令
注意
重启与重新加载的区别
bash
1.
重启(Restart)Nginx:
当你执行重启操作时,Nginx会先停止当前正在运行的进程,然后重新启动一个新的进程。
重启会导致所有当前的连接被关闭,正在处理的请求可能会中断。
重启操作通常用于应用新的配置文件或者进行系统升级。
重启会消耗更多资源,因为它涉及到关闭旧进程和启动新进程的过程。
2.
重新加载(Reload)Nginx:
重新加载操作允许Nginx在不中断当前服务的情况下重新读取配置文件。
当执行重新加载命令时,Nginx会启动一个新的主进程,然后让旧的主进程优雅地关闭,同时新的主进程接管旧进程的工作。
重新加载不会中断现有的连接和正在处理的请求,因此对用户的影响最小。
重新加载操作通常用于更新配置文件而不影响当前服务。
相关服务文件
Nginx服务主配置文件
配置文件详解
实验1
安装好后启动查看进程
测试:在浏览器中输入nginx服务器ip地址
注意关防火墙
1.网站静态资源访问
需求:通过域名 www.test.com,可访问到 nginx 服务中指定的主页页面,同时可访问到指定的图片文件及 txt 文档。
首先创建静态资源访问
bash
mkdir -p /data/Nginx
在 Nginx 中创建主页文件 index.html,并输入内容"hello,openEuler",具体如下:
在 Nginx 目录中创建文件 test.txt,并输入内容"hello,Nginx",具体如下:
找个图片放到该目录下
在/etc/nginx/conf.d 目录中创建关于新静态网站的配置文件 static.conf,并配置以下内容:
检查一下
正确后重新加载服务--nginx -s reload
浏览器访问
查看文本
查看图片
实验2:虚拟主机配置
基于不同ip,不同端口,不同地址访问
1.基于IP
添加两个ip
在/etc/nginx/conf.d/下创建一个以conf结尾的文件
bash
server{
listen 172.25.250.139:80;
server_name localhost;
location /{
root /data/nginx1;
index index.html;
}
}
server{
listen 172.25.250.140:80;
server_name localhost;
location /{
root /data/nginx2;
index index.html;
}
}
server{
listen 172.25.250.141:80;
server_name localhost;
location /{
root /data/nginx3;
index index.html;
}
}
2.基于不同端口
我们先加个IP
准备工作
bash
[root@localhost data]# mkdir 8{1,2,3}
[root@localhost data]# ll
total 24
drwxr-xr-x 2 root root 4096 Aug 1 10:26 81
drwxr-xr-x 2 root root 4096 Aug 1 10:26 82
drwxr-xr-x 2 root root 4096 Aug 1 10:26 83
drwxr-xr-x 2 root root 4096 Aug 1 10:09 nginx1
drwxr-xr-x 2 root root 4096 Aug 1 10:09 nginx2
drwxr-xr-x 2 root root 4096 Aug 1 10:09 nginx3
[root@localhost data]# echo "81" > /data/81/index.html
[root@localhost data]# echo "82" > /data/82/index.html
[root@localhost data]# echo "83" > /data/83/index.html
配置文件
bash
server{
listen 172.25.250.142:81;
server_name localhost;
location /{
root /data/81;
index index.html;
}
}
server{
listen 172.25.250.142:82;
server_name localhost;
location /{
root /data/82;
index index.html;
}
}
server{
listen 172.25.250.142:83;
server_name localhost;
location /{
root /data/83;
index index.html;
}
}
基于不同地址
bash
server{
listen 172.25.250.139:80;
server_name www.hehe.com;
location /{
root /data/hehe;
index index.html;
}
}
server{
listen 172.25.250.139:80;
server_name www.haha.com;
location /{
root /data/haha;
index index.html;
}
}
server{
listen 172.25.250.139:80;
server_name www.xixi.com;
location /{
root /data/xixi;
index index.html;
}
}
修改本地hosts
就可以访问
3.访问控制
顺序很重要,最严格的规则放在前面
1.基于ip
bash
指令
allow 允许
deny 拒绝
我们先创建五个主机
主机名 | IP |
---|---|
node1 | 172.25.250.139/24 |
node2 | 172.25.250.140/24 |
node3 | 172.25.250.142/24 |
node4 | 172.25.250.141/24 |
node5 | 172.25.250.143/24 |
我们拒绝node2访问
配置文件
bash
server{
listen 80;
server_name locahost;
location /{
root /data/nginx;
index index.html;
deny 172.25.250.140;
allow 172.25.250.0/24;
deny all;
}
}
我们可以得到
node2
其他
- 注意!!!!顺序 :从上至下逐条匹配,一旦匹配后面就不管了
2.基于http的基本认证
bash
auth_basic
auth_basic_user_file
编写规则
bash
server{
listen 80;
server_name locahost;
location /{
root /data/nginx;
index index.html;
auth_basic "my site";
auth_basic_user_file /data/nginx/.userpwd;
}
}
下载httpd-tools
重启测试
输入密码后,正常访问
负载均衡留到后面,集群复习