如何在 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 服务? 原创的主要内容,如果未能解决你的问题,请参考以下文章

在CentOS中安装和使用nginx

CentOs6.5中安装和配置vsftp简明教程

01 CentOS7中安装和启动solr

在Ubuntu中安装和升级软件的利器:PPA

CentOS 中安装和更新 git 客户端工具

LibreOffice SDK:如何在 mac 中安装和配置 LibreOffice SDK