HCRM博客

如何在CentOS上编译Nginx?

在CentOS上编译和安装Nginx是一项常见任务,特别是在需要自定义配置或添加特定模块时,本文将详细介绍如何在CentOS上从源代码编译安装最新版本的Nginx(以1.27.2为例),整个过程包括环境准备、依赖安装、源码下载与解压、配置编译选项、编译与安装以及最终的启动与验证。

一、准备工作

在开始编译之前,确保系统已经安装了必要的编译工具和依赖项,对于CentOS 7,可以使用以下命令安装这些工具:

如何在CentOS上编译Nginx?-图1
(图片来源网络,侵权删除)
sudo yum update y
sudo yum groupinstall "Development Tools" y
sudo yum install pcredevel openssldevel zlibdevel gcc make automake libtool bzip2devel y

这些命令将更新系统并安装GCc、g++、make等编译工具,以及Nginx所需的依赖库。

二、创建用户和用户组

为了提高安全性,建议为Nginx创建一个专用的用户和用户组:

sudo useradd r g nginx s /sbin/nologin d /usr/local/nginx M nginx

此命令将创建一个名为nginx的系统用户和用户组,并将其主目录设置为/usr/local/nginx,同时禁止该用户登录系统。

三、下载Nginx源代码

从Nginx官方网站下载最新版本的源代码压缩包,并解压到指定目录:

mkdir ~/nginx && cd ~/nginx
wget http://nginx.org/download/nginx1.27.2.tar.gz
tar zxf nginx1.27.2.tar.gz
cd nginx1.27.2

四、配置编译选项

进入Nginx源代码目录后,运行./configure脚本来定义安装选项,以下是一个基本的配置示例,指定了安装路径和启用的模块:

./configure prefix=/usr/local/nginx \
            withhttp_ssl_module \
            withpcrejit \
            addmodule=path/to/your/nginx_modules_folder

在这个配置中:

如何在CentOS上编译Nginx?-图2
(图片来源网络,侵权删除)

prefix=/usr/local/nginx 指定了Nginx的安装目录。

withhttp_ssl_module 启用了HTTPS支持。

withpcrejit 启用了PCRE的即时编译功能,以提高正则表达式处理的性能。

addmodule=path/to/your/nginx_modules_folder 如果你有自定义的Nginx模块,可以在这里指定其路径。

五、编译与安装

配置完成后,使用以下命令编译并安装Nginx:

make
sudo make install

这个过程可能需要一些时间,具体取决于系统的性能。

如何在CentOS上编译Nginx?-图3
(图片来源网络,侵权删除)

六、启动Nginx

安装完成后,可以通过以下命令启动Nginx服务:

sudo /usr/local/nginx/sbin/nginx

为了确认Nginx是否成功启动,可以使用以下命令检查进程列表:

ps ef | grep nginx

你应该能够看到Nginx的master进程和worker进程在运行。

七、验证安装

打开你的Web浏览器,访问服务器的ip地址或域名,如果一切正常,你应该能够看到Nginx的欢迎页面。

八、配置Nginx为系统服务(可选)

为了使Nginx能够在系统启动时自动启动,并且方便管理,可以为Nginx创建一个systemd服务文件,以下是如何做到这一点的步骤:

1、创建一个新的systemd服务文件/etc/systemd/system/nginx.service

   sudo vi /etc/systemd/system/nginx.service

2、在文件中添加以下内容:

   [Unit]
   Description=The NGINX HTTP and reverse proxy server
   After=network.target
   
   [Service]
   Type=forking
   ExecStart=/usr/local/nginx/sbin/nginx
   ExecReload=/usr/local/nginx/sbin/nginx s reload
   ExecStop=/usr/local/nginx/sbin/nginx s quit
   PrivateTmp=true
   
   [Install]
   WantedBy=multiuser.target

3、重新加载systemd,以便它知道新的服务:

   sudo systemctl daemonreload

4、启动Nginx服务,并设置为开机启动:

   sudo systemctl start nginx
   sudo systemctl enable nginx

5、你可以使用以下命令检查Nginx服务的状态:

   sudo systemctl status nginx

通过以上步骤,你已经在CentOS上成功编译并安装了Nginx,并且将其配置为系统服务,你可以根据需要进一步配置Nginx以满足你的特定需求,例如设置虚拟主机、负载均衡或SSL证书等。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/18149.html

分享:
扫描分享到社交APP
上一篇
下一篇