Nginx05-基础配置案例

零、文章目录

Nginx05-基础配置案例

1、案例需求

(1)有如下访问
  • http://192.168.119.161:8081/server1/location1 访问的是:index_sr1_location1.html
  • http://192.168.119.161:8081/server1/location2 访问的是:index_sr1_location2.html
  • http://192.168.119.161:8082/server2/location1 访问的是:index_sr2_location1.html
  • http://192.168.119.161:8082/server2/location2 访问的是:index_sr2_location2.html
(2)如果访问的资源不存在
  • 返回自定义的404页面
(3)将/server1和/server2使用各自配置文件
  • 将文件放到/home/www/conf.d目录下
  • 然后使用include进行合并
(4)为/server1和/server2各自创建访问日志

2、准备文件

(1)创建文件结构
# 创建 404 页面
touch /home/www/404.html# 创建 conf.d 目录
mkdir /home/www/conf# 创建两个配置文件
touch /home/www/conf/server1.conf
touch /home/www/conf/server2.conf# 创建 myweb 目录
mkdir /home/www/myweb# 创建 server1 目录和其子目录以及html文件
mkdir -p /home/www/myweb/server1/location1
mkdir -p /home/www/myweb/server1/location2touch /home/www/myweb/server1/location1/index_sr1_location1.html
touch /home/www/myweb/server1/location2/index_sr1_location2.html# 创建 server1 日志目录和日志文件
mkdir -p /home/www/myweb/server1/logs
touch /home/www/myweb/server1/logs/access.log# 创建 server2 目录和其子目录以及html文件
mkdir -p /home/www/myweb/server2/location1
mkdir -p /home/www/myweb/server2/location2touch /home/www/myweb/server2/location1/index_sr2_location1.html
touch /home/www/myweb/server2/location2/index_sr2_location2.html# 创建 server2 日志目录和日志文件
mkdir -p /home/www/myweb/server2/logs
touch /home/www/myweb/server2/logs/access.log# 创建完成整体文件结构如下
[root@localhost ~]# tree /home/www/
/home/www/
├── 404.html
├── conf
│   ├── server1.conf
│   └── server2.conf
└── myweb├── server1│   ├── location1│   │   └── index_sr1_location1.html│   ├── location2│   │   └── index_sr1_location2.html│   └── logs│       └── access.log└── server2├── location1│   └── index_sr2_location1.html├── location2│   └── index_sr2_location2.html└── logs└── access.log
(2)准备配置文件
  • 配置文件/usr/local/nginx/conf/nginx.conf内容如下
user www; # 配置允许运行 Nginx 工作进程的用户和用户组
worker_processes 2;  # 配置运行 Nginx 进程生成的 worker 进程数
error_log logs/error.log;  # 配置 Nginx 服务器运行对错误日志存放的路径
pid logs/nginx.pid;   # 配置 Nginx 服务器允许时记录 Nginx 的 master 进程的 PID 文件路径和名称
daemon on;   # 配置 Nginx 服务是否以守护进程方法启动events{accept_mutex on;   # 设置 Nginx 网络连接序列化,解决惊群multi_accept on;   # 设置 Nginx 的 worker 进程是否可以同时接收多个请求worker_connections 1024;   # 设置 Nginx 的 worker 进程最大的连接数use epoll;   # 设置 Nginx 使用的事件驱动模型
}http{include mime.types;   # 定义 MIME-Typedefault_type application/octet-stream;sendfile on;   # 配置允许使用 sendfile 方式运输keepalive_timeout 65;   # 配置连接超时时间# 配置请求处理日志格式log_format server1 '===>server1 access log';log_format server2 '===>server2 access log';include /home/www/conf/*.conf;  # 引用其他 conf 文件
}
  • 配置文件/home/www/conf/server1.conf内容如下
server{listen 8081;   # 配置监听端口和主机名称server_name localhost;access_log /home/www/myweb/server1/logs/access.log server1;   # 配置请求处理日志存放路径error_page 404 /404.html;   # 配置错误页面location /server1/location1{   # 配置处理 /server1/location1 请求的 locationroot /home/www/myweb;index index_sr1_location1.html;       # 这是 server1 下的 location1 的 index_sr1_location1.html}location /server1/location2{   # 配置处理 /server1/location2 请求的 locationroot /home/www/myweb;index index_sr1_location2.html;    # 这是 server1 下的 location2 的 index_sr1_location2.html}location = /404.html {   # 配置错误页面转向root /home/www;index 404.html;}
}
  • 配置文件/home/www/conf/server2.conf内容如下
server{listen 8082;   # 配置监听端口和主机名称server_name localhost;access_log /home/www/myweb/server2/logs/access.log server2;   # 配置请求处理日志存放路径error_page 404 /404.html;   # 配置错误页面,对404.html做了定向配置location /server2/location1{   # 配置处理 /server1/location1 请求的 locationroot /home/www/myweb;index index_sr2_location1.html;   # 这是 server2 下的 location1 的 index_sr2_location1.html}location /server2/location2{   # 配置处理 /server2/location2 请求的 locationroot /home/www/myweb;index index_sr2_location2.html;    # 这是 server2 下的 location2 的 index_sr2_location2.html}location = /404.html {   # 配置错误页面转向root /home/www;index 404.html;}
}
(3)准备页面文件
  • 页面文件/home/www/404.html内容如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body><h1>404 Not Found</h1>
</body>
</html>
  • 页面文件/home/www/myweb/server1/location1/index_sr1_location1.html内容如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body><h1>server1下面的loaction1下面的index_sr1_location1.html</h1>
</body>
</html>
  • 页面文件/home/www/myweb/server1/location2/index_sr1_location2.html内容如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body><h1>server1下面的loaction2下面的index_sr1_location2.html</h1>
</body>
</html>
  • 页面文件/home/www/myweb/server2/location1/index_sr1_location1.html内容如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body><h1>server2下面的loaction1下面的index_sr2_location1.html</h1>
</body>
</html>
  • 页面文件/home/www/myweb/server2/location2/index_sr1_location2.html内容如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body><h1>server2下面的loaction2下面的index_sr2_location2.html</h1>
</body>
</html>

3、访问测试

(1)重载配置文件
/usr/local/nginx/sbin/nginx -s reload
(2)访问页面
  • http://192.168.119.161:8081/server1/location1 访问的是:index_sr1_location1.html

image-20240926110844626

  • http://192.168.119.161:8081/server1/location2 访问的是:index_sr1_location2.html

image-20240926110903931

  • http://192.168.119.161:8082/server2/location1 访问的是:index_sr2_location1.html

image-20240926110925747

  • http://192.168.119.161:8082/server2/location2 访问的是:index_sr2_location2.html

image-20240926110938161

  • 访问一个不存在的页面http://192.168.119.161:8082/server3/location3,返回404页面

image-20240926111051977

4、配置成系统服务

(1)当前操作中的问题
  • 启动、关闭或重新加载nginx配置文件,都需要先进入到nginx的安装目录的sbin目录,然后使用nginx的二级制可执行文件来操作,相对来说操作比较繁琐。
  • 每次开机启动之后,都要启动一次nginx。
(2)配置成系统服务
  • /usr/lib/systemd/system目录下添加nginx.service文件
[Unit]
Description=nginx web service
Documentation=http://nginx.org/en/docs/
After=network.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true[Install]
WantedBy=default.target
  • 添加完成后如果权限有问题需要进行权限设置
chmod 755 /usr/lib/systemd/system/nginx.service
(3)系统命令操作Nginx
# 启动 Nginx
systemctl start nginx# 停止 Nginx
systemctl stop nginx# 重启 Nginx
systemctl restart nginx# 重新加载配置文件
systemctl reload nginx# 查看 Nginx 状态
systemctl status nginx# 开机启动
systemctl enable nginx# 关闭开启启动
systemctl disable nginx

5、Nginx命令配置到系统环境

(1)当前操作的问题
  • Nginx安装目录下的二级制可执行文件nginx的很多命令,要想使用这些命令前提是需要进入sbin目录下才能使用,很不方便。
  • 我们可以将该二进制可执行文件加入到系统的环境变量,这样的话在任何目录都可以使用nginx对应的相关命令。
(2)命令配置到系统环境
  • 修改/etc/profile文件
vim /etc/profile
# 在最后一行添加
export PATH=$PATH:/usr/local/nginx/sbin
  • 使之立即生效
source /etc/profile
(3)验证命令
  • 验证成功,任何地方均可使用命令
[root@localhost ~]# nginx -v
nginx version: nginx/1.26.2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/54551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YoloV9改进策略:BackBone改进|CAFormer在YoloV9中的创新应用,显著提升目标检测性能

摘要 在目标检测领域,模型性能的提升一直是研究者和开发者们关注的重点。近期,我们尝试将CAFormer模块引入YoloV9模型中,以替换其原有的主干网络,这一创新性的改进带来了显著的性能提升。 CAFormer,作为MetaFormer框架下的一个变体,结合了深度可分离卷积和普通自注意力…

计算机网络自顶向下(2)----socket编程

1.套接字 套接字是用于在计算机网络中进行通信的一种技术。它是操作系统提供的一种接口&#xff0c;通过该接口&#xff0c;应用程序可以通过网络连接进行数据的传输和接收。 套接字包含了一个IP地址和一个端口号&#xff0c;用于唯一标识一个网络连接。通过套接字&#xff0c;…

Ansible学习之ansible-pull命令

想要知道ansible-pull是用来做什么的&#xff0c;就需要了解Ansible的工作模&#xff0c;Ansible的工作模式有两种&#xff1a; push模式 push推送&#xff0c;这是Ansible的默认模式&#xff0c;在主控机上编排好playbook文件&#xff0c;push到远程主机上来执行。pull模式 p…

远程调用的问题以及eureka原理

目录 服务调用出现的问题 问题分析 解决方案&#xff08;eureka原理&#xff09; eureka&#xff08;两个角色&#xff09; eureka的解决方案 此过程出现的问题 eureka的作用 总结 服务调用出现的问题 服务消费者该如何获取服务提供者的地址信息&#xff1f;如果有多个…

系统架构设计师论文《论企业应用系统的数据持久层架构设计》精选试读

论文真题 数据持久层&#xff08;Data Persistence Layer&#xff09;通常位于企业应用系统的业务逻辑层和数据源层之间&#xff0c;为整个项目提供一个高层、统一、安全、并发的数据持久机制&#xff0c;完成对各种数据进行持久化的编程工作&#xff0c;并为系统业务逻辑层提…

【SpringBoot】基础+JSR303数据校验

目录 一、Spring Boot概要 1. SpringBoot介绍 2. SpringBoot优点 3. SpringBoot缺点 4. 时代背景-微服务 二、Spring Boot 核心配置 1. Spring Boot配置文件分类 1.1 application.properties 1.2 application.yml 1.3 小结 2. YAML概述 3. YAML基础语法 3.1 注意事…

【教程】57帧! Mac电脑流畅运行黑神话悟空

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 1、先安装CrossOver。网上有许多和谐版&#xff0c;可自行搜索。&#xff08;pd虚拟机里运行黑神话估计够呛的&#xff09; 2、运行CrossOver&#xf…

nvidia英伟达显卡高刷新显示器dp接口无法进入bios的解决办法

nvidia英伟达显卡高刷新显示器dp接口无法进入bios的解决办法 问题分析 在gtx20x0之前的显卡&#xff0c;如1050ti&#xff0c;window能正常使用dp接口&#xff0c;但进入bios就无法显示&#xff08;显示器无信号输入&#xff09; 问题解决 安装NVIDIA Graphics Firmware Upda…

SpringBoot上传图片实现本地存储以及实现直接上传阿里云OSS

一、本地上传 概念&#xff1a;将前端上传的文件保存到自己的电脑 作用&#xff1a;前端上传的文件到后端&#xff0c;后端存储的是一个临时文件&#xff0c;方法执行完毕会消失&#xff0c;把临时文件存储到本地硬盘中。 1、导入文件上传的依赖 <dependency><grou…

Vueron引领未来出行:2026年ADAS激光雷达解决方案上市路线图深度剖析

Vueron ADAS激光雷达解决方案路线图分析&#xff1a;2026年上市展望 Vueron近期发布的ADAS激光雷达解决方案路线图&#xff0c;标志着该公司在自动驾驶技术领域迈出了重要一步。该路线图以2026年上市为目标&#xff0c;彰显了Vueron对未来市场趋势的精准把握和对技术创新的坚定…

【瑞昱RTL8763E】刷屏

1 显示界面填充 用户创建的各个界面在 rtk_gui group 中。各界面中 icon[]表对界面进行描述&#xff0c;表中的每个元素代表一 个显示元素&#xff0c;可以是背景、小图标、字符等&#xff0c;UI_WidgetTypeDef 结构体含义如下&#xff1a; typedef struct _UI_WidgetTypeDef …

淘宝商品详情API接口多线程调用:解锁数据分析行业的效率新篇章

在数据分析行业&#xff0c;淘宝作为中国最大的在线购物平台&#xff0c;其商品详情数据具有极高的市场价值。然而&#xff0c;面对海量的数据&#xff0c;如何高效、稳定地获取这些数据&#xff0c;一直是数据分析师面临的重要挑战。本文将探讨如何通过多线程调用淘宝商品详情…

JavaSE——面向对象11:内部类(局部内部类、匿名内部类、成员内部类、静态内部类)

目录 一、内部类基本介绍 (一)内部类定义 (二)内部类基本语法 (三)内部类代码示例 (四)内部类的分类 二、局部内部类 三、匿名内部类(重要) (一)基本介绍 (二)基于接口的匿名内部类 (三)基于类的匿名内部类 (四)注意事项与使用细节 (五)匿名内部类的最佳实践——当…

UE4 材质学习笔记01(什么是着色器/PBR基础)

1.什么是shader 着色器是控制屏幕上每个像素颜色的代码&#xff0c;这些代码通常在图形处理器上运行。 现如今游戏引擎使用先进的基于物理的渲染和照明。而且照明模型模型大多数是被锁定的。 因此我们创建着色器可以控制颜色&#xff0c;法线&#xff0c;粗糙度&#xff0c;…

vue2 + View design 使用inputNumber设置默认值为undefined但展示数据为1且表单校验不通过的原因

文章目录 一、背景二、操作步骤1.复现前的准备工作&#xff08;1&#xff09;vue版本和view design 版本&#xff08;2&#xff09;创建一个组件&#xff08;组件中根据类型渲染不同的组件&#xff09;&#xff08;3&#xff09;在list.vue页面中引入组件&#xff0c;传入配置&…

于BERT的中文问答系统12

主要改进点 日志配置: 确保日志文件按日期和时间生成,便于追踪不同运行的记录。 数据处理: 增加了对数据加载过程中错误的捕获和日志记录,确保程序能够跳过无效数据并继续运行。 模型训练: 增加了重新训练模型的功能,用户可以选择重新训练现有模型或从头开始训练。 用…

华为GaussDB数据库之Yukon安装与使用

一、Yukon简介 Yukon&#xff08;禹贡&#xff09;&#xff0c;基于openGauss、PostgreSQL、GaussDB数据库扩展地理空间数据的存储和管理能力&#xff0c;提供专业的GIS&#xff08;Geographic Information System&#xff09;功能&#xff0c;赋能传统关系型数据库。 Yukon 支…

重学SpringBoot3-集成Redis(六)之消息队列

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-集成Redis&#xff08;六&#xff09;之消息队列 1. 什么是发布/订阅&#xff08;Pub/Sub&#xff09;&#xff1f;2. 场景应用3. Spring Boot 3 整合 R…

[网络]NAT、代理服务、内网穿透、内网打洞

目录 一、NAT 1.1 NAT 技术背景 1.2 NAT IP 转换过程 1.3 NAPT&#xff08;Network Address Port Translation&#xff09; 1.地址转换表 2. NAPT&#xff08;网络地址端口转换Network Address Port Translation&#xff09; 3. NAT技术的缺陷 二、代理服务器 2.1 正向…

Vue2与Vue3: 关键差异与新特性介绍

目录 一、Vue 2 与 Vue 3 的关键差异 1.双向数据绑定原理&#xff1a; Object.defineProperty() 的作用 Proxy API 简介 2.支持碎片&#xff08;Fragment&#xff09; 为什么支持碎片很重要&#xff1f; 如何实现的&#xff1f; 3.API类型 4.数据变量和方法的定义 5.生…