在CentOS 7中下载、编译和安装Nginx 1.20.1源代码需要以下步骤:
安装编译环境及相关依赖
sudo yum install -y gcc make pcre-devel zlib-devel openssl-devel
下载Nginx 1.20.1版本源代码
进入Nginx官网https://nginx.org/en/download.html 将Nginx 1.20.1的源代码链接复制到终端中进行下载,如下所示:
wget https://nginx.org/download/nginx-1.20.1.tar.gz
解压并进入nginx1.20.1源码目录
tar -zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1
配置并编译Nginx源代码
sudo ./configure --prefix=/usr/share/nginx --with-http_ssl_module
sudo make
sudo make install
启动nginx :sudo nginx
PS:systemctl 启动的程序不要用kill -9 杀进场。
PS:vim subscription-manager.conf :enabled=0 解决centos7 注册问题:
This system is not registered with an entitlement server. You can use subscription-manager to register
###################################################################################
PS:后面遇到一个问题,nginx页面可以访问,但是在systemctl status nginx 里却没有nginx.server
手动创建nginx系统服务:
1 vim /usr/lib/systemd/system/nginx.service
2 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
这是使用系统软件包管理器安装 Nginx 的默认配置。
其中,Nginx 可执行文件路径为 /usr/sbin/nginx,Nginx 主配置文件路径为 /etc/nginx/nginx.conf
若安装时定义了:./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx
那么 ExecStart=/usr/sbin/nginx -c /usr/share/nginx/nginx.conf
3 systemctl daemon-reload
4 systemctl restart nginx.service
###################################################################################
通过 supervisor 来将 Nginx 启动为守护进程。具体步骤如下:
安装 supervisor 和 nginx。
编写 supervisor 的配置文件 /etc/supervisord.d/nginx.ini,内容如下:
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
autostart=true
autorestart=true
startsecs=5
startretries=10
user=root
stdout_logfile=/var/log/supervisor/nginx.log
stderr_logfile=/var/log/supervisor/nginx.log
其中,command 参数指定了启动 Nginx 的命令,并使用了 daemon off; 选项来避免将 Nginx 启动为守护进程,(systemctl里的nginx.server就失效了,systemctl 启动、停止或重启 Nginx 也就失效了)因为 supervisor 已经会将其启动为守护进程。autostart 和 autorestart 分别表示在启动 supervisor 时是否自动启动 Nginx,并在 Nginx 进程异常退出时是否自动重启。startsecs 和 startretries 分别表示启动 Nginx 的超时时间和尝试启动的次数。user 表示以哪个用户的权限启动 Nginx 进程。
在 supervisor 配置文件 /etc/supervisord.conf 中添加以下内容:
[include]
files = /etc/supervisord.d/*.ini
这样,在 supervisor 启动时会自动加载 /etc/supervisord.d/ 目录下的所有 .ini 文件,而不需要手动指定每个配置文件的路径。
启动 supervisor 和 nginx。
systemctl start supervisord
systemctl start nginx
经过这样的配置后,supervisor 将会启动 Nginx 并将其作为守护进程运行,即使 Nginx 进程异常退出或被意外终止,supervisor 也会自动重新启动它。
标签:supervisor,nginx,启动,Nginx,systemctl,usr,编译,守护 From: https://www.cnblogs.com/sinsenliu/p/17421318.html