Linux 安装 Nginx 并配置为系统服务(超详细)
#!/bin/bash
# 安装 Nginx 并配置为系统服务
# 定义 Nginx 的版本
NGINX_VERSION="1.21.6"
# 更新软件包列表
sudo apt-get update
# 安装编译 Nginx 所需的依赖
sudo apt-get install -y gcc make libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
# 下载 Nginx 源码
cd /usr/local/src
sudo wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
# 解压源码包
sudo tar -zxvf nginx-${NGINX_VERSION}.tar.gz
# 编译安装 Nginx
cd nginx-${NGINX_VERSION}
sudo ./configure
sudo make
sudo make install
# 创建软链接
sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
# 创建 Nginx 配置文件的软链接
sudo ln -s /usr/local/nginx/conf/nginx.conf /etc/nginx/nginx.conf
# 创建 Nginx 的日志目录
sudo mkdir -p /var/log/nginx
sudo chown -R ubuntu:ubuntu /var/log/nginx
# 创建 Nginx 的 pid 文件目录
sudo mkdir -p /var/run/nginx
sudo chown -R ubuntu:ubuntu /var/run/nginx
# 将 Nginx 设置为服务
sudo tee /etc/systemd/system/nginx.service <<EOL
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/nginx/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOL
# 重新加载 systemd,以识别新的服务文件
sudo systemctl daemon-reload
# 启动 Nginx 服务
sudo systemctl start nginx.service
# 设置 Nginx 服务开机自启
sudo systemctl enable nginx.service
# 检查 Nginx 服务状态
sudo systemctl status nginx.service
这段脚本首先更新了系统的软件包列表,然后安装了编译 Nginx 所需的依赖。接着,它下载并解压了 Nginx 的源码,编译并安装了 Nginx。之后,它创建了必要的软链接,以便能够在任何位置调用 Nginx 的可执行文件。它还为 Nginx 创建了配置文件和日志目录的软链接,并为 Nginx 创建了 pid 文件目录。最后,它将 Nginx 配置为 systemd 服务,并启动了 Nginx 服务,设置了开机自启。
评论已关闭