复习Nginx

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

重启测试

输入密码后,正常访问

负载均衡留到后面,集群复习

相关推荐
袁煦丞 cpolar内网穿透实验室4 分钟前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar
AZ996ZA14 分钟前
自学linux的第二十一天【DHCP 服务从入门到实战】
linux·运维·服务器·php
神梦流1 小时前
GE 引擎的非标准数据流处理:稀疏张量与自定义算子在图优化中的语义保持
linux·运维·服务器
兜兜转转了多少年2 小时前
从脚本到系统:2026 年 AI 代理驱动的 Shell 自动化
运维·人工智能·自动化
Lsir10110_2 小时前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
Doro再努力3 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
全栈工程师修炼指南3 小时前
Nginx | stream content 阶段:UDP 协议四层反向代理浅析与实践
运维·网络·网络协议·nginx·udp
Lsir10110_3 小时前
【Linux】进程信号(上半)
linux·运维·服务器
开开心心就好4 小时前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
火车叼位4 小时前
脚本伪装:让 Python 与 Node.js 像原生 Shell 命令一样运行
运维·javascript·python