通过shell脚本分析部署nginx网络服务

通过shell脚本分析部署nginx网络服务

1.接收用户部署的服务名称

[root@localhost xzy]# vim 1.sh
[root@localhost xzy]# chmod +x 1.sh
[root@localhost xzy]# ./1.sh

2.判断服务是否安装

已安装;自定义网站配置路径为/www;并创建共享目录和网页文件;重启服务

没有安装;安装对应的软件包

#!/bin/bash# 1. 接收用户部署的服务名称
read -p "请输入您部署的服务名称: " service_name
service_name=$(echo $service_name | tr -d '\b')  # 去除退格键# 判断 Nginx 是否已安装
if command -v nginx &> /dev/null
thenecho "Nginx 已经安装。"# 2. 自定义网站配置echo "自定义网站配置路径为 /www。"# 创建共享目录和网页文件sudo mkdir -p /www/htmlif [ $? -eq 0 ]; thenecho "共享目录 /www/html 创建成功。"elseecho "创建共享目录 /www/html 失败,请检查权限。"exit 1fisudo echo "<html><head><title>$service_name</title></head><body><h1>Welcome to $service_name</h1></body></html>" > /www/html/index.htmlif [ $? -eq 0 ]; thenecho "网页文件 /www/html/index.html 创建成功。"elseecho "创建网页文件 /www/html/index.html 失败,请检查权限。"exit 1fi# 确保配置目录存在if [ -d /etc/nginx/sites-available ]; thenecho "配置目录 /etc/nginx/sites-available 已存在。"elsesudo mkdir -p /etc/nginx/sites-availableif [ $? -ne 0 ]; thenecho "创建配置目录 /etc/nginx/sites-available 失败,请检查权限。"exit 1fiecho "配置目录 /etc/nginx/sites-available 创建成功。"fiif [ -d /etc/nginx/sites-enabled ]; thenecho "配置目录 /etc/nginx/sites-enabled 已存在。"elsesudo mkdir -p /etc/nginx/sites-enabledif [ $? -ne 0 ]; thenecho "创建配置目录 /etc/nginx/sites-enabled 失败,请检查权限。"exit 1fiecho "配置目录 /etc/nginx/sites-enabled 创建成功。"fi# 配置 Nginx 以使用自定义路径sudo tee /etc/nginx/sites-available/$service_name.conf <<EOF
server {listen 80;server_name localhost;location / {root /www/html;index index.html;}
}
EOFif [ $? -eq 0 ]; thenecho "Nginx 配置文件 /etc/nginx/sites-available/$service_name.conf 创建成功。"elseecho "创建 Nginx 配置文件 /etc/nginx/sites-available/$service_name.conf 失败,请检查路径。"exit 1fi# 创建符号链接使配置生效sudo ln -sf /etc/nginx/sites-available/$service_name.conf /etc/nginx/sites-enabled/if [ $? -eq 0 ]; thenecho "符号链接创建成功。"elseecho "创建符号链接失败,请检查路径。"exit 1fi# 重启 Nginx 服务sudo systemctl restart nginx.serviceecho "已重启 Nginx 服务。"# 3. 测试 Nginx 服务是否成功运行if sudo systemctl status nginx.service | grep -q "active (running)"; thenecho "Nginx 服务已成功启动。"echo "可以通过浏览器访问地址 http://localhost 来查看您的网站。"elseecho "Nginx 服务没有成功启动。"echo "----------- 配置文件内容如下 -----------"sudo cat /etc/nginx/sites-available/$service_name.conffi
else# 2. 没有安装 Nginx,安装对应的软件包echo "Nginx 未安装,开始安装 Nginx。"sudo yum install nginx -y # 判断安装是否成功if command -v nginx &> /dev/nullthenecho "Nginx 安装完成。"# 创建共享目录和网页文件sudo mkdir -p /www/htmlif [ $? -eq 0 ]; thenecho "共享目录 /www/html 创建成功。"elseecho "创建共享目录 /www/html 失败,请检查权限。"exit 1fisudo echo "<html><head><title>$service_name</title></head><body><h1>Welcome to $service_name</h1></body></html>" > /www/html/index.htmlif [ $? -eq 0 ]; thenecho "网页文件 /www/html/index.html 创建成功。"elseecho "创建网页文件 /www/html/index.html 失败,请检查权限。"exit 1fi# 确保配置目录存在if [ -d /etc/nginx/sites-available ]; thenecho "配置目录 /etc/nginx/sites-available 已存在。"elsesudo mkdir -p /etc/nginx/sites-availableif [ $? -ne 0 ]; thenecho "创建配置目录 /etc/nginx/sites-available 失败,请检查权限。"exit 1fiecho "配置目录 /etc/nginx/sites-available 创建成功。"fiif [ -d /etc/nginx/sites-enabled ]; thenecho "配置目录 /etc/nginx/sites-enabled 已存在。"elsesudo mkdir -p /etc/nginx/sites-enabledif [ $? -ne 0 ]; thenecho "创建配置目录 /etc/nginx/sites-enabled 失败,请检查权限。"exit 1fiecho "配置目录 /etc/nginx/sites-enabled 创建成功。"fi# 自定义网站配置sudo tee /etc/nginx/sites-available/$service_name.conf <<EOF
server {listen 80;server_name localhost;location / {root /www/html;index index.html;}
}
EOFif [ $? -eq 0 ]; thenecho "Nginx 配置文件 /etc/nginx/sites-available/$service_name.conf 创建成功。"elseecho "创建 Nginx 配置文件 /etc/nginx/sites-available/$service_name.conf 失败,请检查路径。"exit 1fi# 创建符号链接使配置生效sudo ln -sf /etc/nginx/sites-available/$service_name.conf /etc/nginx/sites-enabled/if [ $? -eq 0 ]; thenecho "符号链接创建成功。"elseecho "创建符号链接失败,请检查路径。"exit 1fi# 启动 Nginx 服务sudo systemctl start nginx.serviceecho "已启动 Nginx 服务。"# 3. 测试 Nginx 服务是否成功运行if sudo systemctl status nginx.service | grep -q "active (running)"; thenecho "Nginx 服务已成功启动。"echo "可以通过浏览器访问地址 http://localhost 来查看您的网站。"elseecho "Nginx 服务没有成功启动。"echo "----------- 配置文件内容如下 -----------"sudo cat /etc/nginx/sites-available/$service_name.conffielseecho "Nginx 安装失败,请检查您的网络连接和 YUM 源配置。"fi
fi

3.测试

判断服务是否成功运行;

已运行,访问网站

未运行,提示服务未启动,并显示自定义的配置文件内容

在这里插入图片描述

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

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

相关文章

tcp 超时计时器

在 TCP&#xff08;传输控制协议&#xff09;中有以下四种重要的计时器&#xff1a; 重传计时器&#xff08;Retransmission Timer&#xff09; 作用&#xff1a;用于处理数据包丢失的情况。当发送方发送一个数据段后&#xff0c;就会启动重传计时器。如果在计时器超时之前没有…

华为云租户网络-用的是隧道技术

1.验证租户网络是vxlan 2.验证用OVS 2.1控制节点VXLAN 本端ip&#xff08;local ip&#xff09;192.168.31.8 2.2计算节点VXLAN 本端ip&#xff08;local ip&#xff09;192.168.31.11 计算节点用的是bond0做隧道网络 2.3查看bond文件是否主备模式

【AI+教育】一些记录@2024.11.11

《清华发布工具学习框架&#xff0c;让ChatGPT操控地图、股票查询&#xff0c;贾维斯已来&#xff1f;》 清华发布工具学习框架&#xff0c;让ChatGPT操控地图、股票查询&#xff0c;贾维斯已来&#xff1f;工具学习&#xff0c;清华天团让 ChatGPT 拿起专业工具https://mp.we…

day-17 反转字符串中的单词

利用split()函数和substring函数 code: class Solution {public String reverseWords(String s) {int m0;while(s.charAt(m) ){m;}ss.substring(m);String arr[]s.split("[\\s]");int narr.length;String ss"";for(int in-1;i>1;i--){ssssarr[i]"…

台式电脑没有声音怎么办?台式电脑没有声音解决详解

台式电脑一般来说都是没有内置扬声器的&#xff0c;需要连接耳机或者是音响才可以播放音乐。那么如果遇到台式电脑没有声音的问题&#xff0c;我们也需要确认这些设备硬件有没问题&#xff0c;知道原因才可以进行处理。下面本文将为你介绍台式电脑没有声音的可能原因和解决方法…

一文速学---红黑树

文章目录 一、红黑树简介二、 红黑树特性三、红黑树插入3.1 红黑树为空3.2 父节点为黑色3.3 父节点为红色3.3.1 父亲和叔叔都是红色3.3.2 父节点为红色&#xff0c;叔叔节点为黑色3.3.2.1 父节点在左节点&#xff0c;插入节点在父亲左节点3.3.2.2 父节点在左节点&#xff0c;插…

gitlab容器的迁移(部署)并配置自动备份

gitlab容器的迁移&#xff08;部署&#xff09;并配置自动备份 本文背景为从Ubuntu服务器上迁移gitlab容器到windows并备份&#xff0c;若要直接拉取镜直接安装配置可直接从第二小标题参考 1、原Ubuntu的gitlab容器制作为镜像 2.1 将运行的容器制为镜像 #镜像&#xff1a;i…

Linux:调试器-gdb/cgdb

文章目录 一、编译成debug1、-g 选项 二、gdb调试命令1、在CentOS系统下检查安装gdb2、进入gdb模式3、quit 退出gdb4、list &#xff08;简写 l&#xff09;显示文件内容5、b 打断点6、 r / run运行程序7、c 让程序直接运行完 三、cgdb1、info b查看打的所有断点2、d 删除断点3…

基于差分、粒子群算法下的TSP优化对比

TSP问题&#xff0c;即旅行商问题&#xff08;Traveling Salesman Problem&#xff09;&#xff0c;是数学领域中的一个著名问题。以下是对TSP问题的详细解释&#xff1a; 一、问题定义 假设有一个旅行商人要拜访n个城市&#xff0c;他必须选择所要走的路径&#xff0c;路径的…

17.100ASK_T113-PRO 配置QT运行环境(三)

前言 1.打开QT,新建项目. 做成以下效果,会QT都没有问题吧 编译输出: /home/book/LED_and_TempHumi/build-LED_and_TempHumi-100ask-Debug LED_and_TempHumi 2.下载程序与测试 设置运行环境 export QT_QPA_PLATFORMlinuxfb 这个地方还需要加字体,不然不会显示字体.

智慧社区平台系统提升物业管理效率与居民生活质量

内容概要 智慧社区平台系统是为应对现代城市管理挑战而诞生的重要工具。随着城市化进程的加快&#xff0c;传统的物业管理方式已经难以满足日益增长的居民需求和管理复杂性。因此&#xff0c;引入智能化管理手段显得尤为重要。这个系统不仅仅是一个简单的软件&#xff0c;它是…

远程jupyter lab的配置

打开虚拟环境 conda activate test 在环境下安装ipykernel软件包&#xff0c;这个软件包允许jupyter notebookl使用特定环境的python版本。 conda install ipykernel 将该环境添加到Jupyter Notebook中 python -m ipykernel install --user --nametest --display-name&quo…

python+Django+MySQL+echarts+bootstrap制作的教学质量评价系统,包括学生、老师、管理员三种角色

项目介绍 该教学质量评价系统基于Python、Django、MySQL、ECharts和Bootstrap技术&#xff0c;旨在为学校或教育机构提供一个全面的教学质量评估平台。系统主要包括三种角色&#xff1a;学生、老师和管理员&#xff0c;每个角色有不同的功能权限。 学生角色&#xff1a;学生可…

找不到vcruntime140.dll怎么办,彻底解决vcruntime140.dll丢失的5种方法

当计算机系统中无法找到vcruntime140.dll这个特定的动态链接库文件时&#xff0c;可能会引发一系列运行问题&#xff0c;具体表现形式多样且影响范围较广。对于依赖于该文件运行的各类软件应用来说&#xff0c;缺失vcruntime140.dll将直接导致程序无法正常启动或执行&#xff0…

设计模式-Adapter(适配器模式)GO语言版本

前言 个人感觉Adapter模式核心就在于接口之间的转换。将已有的一些接口转换成其他接口形式。并且一般用于对象上&#xff0c;而不是系统上 问题 就用一个简单的问题&#xff0c;懂数据结构的同学可能知道双端队列。那么就用双端队列实现一个栈&#xff08;stack&#xff09;或…

表格的选择弹窗,选中后返显到表格中

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 表格的下拉框可以直接显示选项&#xff0c;那如果选择框不是下拉的&#xff0c;而是弹窗&#xff0c;那么在表格中如何返显呢&#xff1f; 问题描述 如上图所示&#xff0c;点击表格中的选择&#xf…

4.STM32之通信接口《精讲》之USART通信---实验串口发送程序

本节将进行实战&#xff0c;基础了解请查看第1&#xff0c;2&#xff0c;3节&#xff08;Whappy&#xff09; 开始背&#xff01;&#xff01; USART ---》全双工 异步/同步 点对点 C语言基础printf用法&#xff0c;这节将用到printf的重定向&#xff0c;来打印到串口助手上…

搭建MC服务器

局域网中玩MC&#xff0c;直接自己创建房间开启局域网就可以了。如果想开一个24小时不关机的服务器呢&#xff1f;其实最开始我是想在windows云服务器&#xff0c;图形化界面运行一个开启局域网即可。可能是云服务器上没有显卡&#xff0c;还是其他什么原因&#xff0c;游戏打开…

css 使用图片作为元素边框

先看原始图片 再看效果 边框的四个角灭有拉伸变形,但是图片的中部是拉伸的 代码 border-style: solid;/* 设置边框图像的来源 */border-image-source: url(/static/images/mmwz/index/bk_hd3x.png);/* 设置如何切割图像 */border-image-slice: 66;/* 设置边框的宽度 */border…

通用定时器---输出比较功能

目录 一、概念 二、输出比较的8种模式 三、输出比较输出PWM波形的基本结构 配置步骤 四、示例代码 一、概念 OC&#xff08;OutPut Compare&#xff09;输出比较。输出比较可以通过比较CNT与CCR寄存器的关系&#xff0c;来对输出电平进行置1/置0/翻转的操作&#xff0c;可…