概述
记录一下 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
- 启动 Nginx:
- 查看Nginx进程:
常用操作目录
- 网站文件默认存放目录(已有 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)】
- 解压文件(目录随便):
tar -zxvf nginx-1.x.x.tar.gz
编译安装:
- 进入解压后 nginx 文件目录下(例如:
cd /nodreame/nginx-1.x.x.tar.gz)
运行命令配置编译结果路径:
./configure --prefix=/usr/share/nginx
- 这个阶段记得看看打印出来的 Configuration summary,注意需要安装哪些库
- 安装 C语言编译环境:
yum -y install make gcc gcc-c++ ncurses-devel
- 通用安装命令:
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
- 完成之后再次运行配置命令以检测
- Tip:熟练者请根据需要参考官网文档进行配置,这里的配置仅供初学者快速上手
- 编译(路径不变):
make
- 安装(路径不变):
make install
- 进入解压后 nginx 文件目录下(例如:
Step2. 启动测试
- 由于没有配置全局索引,所以每次操作进入/usr/share/nginx/sbin目录(该路径根据编译安装时配置目录不同而变化),执行
./nginx
命令以启动 Nginx,使用ps -ef | grep nginx
查看启动情况,有两行或两行以上回显即成功;
Step3. Nginx操作
A. Centos6.x版本
每次都进入目录操作 Nginx 太过于复杂,可以使用脚本来优化对 Nginx的控制
进入/etc/init.d目录,并获取官方提供的nginx脚本文件到该目录
- 方式一:到 https://www.nginx.com/resourc… 复制代码,然后黏贴到当前目录下的 nginx 文件(需要自己创建)中;
- 方式二:在当前目录直接
wget http://www.centos.bz/wp-content/uploads/2011/07/nginx
获取文件;
修改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
# 修改配置之后进行检测是否存在语法错误
B. Centos7.x 版本
- 启动:
/usr/share/nginx/sbin/nginx
- 停止:
/usr/share/nginx/sbin/nginx -s stop
- 重载:
/usr/share/nginx/sbin/nginx -s reload
- 测试:
/usr/share/nginx/sbin/nginx -t
- 强制关闭:
pkill nginx
三、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~