安装必要的软件包,使用以下命令安装编译nginx所需的软件包:
centos:
sudo yum install epel-release
sudo yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel
debian:
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libssl-dev
下载nginx源码包,可以到官网(http://nginx.org/)下载最新版本的源码包。
解压源码包,使用tar命令解压:tar -xzvf nginx-x.xx.tar.gz(x.xx为版本号)。
进入nginx源码目录,运行以下命令进行编译:
cd nginx-x.xx
./configure
make
make install
如果想自定义nginx的安装目录,可以在configure命令后添加--prefix=/path/to/nginx,例如:./configure --prefix=/usr/local/nginx。
安装完成后,可以使用以下命令启动nginx:
sudo /usr/local/nginx/sbin/nginx
如果想停止nginx,可以使用以下命令:
sudo /usr/local/nginx/sbin/nginx -s stop
如果想重新加载nginx的配置文件,可以使用以下命令:
sudo /usr/local/nginx/sbin/nginx -s reload
注意:在启动nginx前,需要确保80端口没有被占用。若被占用,可以使用以下命令查看占用端口的进程并杀掉该进程:
sudo lsof -i :80
sudo kill -9 <PID>
添加命令环境变量:
tail -3 ~/.bashrc
export PATH=$PATH:/usr/local/nginx/sbin
source ~/.bashrc
加入system管理:
cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.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
其中,PIDFile表示nginx进程的pid文件路径,ExecStartPre表示启动nginx前先检查配置文件是否正确,PrivateTmp表示在/tmp目录下创建私有的临时文件夹,提高安全性。
更新systemd服务配置,使用以下命令更新systemd服务配置
systemctl daemon-reload
接下来就可以使用system管理nginx了