在 CentOS 7 系统上安装 Nginx 是一项常见的任务,以下是详细的步骤指南:
1. 更新系统软件包
在开始安装之前,建议先更新系统的软件包,以确保所有软件包都是最新的:
sudo yum update -y
2. 安装 Nginx
有两种常见的安装方法:使用 yum
包管理器和从源代码编译安装。
方法一:使用 yum
包管理器安装
添加 Nginx 官方仓库
CentOS 7 默认的仓库中可能没有 Nginx。我们需要添加 Nginx 的官方仓库:sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
这将会在
/etc/yum.repos.d/
目录下创建一个名为nginx.repo
的文件,指向 Nginx 的官方仓库。安装 Nginx
添加仓库后,使用以下命令安装 Nginx:sudo yum install -y nginx
该命令会自动安装 Nginx 及其依赖项。
方法二:从源代码编译安装
安装编译依赖
编译 Nginx 需要一些开发工具和库,首先安装这些依赖:sudo yum groupinstall -y "Development Tools" sudo yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
下载 Nginx 源代码
访问 Nginx 官方下载页面,获取最新版本的源代码压缩包链接。然后使用wget
下载:wget https://nginx.org/download/nginx-1.24.0.tar.gz
解压源代码
下载完成后,解压源代码:tar -zxvf nginx-1.24.0.tar.gz
编译和安装
进入解压后的目录,进行编译和安装:cd nginx-1.24.0 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module make sudo make install
解释:
--prefix=/usr/local/nginx
:指定 Nginx 的安装目录。--with-http_stub_status_module
:启用状态监控模块。--with-http_gzip_static_module
:启用静态文件 Gzip 压缩模块。--with-http_realip_module
:启用获取真实客户端 IP 的模块。--with-http_sub_module
:启用子请求处理模块。--with-http_ssl_module
:启用 SSL 模块。
编译和安装完成后,Nginx 将安装在
/usr/local/nginx
目录下。
3. 启动 Nginx
无论使用哪种安装方法,启动 Nginx 的步骤相同:
sudo systemctl start nginx
4. 设置 Nginx 开机自启动
为了在系统重启后自动启动 Nginx,执行以下命令:
sudo systemctl enable nginx
5. 配置防火墙
如果系统启用了防火墙,需要开放 HTTP(80 端口)和 HTTPS(443 端口):
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
6. 验证 Nginx 是否安装成功
在浏览器中输入服务器的 IP 地址,应该能看到 Nginx 的欢迎页面,表示安装成功。
7. 管理 Nginx 服务
启动 Nginx:
sudo systemctl start nginx
停止 Nginx:
sudo systemctl stop nginx
重启 Nginx:
sudo systemctl restart nginx
重新加载配置(在修改配置文件后使用):
sudo systemctl reload nginx
查看 Nginx 状态:
sudo systemctl status nginx
8. 配置 Nginx
Nginx 的主配置文件位于 /etc/nginx/nginx.conf
,虚拟主机配置文件通常位于 /etc/nginx/conf.d/
目录下。根据需要修改这些配置文件,然后重新加载 Nginx 配置:
sudo systemctl reload nginx
注意事项
SELinux 设置:如果系统启用了 SELinux,可能需要调整 SELinux 策略,以允许 Nginx 访问所需的资源。可以使用以下命令:
sudo setsebool -P httpd_can_network_connect on
- 日志文件:Nginx 的日志文件通常位于
/var/log/nginx/
目录下,包括访问日志和错误日志。
通过以上步骤,您可以在 CentOS 7 系统上成功安装并配置 Nginx。