Nginx笔记-0-Centos环境下安装

概述

记录一下 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的控制
  1. 进入/etc/init.d目录,并获取官方提供的nginx脚本文件到该目录

  2. 修改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~

相关推荐