如何在 CentOS 系统中安装和配置 nginx 服务? 原创
Posted PP小能手
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 CentOS 系统中安装和配置 nginx 服务? 原创相关的知识,希望对你有一定的参考价值。
由于目前负责公司 DevOps 平台的前端开发工作的原因,工作中会经常遇到 nginx 服务器相关的维护工作,通过学习和工作实践积累了一些 nginx 服务器的相关配置经验和知识积累。
在之前的《前端性能优化 – 启用 GZip 压缩》一文中就给大家介绍过如何在 nginx 中开启 gzip。并且也介绍过《如何将 Nginx 配置为 Windows 系统服务?》的方法。
今天就再来介绍一下如何在 CentOS 系统中安装和配置 nginx 服务?
启用 network 服务
如果你要维护的 CentOS 服务器是采用最小化安装的,那么系统安装完毕后,甚至连网络都是不可用的。所以在使用 CentOS 的包管理工具 yum 安装 nginx 服务之前,首先要开启 CentOS 的 network 网络服务。
我们需要先用 vi 编辑器打开 network 服务的配置文件,命令如下:
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
打开配置文件后,按 i 键,进入编辑模式。找到文件中的最后一行NOBOOT=no
,将no
改为yes
,然后按 : 键,接着输入 wq
,保存并退出 vi 编辑器。
接着我们就可以启动 network 网络服务了,命令如下:
# 设置为系统服务
sudo systemctl enable network
# 启动网络服务
sudo service network start
这样 CentOS 系统就可以访问网络了,我们就可以使用 yum 命令安装我们需要的软件了。我们可以安装 net-tools 工具看看效果:
# ifconfig 命令就在这个软件包中
sudo yum install -y net-tools
如果一切正常,你会看到 CentOS 可以通过网络从 CentOS 包仓库安装网络工具了(net-tools)包了。
安装 EPEL 仓库
现在我们已经可以访问网络了,但是还不能直接安装 nginx 服务器。因为 nginx 服务器软件的安装包默认不在 CentOS 的 yum 包安装源仓库中,需要添加 CentOS 7 EPEL 仓库,nginx 服务器软件的安装包在 EPEL 仓库里。安装 EPEL 仓库的命令如下:
sudo yum install -y epel-release
安装 nginx
在安装完 EPEL 仓库后,我们就可以直接使用 yum 在安装 nginx 了,命令如下:
sudo yum install -y nginx
nginx 命令
安装完 nginx 服务器的软件包后,我们就可以使用 nginx 的一些命令来进行相关的控制操作了。这里我就直接把所有 nginx 命令给出:
# 显示帮助
nginx -h
# 显示 nginx 版本
nginx -v
# 显示版本、构建信息和配置信息
nginx -V
# 检测 nginx.conf 配置是否正确
nginx -t
# 检测 nginx.conf 配置并显示出来
nginx -T
# 信号控制命令
# 启动
nginx -s start
# 停止
nginx -s stop
# 重启
nginx -s reload
# 打开错误日志
nginx -s reopen
# 退出
nignx -s quite
这些命令中,我们用的比较多的应该是信号控制命令以及nginx -t
了。
启动 nginx 服务
在我们实际的工作中很少直接用信号控制命令来控制 nginx 服务器的启动与重启等操作。通常我们都是通过将 nginx 作为系统服务,使用 CentOS 系统的 service
命令来控制 nginx 服务的启动与重启等操作。命令如下:
# 设置为系统服务
sudo systemctl enable nginx
# 启动 nginx 服务使用 start,还有 stop、restart 以及 reload
sudo service nginx start
启动 nginx 服务后,我们可以用以下命令查看 nginx 服务的运行状态:
# 验证查看服务状态
sudo service nginx status
nginx 关键文件
除了上面介绍的 nginx 常用命令,使用 nignx 另外一个需要了解的基础知识就是 nginx 服务的一些关键文件的路径和作用(PS:以下这些 nginx 关键文件的路径,都是指使用 yum 直接安装 nginx 的默认路径。)。
/etc/nginx
:nginx 配置文件的根目录,nginx 的所有配置文件都在这个目录下面;/etc/nginx/nginx.conf
:nginx 主配置文件,所有 nginx 的基础和全局配置都应该在这个文件中配置;/etc/nginx/conf.d
:nginx 默认站点配置文件所在目录;/var/log/nginx
:nginx 日志文件目录,访问日志 access.log 和 错误日志 error.log 都在这个目录中;
防火墙配置
到目前为止,我们已经启动了 nginx 服务了,不过如果想要外网能够访问我们在 nginx 服务器中配置的 Web 站点,我们还需要做一些额外的操作————那就是做防火墙配置,让 CentOS 系统对外网公开 80 端口和允许外部访问 http 服务。命令如下:
# 开启 80 端口
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
# 保存防火墙配置
sudo firewall-cmd --reload
如果你的 Web 站点启用 HTTPS 协议,那么你还需要让防火强对外公开 443 端口和 https 服务。
# 开启 443 端口
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
# 保存防火墙配置
sudo firewall-cmd --reload
现在,如果你在你的 DNS 服务器上做域名解析,将域名解析到目前 CentOS 服务器的 IP 地址,其他用户就可以通过域名访问你的 Web 站点了。
selinux 配置
通常,我们都会用 nginx 服务器做反响代理设置,配置 Web 站点集群,实现站点的高可用。那么这个时候我们还需要配置 selinux 配置,允许 http 服务间的通信。
# 允许 http 服务间的通信
sudo setsebool -P httpd_can_network_connect 1
到此为止,我们就完成了在 CentOS 安装和配置 nginx 服务全部基础操作了。
以上是关于如何在 CentOS 系统中安装和配置 nginx 服务? 原创的主要内容,如果未能解决你的问题,请参考以下文章