简介
Nginx是一个异步框架的Web服务器,也可以用作反向代理,负载平衡器和HTTP缓存。该软件由Igor Sysoev创建,并于2004年首次公开发布。同名公司成立于2011年,以提供支持。Nginx是一款免费的开源软件,根据类BSD许可证的条款发布。
本文介绍的是如何在Debian系统中通过添加源的方式,apt安装最新版Nginx.
安装PHP可以看这篇文章:在Debian系统中APT安装PHP 7.1/7.2/7.3/7.4
安装
安装先决条件:
sudo apt install curl gnupg2 ca-certificates lsb-release
要为稳定的nginx软件包设置apt仓库,请运行以下命令:
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
如果要使用主线nginx软件包,请改为运行以下命令:
echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
接下来,导入官方的nginx签名密钥,以便apt可以验证软件包的真实性:
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
验证您现在是否具有正确的密钥:
sudo apt-key fingerprint ABF5BD827BD9BF62
输出应包含完整指纹573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
如下:
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14] 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62 uid [ unknown] nginx signing key
要安装nginx,请运行以下命令:
sudo apt update sudo apt install nginx
常见问题
使用 NGINX 官方源安装会发现 Systemd 中存在报错
● nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-04-15 18:16:30 CST; 22min ago Docs: http://nginx.org/en/docs/ Process: 31377 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 31379 (nginx) Tasks: 3 (limit: 1122) Memory: 8.4M CGroup: /system.slice/nginx.service ├─31379 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf ├─31380 nginx: worker process └─31381 nginx: worker process 4月 15 18:16:30 debian systemd[1]: nginx.service: Succeeded. 4月 15 18:16:30 debian systemd[1]: Stopped nginx - high performance web server. 4月 15 18:16:30 debian systemd[1]: Starting nginx - high performance web server... 4月 15 18:16:30 debian systemd[1]: nginx.service: Can't open PID file /run/nginx.pid (yet?) after start: No such file or directory 4月 15 18:16:30 debian systemd[1]: Started nginx - high performance web server.
问题原因
这是因为 NGX 启动时 PID 文件并未产生,导致文件无法读取
解决方法:
在/lib/systemd/system/nginx.service
中添加下面语句,以实现在执行可执行文件前等待 0.1s
ExecStartPost=/bin/sleep 0.1
然后重载守护单元
systemctl daemon-reload
重启nginx即可
service nginx restart