Ubuntu 源代码编译安装 Nginx

发布时间 2023-06-14 16:50:37作者: 阿风小子

建立nginx用户和用户组
sudo groupadd nginx
sudo useradd nginx -g nginx -s /sbin/nologin -M

在线安装依赖
sudo apt -y install gcc make openssl libssl-dev libpcre3 libpcre3-dev libgd-dev vim wget net-tools

下载并解压nginx源代码
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

预编译源代码
sudo ./configure --prefix=/usr/local/nginx \
 --user=nginx --group=nginx \
 --with-http_stub_status_module --with-http_ssl_module \
 --with-http_realip_module --with-http_gzip_static_module \
 --with-file-aio --with-http_realip_module  

编译源代码
sudo make -j4 

安装nginx
sudo make -j4 install

查看nginx版本号
sudo /usr/local/nginx/sbin/nginx -v

检查nginx配置文件是否正确
sudo /usr/local/nginx/sbin/nginx -t

启动nginx
sudo /usr/local/nginx/sbin/nginx
重新载入配置文件
sudo /usr/local/nginx/sbin/nginx -s reload  
快速关闭 Nginx
sudo /usr/local/nginx/sbin/nginx -s stop
关闭Nginx
sudo /usr/local/nginx/sbin/nginx -s quit                  
编写启动脚本
cd /usr/lib/systemd/system/
sudo vim nginx.service

[Unit]
Description=nginx
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPost=/bin/sleep 0.1
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target


重新加载服务文件
sudo systemctl daemon-reload 
sudo systemctl start|stop|reload|restart|status nginx.service
开机自启:
sudo systemctl enable nginx.service
关闭开机自启:
sudo systemctl disable nginx.service