shell脚本多实例部署nginx的详细教程

yizhihongxing

下面是关于“shell脚本多实例部署nginx的详细教程”的完整攻略。

准备工作

在开始之前,我们需要先进行一些准备工作。

1. 安装必要的软件

我们需要安装以下软件:

  • nginx
  • supervisor

在 Ubuntu 系统上,可以通过以下命令来安装:

sudo apt-get install nginx supervisor

2. 创建目录及配置文件

etc/nginx/ 目录下创建 sites-availablesites-enabled 两个子目录,并创建一个 nginx.conf 配置文件。

创建 sites-available 目录:

mkdir /etc/nginx/sites-available

创建 sites-enabled 目录:

mkdir /etc/nginx/sites-enabled

创建 nginx.conf 配置文件:

touch /etc/nginx/nginx.conf

然后在 nginx.conf 中加入以下语句:

include /etc/nginx/sites-enabled/*.conf;

3. 配置 supervisor

etc/supervisor/conf.d/ 目录下创建一个 nginx.conf 配置文件。

创建 nginx.conf 配置文件:

touch /etc/supervisor/conf.d/nginx.conf

nginx.conf 中加入以下语句:

[program:nginx]
command=/usr/sbin/nginx
autostart=true
autorestart=true
startretries=3
stderr_logfile=/var/log/nginx/nginx.err.log
stdout_logfile=/var/log/nginx/nginx.out.log
user=root

步骤

接下来,我们开始进行具体的步骤。

1. 编写 shell 脚本

下面是一个示例的 shell 脚本,该脚本根据传入的参数来创建不同的 nginx 实例。

创建 nginx-instance.sh 文件并加入以下代码:

#!/bin/bash

# 定义变量
INSTANCE_NAME=${1:-"nginx"}
INSTANCE_PORT=${2:-"80"}
INSTANCE_ROOT=${3:-"/var/www/html"}
CONFIG_FILE="/etc/nginx/sites-available/${INSTANCE_NAME}.conf"
PID_FILE="/run/nginx-${INSTANCE_NAME}.pid"

# 判断是否已存在该实例
if [[ -f "$CONFIG_FILE" ]]; then
  echo "Error: instance already exists"
  exit 1
fi

# 创建配置文件
cat << EOF > "$CONFIG_FILE"
server {
    listen ${INSTANCE_PORT} default_server;
    listen [::]:${INSTANCE_PORT} default_server;

    root ${INSTANCE_ROOT};
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }
}
EOF

# 创建软链接
ln -s "$CONFIG_FILE" "/etc/nginx/sites-enabled/${INSTANCE_NAME}.conf"

# 重启 nginx
supervisorctl restart nginx

# 提示信息
echo "Success: instance has been created!"
echo "Instance name: ${INSTANCE_NAME}"
echo "Instance port: ${INSTANCE_PORT}"
echo "Instance root: ${INSTANCE_ROOT}"

2. 导入配置文件

nginx.conf 中加入以下语句:

include /etc/nginx/sites-enabled/*.conf;

3. 启动 supervisor

启动 supervisor:

sudo systemctl start supervisor

4. 创建 nginx 实例

使用以下命令创建 nginx 实例:

sudo sh nginx-instance.sh instance1 8080 /var/www/html/instance1

这将会创建一个名为 instance1 的 nginx 实例,监听 8080 端口,并把 /var/www/html/instance1 设置为根目录。

5. 测试 nginx 实例

使用以下命令测试 nginx 实例:

curl -I http://localhost:8080/

如果返回类似以下的信息,即表示 nginx 实例已经成功创建并启动了:

HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Wed, 29 Sep 2021 07:04:16 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 612
Connection: keep-alive
Last-Modified: Mon, 06 Aug 2018 07:05:36 GMT
ETag: "264-57366c26672ce"
Accept-Ranges: bytes

示例1

下面是示例1:

假设我们希望创建一个名为 mysite 的 nginx 实例,并将其监听在 8000 端口,并将默认的根目录设置为 /var/www/mysite,我们可以使用以下命令:

sudo sh nginx-instance.sh mysite 8000 /var/www/mysite

示例2

下面是示例2:

假设我们希望创建一个名为 photosite 的 nginx 实例,并将其监听在 8080 端口,并将默认的根目录设置为 /var/www/photosite,我们可以使用以下命令:

sudo sh nginx-instance.sh photosite 8080 /var/www/photosite

总结

通过以上步骤,我们成功的实现了 shell 脚本多实例部署 nginx 的功能,并且还提供了两个示例供大家参考。希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:shell脚本多实例部署nginx的详细教程 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • linux安装nginx与php centos6.8 yum安装mysql 5.6 (完整)

    nginx安装 本文是介绍使用源码编译安装,包括具体的编译参数信息。 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好。 安装make: yum -y install gcc automake autoconf libtool make 安装g++: yum install gcc gcc-c++   一般我们都需要先装pcre, zlib,前者…

    Nginx 2023年4月16日
    00
  • 2. Nginx配置文件和访问

    一 .Nginx配置文件(https://www.bilibili.com/video/BV1zE411N7m9?p=18 ) 学习Nginx首先需要对它的核心配置文件nginx.conf有一定的认识: (1)Nginx的核心配置文件主要由三个部分构成: 基本配置+events配置+http配置 #==================1.基本配置======…

    Nginx 2023年4月13日
    00
  • k8s笔记——NodePort暴露nginx-controller实现https自动跳转自定义nodePort端口

    安装nginx-controller并暴露nodePort helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx/ helm repo update helm install gateway ingress-nginx/ingress-nginx –set contro…

    Nginx 2023年4月9日
    00
  • linux系统nginx如何部署vue项目(附详细步骤) Nginx实现前端访问后端本地接口

    记录一下nginx部署vue前端项目: 一、安装mobaxterm工具 mobaxterm是一个登陆服务器的工具,可以执行linux命令,长这样:      二、登陆你要部署项目的服务器 点击session——ssh—-输入ip和用户名(root),如下图:      三、登陆之后,你看到的界面如下图:      四、下面开始安装nginx 注意…

    Nginx 2023年4月15日
    00
  • 详解nginx安装过程并代理下载服务器文件

    下面我将详细讲解“详解nginx安装过程并代理下载服务器文件”的完整攻略。 1. 安装nginx 首先,在安装nginx之前,你需要确保你的服务器中已经安装了wget和gcc。如果你已经安装了这两个软件,可以跳过这一步。 # 安装wget和gcc yum install wget gcc 然后,你可以通过以下命令来安装最新版的nginx: # 添加epel仓…

    Nginx 2023年5月16日
    00
  • nginx:windows下按天切割日志

    利用 BAT脚本和任务计划程序来完成。 1.BAT @echo on set nginx=d:\logs\nginx set history=d:\logs\nginx\history md %history% net stop nginx set “Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time…

    2023年4月9日
    00
  • ansible-playbook(nginx例)

    一、创建目录结构   cd /etc/ansible/roles/   mkdir nginx/{files,templates,vars,handlers,meta,default,tasks} -pv 二、files/:存储由copy或script等模块调用的文件;   wget http://nginx.org/download/nginx-1.13.…

    Nginx 2023年4月11日
    00
  • Windows下Nginx的配置及配置文件部分介绍

    这里是“Windows下Nginx的配置及配置文件部分介绍”的完整攻略。 Windows下Nginx的配置及配置文件部分介绍 一、下载Nginx 在Nginx官网(http://nginx.org/en/download.html)上下载Windows版本的Nginx,解压到本地路径。 二、基本配置 1. 修改Nginx配置文件 打开Nginx安装目录下的c…

    Nginx 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部