2.9 KiB
2.9 KiB
编译安装nginx
wandoubaba / 2023-07-21
系统环境
以Debian11为例
下载源码
以1.24.0版本为例,下载nginx:
wget https://nginx.org/download/nginx-1.24.0.tar.gz
如果提示wget: command not found
就先安装wget,执行sudo apt-get install wget
就行。
解压:
tar zxvf nginx-1.24.0.tar.gz
安装依赖
sudo apt-get install libgd-dev build-essential zlib1g-dev libpcre3-dev libssl-dev lsb-release
创建www用户和组
查看www用户是否存在
id www
创建www分组和www用户,并且不允许登录系统
groupadd www
useradd -g www -s /sbin/nologin www
再查看www用户
id www
编译安装
cd nginx-1.24.0
带参数执行编译
./configure --user=www --group=www \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_image_filter_module \
--with-http_addition_module \
--with-http_stub_status_module \
--with-stream \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-http_sub_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_dav_module \
--with-openssl-opt=-g \
--with-pcre-opt=-g \
--with-pcre
安装:
make
sudo make install
经过以上步骤,nginx已经被安装到/usr/local/nginx
目录下,程序文件位于/usr/local/nginx/sbin/nginx
。
启动服务
可以先把nginx程序路径写到系统环境中(可以把这条命令加到~/.bashrc
文件中)
export PATH=/usr/local/nginx/sbin/:$PATH
执行直接执行nginx
即可启动服务。
在浏览器访问http://ip
(把IP换成你的nginx主机地址),如果防火墙和安全组都放行了80端口,我们现在应该能看到Welcome to nginx
页面了。
用下面的命令可以控制服务的启停:
## 重启服务
nginx -s reopen
## 停止服务
nginx -s stop
nginx -s quit
## 重载配置
nginx -s reload
注册系统服务
注意:操作系统不同,下面的方法可能不一样。
创建/etc/systemd/system/nginx.service
文件:
[Unit]
Description=Nginx Service
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
执行下面的命令使服务生效并实现随系统启动:
sudo systemctl daemon-reload
sudo systemctl enable nginx
用下面的命令控制服务:
sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl stop nginx
sudo systemctl reload nginx
sudo systemctl status nginx