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框架下的一个变体,结合了深度可分离卷积和普通自注意力…

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…

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 …

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

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

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

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

华为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 正向…

北交大研究突破:塑料光纤赋能低成本无摄像头AR/VR眼动追踪技术

北交大研究&#xff1a;探索无摄像头低成本AR/VR眼动追踪新路径 在AR/VR技术领域&#xff0c;眼动追踪作为一项关键技术&#xff0c;对于提升用户体验、优化渲染效率具有重要意义。然而&#xff0c;传统的眼动追踪方案多依赖于高成本的摄像头&#xff0c;这不仅增加了设备的制造…

解锁 Python 嵌套字典的奥秘:高效操作与实战应用指南

文章目录 前言&#x1f340;一、 什么是 Python 字典&#xff1f;1.1 字典的语法 &#x1f340;二、 字典的基本操作2.1 字典的创建2.2 访问字典中的值2.3 添加或修改键值对2.4 删除字典中的键值对 &#x1f340;三、 字典的遍历操作3.1 遍历字典的键3.2 遍历字典的值3.3 同时遍…

基于SSM的仿win10界面的酒店管理系统

基于SSM的仿win10界面的酒店管理系统 运行环境: jdk1.8 eclipse tomcat7 mysql5.7 项目技术: jspssm&#xff08;springspringmvcmybatis&#xff09;mysql 项目功能模块&#xff1a;基础功能、房间类型、楼层信息、附属功能

大数据新视界 --大数据大厂之大数据驱动智能客服 -- 提升客户体验的核心动力

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

HUAWEI New4.9G 与 2.6G 无法正常切换问题处理案例

HUAWEI New4.9G 与 2.6G 无法正常切换问题处理案例 在某地市的 XX 音乐节保障准备期间&#xff0c;为确保活动期间的网络质量&#xff0c;现场新开了 4.9G HUAWEI 室外基站。在网络优化和测试中&#xff0c;发现UE无法实现从 2.6G 到 4.9G 的正常切换。虽然现场具备 4.9G信号覆…

每日OJ题_牛客_组队竞赛_贪心_C++_Java

目录 牛客_组队竞赛_贪心 题目解析 C代码1 C代码2 Java代码 牛客_组队竞赛_贪心 组队竞赛_牛客笔试题_牛客网 (nowcoder.com) 描述&#xff1a; 牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个…