通过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
then
    echo "Nginx 已经安装。"
    
    # 2. 自定义网站配置
    echo "自定义网站配置路径为 /www。"
    
    # 创建共享目录和网页文件
    sudo mkdir -p /www/html
    if [ $? -eq 0 ]; then
        echo "共享目录 /www/html 创建成功。"
    else
        echo "创建共享目录 /www/html 失败,请检查权限。"
        exit 1
    fi
    sudo echo "<html>
    <head>
        <title>$service_name</title>
    </head>
    <body>
        <h1>Welcome to $service_name</h1>
    </body>
    </html>" > /www/html/index.html
    if [ $? -eq 0 ]; then
        echo "网页文件 /www/html/index.html 创建成功。"
    else
        echo "创建网页文件 /www/html/index.html 失败,请检查权限。"
        exit 1
    fi
    # 确保配置目录存在
    if [ -d /etc/nginx/sites-available ]; then
        echo "配置目录 /etc/nginx/sites-available 已存在。"
    else
        sudo mkdir -p /etc/nginx/sites-available
        if [ $? -ne 0 ]; then
            echo "创建配置目录 /etc/nginx/sites-available 失败,请检查权限。"
            exit 1
        fi
        echo "配置目录 /etc/nginx/sites-available 创建成功。"
    fi
    if [ -d /etc/nginx/sites-enabled ]; then
        echo "配置目录 /etc/nginx/sites-enabled 已存在。"
    else
        sudo mkdir -p /etc/nginx/sites-enabled
        if [ $? -ne 0 ]; then
            echo "创建配置目录 /etc/nginx/sites-enabled 失败,请检查权限。"
            exit 1
        fi
        echo "配置目录 /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;
    }
}
EOF
    if [ $? -eq 0 ]; then
        echo "Nginx 配置文件 /etc/nginx/sites-available/$service_name.conf 创建成功。"
    else
        echo "创建 Nginx 配置文件 /etc/nginx/sites-available/$service_name.conf 失败,请检查路径。"
        exit 1
    fi
    # 创建符号链接使配置生效
    sudo ln -sf /etc/nginx/sites-available/$service_name.conf /etc/nginx/sites-enabled/
    if [ $? -eq 0 ]; then
        echo "符号链接创建成功。"
    else
        echo "创建符号链接失败,请检查路径。"
        exit 1
    fi
    # 重启 Nginx 服务
    sudo systemctl restart nginx.service
    echo "已重启 Nginx 服务。"
    # 3. 测试 Nginx 服务是否成功运行
    if sudo systemctl status nginx.service | grep -q "active (running)"; then
        echo "Nginx 服务已成功启动。"
        echo "可以通过浏览器访问地址 http://localhost 来查看您的网站。"
    else
        echo "Nginx 服务没有成功启动。"
        echo "----------- 配置文件内容如下 -----------"
        sudo cat /etc/nginx/sites-available/$service_name.conf
    fi
else
    # 2. 没有安装 Nginx,安装对应的软件包
    echo "Nginx 未安装,开始安装 Nginx。"
    sudo yum install nginx -y 
    
    # 判断安装是否成功
    if command -v nginx &> /dev/null
    then
        echo "Nginx 安装完成。"
        
        # 创建共享目录和网页文件
        sudo mkdir -p /www/html
        if [ $? -eq 0 ]; then
            echo "共享目录 /www/html 创建成功。"
        else
            echo "创建共享目录 /www/html 失败,请检查权限。"
            exit 1
        fi
        sudo echo "<html>
        <head>
            <title>$service_name</title>
        </head>
        <body>
            <h1>Welcome to $service_name</h1>
        </body>
        </html>" > /www/html/index.html
        if [ $? -eq 0 ]; then
            echo "网页文件 /www/html/index.html 创建成功。"
        else
            echo "创建网页文件 /www/html/index.html 失败,请检查权限。"
            exit 1
        fi
        # 确保配置目录存在
        if [ -d /etc/nginx/sites-available ]; then
            echo "配置目录 /etc/nginx/sites-available 已存在。"
        else
            sudo mkdir -p /etc/nginx/sites-available
            if [ $? -ne 0 ]; then
                echo "创建配置目录 /etc/nginx/sites-available 失败,请检查权限。"
                exit 1
            fi
            echo "配置目录 /etc/nginx/sites-available 创建成功。"
        fi
        if [ -d /etc/nginx/sites-enabled ]; then
            echo "配置目录 /etc/nginx/sites-enabled 已存在。"
        else
            sudo mkdir -p /etc/nginx/sites-enabled
            if [ $? -ne 0 ]; then
                echo "创建配置目录 /etc/nginx/sites-enabled 失败,请检查权限。"
                exit 1
            fi
            echo "配置目录 /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;
    }
}
EOF
        if [ $? -eq 0 ]; then
            echo "Nginx 配置文件 /etc/nginx/sites-available/$service_name.conf 创建成功。"
        else
            echo "创建 Nginx 配置文件 /etc/nginx/sites-available/$service_name.conf 失败,请检查路径。"
            exit 1
        fi
        # 创建符号链接使配置生效
        sudo ln -sf /etc/nginx/sites-available/$service_name.conf /etc/nginx/sites-enabled/
        if [ $? -eq 0 ]; then
            echo "符号链接创建成功。"
        else
            echo "创建符号链接失败,请检查路径。"
            exit 1
        fi
        # 启动 Nginx 服务
        sudo systemctl start nginx.service
        echo "已启动 Nginx 服务。"
        
        # 3. 测试 Nginx 服务是否成功运行
        if sudo systemctl status nginx.service | grep -q "active (running)"; then
            echo "Nginx 服务已成功启动。"
            echo "可以通过浏览器访问地址 http://localhost 来查看您的网站。"
        else
            echo "Nginx 服务没有成功启动。"
            echo "----------- 配置文件内容如下 -----------"
            sudo cat /etc/nginx/sites-available/$service_name.conf
        fi
    else
        echo "Nginx 安装失败,请检查您的网络连接和 YUM 源配置。"
    fi
fi
3.测试
判断服务是否成功运行;
已运行,访问网站
未运行,提示服务未启动,并显示自定义的配置文件内容




![[STM32]从零开始的STM32 HAL库环境搭建](https://i-blog.csdnimg.cn/direct/a7a398c253614eb9b2d46eadced3a417.png)















