Nginx 是一个免费的、开源的、高性能的 HTTP 和反向代理服务,主要负责负载一些访问量比较大的站点。
Nginx 可以作为一个独立的 Web 服务,也可以用来给 Apache 或是其他的 Web 服务做反向代理。
相比于 Apache,Nginx 可以处理更多的并发连接,而且每个连接的内存占用的非常小。
开始前的准备
在开始阅读此教程之前,请确保你是以拥有 sudo 权限的用户来登录的服务器,并且服务器中没有 Apache 或是其他服务正在使用 80(HTTP) 和 443(HTTPS) 端口上,防止端口被占用,造成 Nginx 无法正常启动。
在 CentOS 中安装 Nginx
请按照下面的步骤,在 CentOS 中安装 Nginx。
1、 EPEL 仓库中有 Nginx 的安装包。如果你还没有安装过 EPEL,可以通过运行下面的命令来完成安装:
上面代码的意思是以 sudo 权限运行安装 epel-release,如果你当前登录的用户不是 root,则会提示你输入密码来运行,输入密码时是看不到输入的内容的,所以不用担心,继续输入就行。然后回车继续运行,后面的命令中如果包含 sudo 则都表明是刚提到的意思,不再重复解释。
2、 输入以下命令来安装 Nginx:
如果这是您第一次从 EPEL 仓库中安装软件,yum 可能会提示您导入 EPEL GPG key:
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5: Userid : “Fedora EPEL (7)
epel@fedoraproject.org” 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,然后 Enter(回车) 即可继续安装。
3、 等到安装完成以后,可以通过以下命令来设置开机启动和运行 Nginx 服务:
设置 Nginx 开机启动:
运行以上命令以后,会输出类似以下的内容,表示创建了一个软连接来关联 Nginx,不用担心,并不是报错了,下一步就可以启动 Nginx 了。
bash Created symlink from
/etc/systemd/system/multi-user.target.wants/nginx.service to
/usr/lib/systemd/system/nginx.service.
启动 Nginx:
通过运行以下命令,来检查 Nginx 的运行状态:
然后会输出类型下面的内容
● nginx.service - The nginx HTTP and reverse proxy server Loaded:
loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset:
disabled) Active: active (running) since Mon 2018-03-12 16:12:48
UTC; 2s ago Process: 1677 ExecStart=/usr/sbin/nginx (code=exited,
status=0/SUCCESS) Process: 1675 ExecStartPre=/usr/sbin/nginx -t
(code=exited, status=0/SUCCESS) Process: 1673
ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited,
status=0/SUCCESS) Main PID: 1680 (nginx) CGroup:
/system.slice/nginx.service
├─1680 nginx: master process /usr/sbin/nginx
└─1681 nginx: worker process
4、 如果你的服务器开启了防火墙,则需要同时打开 80(HTTP)和 443(HTTPS)端口
通过下面的命令来打开这两个端口:
国内的服务器厂商,安全组也可能会默认屏蔽这两个端口,比如 阿里云 和 腾讯云,如果在 第 5 步 时发现无法访问,可以自行百度一下如何放开这两个端口。
5、 验证 Nginx 是否成功启动,可以在浏览器中打开 http://YOUR_IP,您将看到默认的 Nginx 欢迎页面,类似于下图所示:
Welcome to Nginx
注:Nginx 的默认欢迎页有好几种样式,和你安装的版本有关,所以大家只用关注这个页面的大标题就行了 Welcome to nginx!
通过 systemctl 管理 Nginx
你可以像管理其他服务那样管理 Nginx。
启动 Nginx
停止 Nginx
重启 Nginx
修改 Nginx 配置后,重新加载
设置开机启动 Nginx
关闭开机启动 Nginx
Nginx 的配置文件和最佳实践
通过以上方式安装的 Nginx,所有相关的配置文件都在 /etc/nginx/ 目录中。
Nginx 的主配置文件是
/etc/nginx/nginx.conf
为了使 Nginx 配置更易于维护,建议为每个服务(域名)创建一个单独的配置文件。
每一个独立的 Nginx 服务配置文件都必须以 .conf 结尾,并存储在 /etc/nginx/conf.d 目录中。您可以根据需求,创建任意多个独立的配置文件。
独立的配置文件,建议遵循以下命名约定,比如你的域名是 kaifazhinan.com,那么你的配置文件的应该是这样的
/etc/nginx/conf.d/kaifazhinan.com.conf
如果你在一个服务器中部署多个服务,当然你也可以在文件名中加上 Nginx 转发的端口号,比如 kaifazhinan.com.3000.conf,这样做看起来会更加友好。
如果你的配置中有很多重复的代码,那么建议你创建一个 /etc/nginx/snippets 文件夹,在这里面存放所有会被复用的代码块,然后在各个需要用到的 Nginx 的配置文件中引用进去,这样可以更方便管理和修改。
Nginx 日志文件(access.log 和 error.log )位于 /var/log/nginx/ 目录中。建议为每个独立的服务配置不同的访问权限和错误日志文件,这样查找错误时,会更加方便快捷。
你可以将要部署的代码文件,存储在任何你想的位置,但是一般推荐存放在下列位置中的其中一个: