HCRM博客

如何在CentOS上编译安装Nginx?

在CentOS 7上编译安装Nginx的详细步骤如下:

1、准备环境:确保系统已安装必要的编译工具和依赖项,在CentOS 7上,可以使用以下命令安装这些工具:

如何在CentOS上编译安装Nginx?-图1
(图片来源网络,侵权删除)
   sudo yum install y gcc gccc++ make zlibdevel pcredevel openssldevel

2、创建用户和用户组(可选):为了提高系统的安全性和管理性,可以创建一个名为"nginx"的用户和用户组。

   sudo useradd s /sbin/nologin nginx

3、下载Nginx源代码:从Nginx官方网站下载最新版本的源代码压缩包,并解压缩,下载Nginx 1.24.0的源代码:

   wget http://nginx.org/download/nginx1.24.0.tar.gz
   tar zxvf nginx1.24.0.tar.gz
   cd nginx1.24.0

4、配置编译选项:进入Nginx源代码目录并运行configure脚本,同时指定Nginx的安装目录以及使用的用户和组(如果之前创建了nginx用户和用户组)。

   ./configure prefix=/usr/local/nginx user=nginx group=nginx

这将配置Nginx以使用"/usr/local/nginx"作为安装目录,并以"nginx"用户和用户组的身份运行。

5、编译和安装:使用make命令编译Nginx,并使用make install命令将Nginx安装到指定的目录。

   make
   sudo make install

6、启动Nginx:使用以下命令启动Nginx服务:

如何在CentOS上编译安装Nginx?-图2
(图片来源网络,侵权删除)
   sudo /usr/local/nginx/sbin/nginx

7、验证安装:打开Web浏览器并访问服务器的IP地址或域名,您应该能够看到Nginx的欢迎页面。

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

为了使Nginx能够在系统启动时自动启动,可以为其创建一个systemd服务文件。

1、创建systemd服务文件:在/etc/systemd/system/目录下创建一个新的service文件,例如nginx.service

   sudo touch /etc/systemd/system/nginx.service
   sudo nano /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,以便它知道新的服务:

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

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

   sudo systemctl start nginx
   sudo systemctl enable nginx

您已经通过编译源代码的方式在CentOS 7上成功安装了Nginx,并且配置为系统服务,您可以根据需要编辑/usr/local/nginx/conf/nginx.conf文件来配置Nginx以满足您的特定需求,例如设置虚拟主机、负载均衡或SSL证书等。

FAQs

1、如何更改Nginx的安装路径?

在运行./configure脚本时,可以通过prefix选项指定安装路径,如果您想将Nginx安装到/opt/nginx目录,可以在./configure命令中添加prefix=/opt/nginx

2、如何修改Nginx的配置文件而不重启服务?

您可以使用nginx s reload命令来重新加载Nginx的配置文件,而无需停止和重新启动服务,这会在不中断当前连接的情况下应用配置更改,如果您已经将Nginx设置为系统服务,也可以使用以下命令:

   sudo systemctl reload nginx
分享:
扫描分享到社交APP
上一篇
下一篇