概述
记录一下 Nginx 通过安装包以及通过源代码安装两种方式。目标是第一次接触 Nginx 的人也能看懂直接用。
一. 使用安装包配置
Tip: 这种安装方式比较简单,官方文档也说得比较清楚详细。这里搭建的环境是 Centos7, 可以 systemctl 命令操作 Nginx, 使用 Centos6 的童鞋请参考本文的 二、从源代码安装 -Step3. 配置控制脚本 部分描述。
Step1: 下载安装
运行 sudo yum install yum-utils 安装依赖;
进入目录 /etc/yum.repos.d,运行 vim nginx.repo 创建文件并黏贴以下代码:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
使用命令行安装 Nginx: sudo yum install nginx
设置 Nginx 开机启动:systemctl enable nginx.service
至此安装已经全部完成
Step2: 使用
配置 nginx.conf 文件位置通常在如下三个地方:
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
操作:
查看 Nginx 进程:ps -ef | grep nginx
基本操作:
启动 Nginx: systemctl start nginx.service
查询 Nginx 状态:systemctl status nginx.service
停止 Nginx:systemctl stop nginx.service
修改配置后测试:nginx -t
配置生效(重载):systemctl reload nginx.service
常用操作目录
网站文件默认存放目录(已有 index 和 50x 页面文件):/usr/share/nginx/html
网站默认站点配置:/etc/nginx/conf.d/default.conf
自定义 Nginx 站点配置文件目录:/etc/nginx/conf.d
Nginx 全局设置:/etc/nginx/nginx.conf
二、从源代码安装
Tip:这种安装方式相对蛋疼,官网文档可能认为用这个的都是大神,全写配置项介绍了,新手看着难受故不推荐(除非遇到无法下载安装包的情况)。本节安装环境为 Centos6.7.
Step1. 下载安装
下载:
本地电脑进入官网下载区下载 nginx 源码包(Centos 可用源码文件名称格式为 nginx-1.x.x.tar.gz)
将源码包上传到服务器,scp【本机路径 /nginx-1.x.x.tar.gz】【服务器用户名 @服务器 IP】:【目标路径(例如:用户文件夹 /nodreame)】
解压文件(目录随便):unzip nginx-1.x.x.tar.gz
编译安装:
进入解压后 nginx 文件目录下(例如:cd /nodreame/nginx-1.x.x.tar.gz)
运行命令配置编译结果路径:./configure –prefix=/usr/share/nginx
这个阶段记得看看打印出来的 Configuration summary,注意需要安装哪些库
通用安装命令:yum -y install zlib zlib-devel openssl openssl–devel pcre pcre-devel
完成之后再次运行配置命令以检测
Tip:熟练者请根据需要参考官网文档进行配置,这里的配置仅供初学者快速上手
编译(路径不变):make
安装(路径不变):make install
Step2. 启动测试
由于没有配置全局索引,所以每次操作进入 /usr/share/nginx/sbin 目录(该路径根据编译安装时配置目录不同而变化),执行 ./nginx 命令以启动 Nginx,使用 ps -ef | grep nginx 查看启动情况,有两行或两行以上回显即成功;
Step3. 配置控制脚本
每次都进入目录操作 Nginx 太过于复杂,可以使用脚本来优化对 Nginx 的控制
进入 /etc/init.d 目录,并获取官方提供的 nginx 脚本文件到该目录
到 https://www.nginx.com/resourc… 复制代码,然后黏贴到当前目录下的 nginx 文件(需要自己创建)中;
在当前目录直接 wget http://www.centos.bz/wp-conte… 获取文件;
修改 nginx 脚本文件
格式处理:由于可能 nginx 脚本文件的文件格式可能为 [dos] 或者[mac],导致发生 ”env: /etc/init.c/nginx: No such file or directory” 错误,所以对 nginx 脚本文件进行格式设置处理,操作如下所示:
vi nginx
:set fileformat=unix
:wq
文件提权:nginx 脚本文件当前权限无法运行,故对其进行提权 chmod 0777 nginx
配置修改:由于现在是 ” 从源代码安装 Nginx” 的环节,每个人对自己电脑的 Nginx 配置位置存在差异,所以这里需要修改 nginx 脚本文件 两个地方:
nginx=”” 这个位置:需要替换成自己的 Nginx 可执行文件路径,也就是【” 编译安装 ” 阶段的配置路径】+ /sbin/nginx,我的路径是 /usr/share/nginx/sbin/nginx
NGINX_CONF_FILE=”” 这个位置:需要替换成自己的 Nginx 配置文件路径,也就是【” 编译安装 ” 阶段的配置路径】+ /conf/nginx.conf,我的路径是 /usr/share/nginx/conf/nginx.conf
加入系统管理:
chkconfig –add /etc/init.d/nginx
chkconfig nginx on
基础控制命令:
service nginx start
service nginx stop
service nginx restart
service nginx reload
service nginx configtest # 修改配置之后进行检测是否存在语法错误
三、Nginx 可访问测试
1. 运行测试:
使用 ps -ef|grep nginx 命令检查 nginx 运行情况,有两行或两行以上回显即成功。如果发现运行只有一行回显,可能是当前端口被占用,使用 ps -ef | grep【Nginx 端口号,默认 80】,如果打印结果为两行或以上,即端口被占用,需要修改 nginx 配置文件的端口号再重新运行。
1) 端口号占用测试 ps -ef | grep【端口号】;
2) 当你参照一. 使用安装包配置安装时,运行 vim /etc/nginx/conf.d/default.conf, 将 listen 后面的数字替换为你测试过未被占用的端口号;
3) 当你参照二、从源代码安装安装时,运行 vim /usr/share/nginx/conf/nginx.conf, 将 listen 后面的数字替换为你测试过未被占用的端口号;
4) 保存并测试脚本是否有误,确认无误之后重载 Nginx;
5) 再次使用 ps -ef|grep nginx 命令检查 nginx 运行情况;
2. Centos 本机访问测试
在命令行运行 curl http://localhost:Nginx 端口号(默认 80),如果能够看到简单的 html 信息则为 Nginx 配置成功;
3. 远程访问测试
在浏览器地址栏输入 http://【Centos 服务器 IP 地址】:Nginx 端口号(默认 80),看到 Welcome to nginx!即网站访问通道已打通;如果访问失败请先确定 运行测试 及 Centos 本机访问测试 已通过,完成之后咨询网络管理员端口限制情况方便定位问题;
That’s all & Thx~