Nginx是一个免费的,开源的,高性能的HTTP和反向代理服务器,负责处理Internet上一些最大站点的负载。
Nginx可以被用来做一个独立的Web服务器,并作为Apache和其它web服务器的反向代理。
和Apache相比,Nginx可以处理大量并发连接,并且每个连接的内存占用量较小。
先决条件
在开始本教程之前,请确保您以具有sudo特权的用户身份登录,并且端口80或443上没有运行Apache或任何其他服务。
安装Nginx
Nginx软件包可在EPEL存储库中找到。如果尚未安装EPEL储存库,则可以通过键入以下内容进行操作:sudo yum -y install epel-release
yum安装
通过键入以下yum命令来安装Nginx:sudo yum -y install nginx
如果这是您首次从EPEL存储库安装软件包,yum可能会提示您导入EPEL GPG密钥(然而我在yum后加上-y,所以没有出现下面的内容):
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
Userid : "Fedora EPEL (7) "
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
Package : epel-release-7-9.noarch (@extras)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Is this ok [y/N]:
如果是这样,请键入y并回车。
启动Nginx
安装完成后,使用以下命令启用并启动Nginx服务:
sudo systemctl enable nginx
sudo systemctl start nginx
(创建了从/etc/systemd/system/multi-user.target.wants/nginx.service到/usr/lib/systemd/system/nginx.service的符号链接。)
检查Nginx服务
使用以下命令检查Nginx服务的状态:sudo systemctl status nginx
输出应如下所示:
打开端口
如果您的服务器受防火墙保护,则需要同时打开HTTP(80)和HTTPS(443)端口。
使用以下命令打开必要的端口:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
如果结果出现FirewallD is not running,说明没有启动防火墙。点此查看启动防火墙:
要验证您的Nginx安装,请在浏览器中输入您的服务器IP,您将看到默认的Nginx欢迎页面,如下图所示:
或者像我一样是这样子的:
可以再在浏览器输入http://你的服务器IP/50x.html,会出现nginx服务器的error页面:
使用systemctl管理Nginx服务
您可以通过与其他任何systemd单元相同的方式来管理Nginx服务。
要停止Nginx服务,请运行:sudo systemctl stop nginx
要重新启动,请键入:sudo systemctl start nginx
要重新启动Nginx的服务:sudo systemctl restart nginx
进行一些配置更改后,请重新加载Nginx服务:sudo systemctl reload nginx
如果要禁用Nginx服务以在启动时启动:sudo systemctl disable nginx
,并重新启用它:sudo systemctl enable nginx
。
Nginx配置文件的结构和最佳实践
所有Nginx配置文件都位于/etc/nginx/目录中。
Nginx的主要配置文件是/etc/nginx/nginx.conf。
为了使Nginx配置更易于维护,建议为每个域创建一个单独的配置文件。
新的Nginx服务器阻止文件必须以结尾.conf并存储在/etc/nginx/conf.d目录中。您可以依据您的需求拥有任意数量的服务器块。
遵循标准的命名约定,例如,如果您的域名是mydomain.com,那么您的配置文件应命名为/etc/nginx/conf.d/mydomain.com.conf。
如果在域服务器块中使用可重复的配置段,则最好创建一个目录,名为/etc/nginx/snippets将这些段重构为片段,并将片段文件包含在服务器块中。
Nginx日志文件(access.log和error.log)位于/var/log/nginx/目录中。建议有不同的access和error的服务器模块日志文件。
您可以将域文档的根目录设置为所需的任何位置。webroot的最常见位置包括:
- /home/<user_name>/<site_name>
- /var/www/<site_name>
- /var/www/html/<site_name>
- /opt/<site_name>
- /usr/share/nginx/html
结论
恭喜,您已经在CentOS 7服务器上成功安装了Nginx。现在,您准备开始部署应用程序并将Nginx用作Web服务器或代理服务器。如果您打算在CentOS服务器上托管多个域,则应学习如何创建Nginx服务器块。