nginx_shell脚本扩展配置虚拟主机三种方式

devtools/2024/12/22 20:10:05/

#需要注意的是
代理proxy_pass http://192.168.29.188:5000; 我这里使用的是容器中的flask地址

#!/bin/bash# 1. 查看当前系统 nginx 配置文件位置
nginxconf_path=$(whereis nginx | awk '{print $2}')/conf/nginx.conf
echo "nginxconf_path: $nginxconf_path"# 2. 查看主配置文件是否有导入扩展配置文件的指令
if grep -q "include /usr/local/nginx/conf/conf.d/*.conf;" $nginxconf_path; thenecho "Import extended configuration: /usr/local/nginx/conf/conf.d/*.conf"
elseecho "No import extended configuration"# 2.1. 若没有,则需要在主配置文件中添加 include /usr/local/nginx/conf/conf.d/*.conf;sudo sed -i '/http {/a include /usr/local/nginx/conf/conf.d/*.conf;' $nginxconf_pathecho "Added import extended configuration: /usr/local/nginx/conf/conf.d/*.conf"
fi# 3. 查看扩展配置文件目录是否存在
if [ -d "/usr/local/nginx/conf/conf.d" ]; thenecho "Extended configuration directory exists"
elseecho "Extended configuration directory does not exist"# 3.1. 若不存在,则需要创建扩展配置文件目录sudo mkdir -p /usr/local/nginx/conf/conf.decho "Created extended configuration directory"
fi# 4. 定义配置文件名数组
conf_files=("domain.conf" "ip.conf" "port.conf")# 5. 检查并创建配置文件
for file in "${conf_files[@]}"; doif [ -f "/usr/local/nginx/conf/conf.d/$file" ]; thenecho "Extended configuration file exists: $file"elseecho "Extended configuration file does not exist: $file"# 5.1. 若不存在,则需要创建扩展配置文件echo "Creating extended configuration file: $file"sudo touch "/usr/local/nginx/conf/conf.d/$file"fi
done# 6. 定义函数来写入配置文件
write_config() {local file_path=$1local server_name=$2local listen_port=$3cat <<EOF | sudo tee "$file_path" > /dev/null
server {listen $listen_port;server_name $server_name;location / {# 代理转发到我的docker中的flask项目proxy_pass http://192.168.29.188:5000;}
}
EOF
}# 7. 交互式选择配置
echo "Select virtual host configuration type:"
select conf_type in "IP" "Domain" "Port" "Quit"; doecho "You selected: $conf_type"  # 调试输出case "$conf_type" in"Domain") write_config "/usr/local/nginx/conf/conf.d/${conf_files[0]}" "example.com" 80break;;"IP") write_config "/usr/local/nginx/conf/conf.d/${conf_files[1]}" "192.168.29.129" 80break;;"Port") write_config "/usr/local/nginx/conf/conf.d/${conf_files[2]}" "example.com" 9888break;;"Quit") exit 0;;*) echo "Invalid input. Please try again.";;esac
done# 8. 重启 nginx 服务并检查是否成功
if sudo systemctl restart nginx; thenecho "Nginx service restarted successfully"
elseecho "Failed to restart Nginx service"exit 1
fi

http://www.ppmy.cn/devtools/111860.html

相关文章

通信工程学习:什么是DWDM密集波分复用

DWDM&#xff1a;密集波分复用 DWDM&#xff08;Dense Wavelength Division Multiplexing&#xff09;&#xff0c;即密集波分复用&#xff0c;是一种先进的光纤数据传输技术。以下是关于DWDM的详细解释&#xff1a; 一、DWDM密集波分复用的定义 DWDM技术利用激光的不同波长&a…

Iptables命令常用命令

前言:下是一些非常实用的 iptables 命令合集&#xff0c;涵盖网络攻击防护和日常网络安全防护 1. 查看当前规则 iptables -L -v -n查看现有的所有规则&#xff0c;-v 显示详细信息&#xff0c;-n 禁止解析IP地址和端口以加快显示速度。 2. 清空所有规则 iptables -F清除所有已…

CSS学习17--CSS3 过渡、2D变形、3D变形、动画

CSS3 过渡、2D变形、3D变形、动画 一、过渡二、2D变形 transform1.移动 translate2.缩放 scale3. 旋转 rotate4. 倾斜 skew 三、3D变形1. rotateX&#xff08;&#xff09;rotateY&#xff08;&#xff09; rotateZ&#xff08;&#xff09;2. 体会透视 perspective3. translat…

MongoDB设置系统服务启动教程

1、编辑mongodb.service文件 将MongoDB设置成系统服务&#xff0c;就可以通过systemctl进行启动停止重启&#xff0c;在目录/etc/systemd/system下编写mongodb.service文件&#xff1a; [Unit] DescriptionMongoDB Database Server Documentationhttps://www.mongodb.com/docs…

HP电脑如何启动硬件检测

许多人都在使用HP电脑&#xff0c;但是当出现问题时候&#xff0c;不知道该如何测试&#xff0c;本文来分享一下&#xff0c;如何在电脑能开机但是有问题时进行检测。 使用F2键进行组件测试 步骤&#xff1a;开机后不停敲击键盘上【F2】的按键&#xff0c;进入BIOS设置界面&am…

3D GS 测试自己的数据

环境配置 win11 vs2019cuda11.8driver522.06python3.10pytorch 2.4.0colmap3.8&#xff08;可选&#xff0c;用于将图像生成点云&#xff09; 安装 1 minicodagit 略 2 vs2019 在装cuda前安装&#xff0c; 选择c桌面开发即可&#xff0c; 环境变量path中配置C:\Program…

go语言开发windows抓包工具

使用syscall调用window api, go有封装, 暂时不需要自己调用dll 使用函数 syscall.WSAStartup syscall.Socket syscall.SockaddrInet4 syscall.WSAIoctl syscall.WSARecv 废话不多说, 上代码简洁明了使用方法 package mainimport ("fmt""net""s…

Android 车联网——汽车模块介绍(附1)

汽车模块指的是车辆中独立的电子控制单元(ECUs),如发动机控制单元(ECU)、车身控制模块(BCM)等,它们负责特定的功能或系统。 一、控制类模块 这些模块主要用于控制车辆的不同系统,确保车辆各部分的正常运行。 1、ECM ECM(Electronic Control Module,电子控制模块)…