Nginx在通常情况下可以直接使apt或dnf 安装,但在需要特定版本或自定义模块时,源码编译是更好的选择。
通过源码安装首先要先安装相关依赖
centos
sudo yum -y install pcre-devel zlib-devel openssl-develDebian
sudo update
apt -y install libpcre3-dev zlib1g-dev libssl-devpcre库主要进行正则表达式的解析,zlib主要进行数据压缩,ssl主要进行数据的加密和相关证书的处理
然后我们需要创建一个www的用户,使用新用户可以保证Nginx获取最小特权,如果使用apt或yum安装过的话需要先卸载掉,安装过系统会自动创建一个www-data用户,可以不用创建新的用户,直接将下面的user和group改为www-data即可
sudo useradd -r -s /sbin/nologin www然后我们直接解压Nginx压缩包
sudo ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module
make -j$(nproc) && sudo make install-j可以指定使用CPU的数量,$(nproc)可以获取最大的CPU的数量
此时就可以进行测试启动了,
sudo /usr/local/nginx/sbin/nginx
ps aux |grep nginx可以检测是否安装完成,安装完成后可以配置一个环境变量来简化操作
echo 'export PATH=$PATH:/usr/local/nginx/sbin' >> /etc/profile
source /etc/profile
nginx最后可以通过注册一个Nginx服务来实现system管理Nginx,首先我们先关掉目前运行的Nginx进程ps aux |grep nginx 获取pid,然后kill掉
直接将下面写入/etc/systemd/system/nginx.service 即可
[Unit]
Description=Nginx Web Server
After=network.target
[Service]
Type=forking
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target最后
systemctl daemon-reload #重新加载
systemctl enable nginx --now
systemctl status nginx