- nginx安装环境准备
- 因为yum只使用/yum.repos.d一级目录下的源,所以我们进行旧的备份,方便我们下载新的yum源
- 清空旧的yum缓存
- 生成新的阿里云的yum缓存
- 安装如下编译工具
- 安装nginx所需的一些第三方系统库支持,比如nginx的静态资源压缩功能所需的gzip,lib库,nginx需要支持URL重写所需的pcre库,perl开发的依赖库,以及nginx搭建加密站点https,所需的openssl依赖库等
- 安装完毕nginx所需的基础依赖库,还得检查系统的防火墙是否关闭,selinux关闭,yum配置,网络情况等等
- 编译安装nginx
- 从nginx官网下载代码
- 从淘宝获取nginx代码
- 如果没有设置环境变量,我们可以通过文件的绝对路径运行
- 设置了环境变量,指令如下
- 了解nginx配置文件
- 配置文件中,更改该行内容,更改最后的数字
worker_processes 3;
nginx安装环境准备
- 操作系统的选择,centos7
下载nginx的方式
rpm包安装 yum工具自动化安装 获取源代码,手动编译安装nginx(指定安装路径,额外的开启nginx第三方的功能)
- 由于我们使用nginx希望能够拥有更多完整的功能,所以最好使用源代码编译安装,使用rpm和yum会比较简陋
选择nginx编译安装,那么就需要解决好linux的编译开发环境,gcc,make编译工具
使用yum工具之前,必须配置好阿里云的yum源
步骤1:确保有wget命令 yum install wget -y 步骤2:备份旧的yum仓库文件 mkdir /etc/yum.repos.d/repobak mv /etc/yum.repos.d/* /etc/yum.repos.d/repobak
因为yum只使用/yum.repos.d一级目录下的源,所以我们进行旧的备份,方便我们下载新的yum源
访问阿里云的镜像站:http://developer.aliyun.com/mirror/,通过查看可以找到各类型的yum安装地址 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
清空旧的yum缓存
yum clean all
生成新的阿里云的yum缓存
yum makecache
安装如下编译工具
yum install -y gcc gcc-c++ autoconf autoconf automake make
安装nginx所需的一些第三方系统库支持,比如nginx的静态资源压缩功能所需的gzip,lib库,nginx需要支持URL重写所需的pcre库,perl开发的依赖库,以及nginx搭建加密站点https,所需的openssl依赖库等
yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel wget httpd-tools vim -y
安装完毕nginx所需的基础依赖库,还得检查系统的防火墙是否关闭,selinux关闭,yum配置,网络情况等等
iptables -L #没有任何规则即可 getenforce #显示disable即可 ping baidu.com #能够连网即可
编译安装nginx
下载程序源代码
从nginx官网下载代码
wget https://nginx.org/download/nginx-1.21.6.tar.gz
从淘宝获取nginx代码
官网:https://tengine.taobao.org wget https://tengine.taobao.org/download/tengine-2.3.3.tar.gz
解压缩淘宝nginx或者官网ngxin源代码
tar -zxvf tengine-2.3.3.tar.gz
进入源代码目录,简单了解其中的文件作用
[root@localhost tengine-2.3.3]# ll total 388 -rw-rw-r— 1 root root 931 Mar 29 2021 AUTHORS.te drwxrwxr-x 6 root root 4096 Mar 29 2021 auto #检测系统模块依赖信息 -rw-rw-r— 1 root root 302927 Mar 29 2021 CHANGES #存放nginx的变化记录日志 -rw-rw-r— 1 root root 27289 Mar 29 2021 CHANGES.cn -rw-rw-r— 1 root root 34831 Mar 29 2021 CHANGES.te drwxrwxr-x 2 root root 184 Mar 29 2021 conf #存放nginx主配置文件的目录 -rwxrwxr-x 1 root root 2502 Mar 29 2021 configure #可执行的脚本,用于释放编译文件的定制脚本 drwxrwxr-x 4 root root 109 Mar 29 2021 contrib #提供了vim插件,让配置文件颜色区分,更友好 drwxrwxr-x 4 root root 67 Mar 29 2021 docs drwxrwxr-x 2 root root 40 Mar 29 2021 html #存放了标准的html页面文件 -rw-rw-r— 1 root root 1715 Mar 29 2021 LICENSE drwxrwxr-x 2 root root 21 Mar 29 2021 man drwxrwxr-x 26 root root 4096 Mar 29 2021 modules drwxrwxr-x 3 root root 20 Mar 29 2021 packages -rw-rw-r— 1 root root 3450 Mar 29 2021 README.markdown drwxrwxr-x 10 root root 103 Mar 29 2021 src #存放了nginx源代码的目录 drwxrwxr-x 4 root root 43 Mar 29 2021 tests -rw-rw-r— 1 root root 43 Mar 29 2021 THANKS.te
编译源代码文件
./configure —help #查看编译帮助信息 第一曲:执行编译脚本文件,指定安装路径,以及开启额外功能等 ./configure —prefix=/opt/tbnginx233 —with-http_ssl_module —with-http_flv_module —with-http_gzip_static_module —with-http_stub_status_module —with-threads —with-file-aio 第二曲:输入 make 指令(下一步安装) 第三曲:输入 make install (开始安装)
查看安装后的nginx目录
[root@dzclinux tbnginx233]# ls conf html logs sbin conf:存放nginx的配置文件,如nginx.conf html:存放nginx的网页根目录文件,存放站点的静态文件数据 logs:存放nginx的各种日志目录 sbin:存放该软件的可执行命令
编写一个nginx专属的环境变量
vim /etc/profile.d/nginx.sh ==>> export PATH=”$PATH:/opt/tbnginx233/sbin” 这个时候我们重启服务器,加载所有的环境变量,通过echo $PATH命令,可以查看到我们新加入的nginx环境变量
有了环境变量,快捷的使用nginx指令
如果没有设置环境变量,我们可以通过文件的绝对路径运行
/opt/tbnginx233/sbin/nginx
设置了环境变量,指令如下
nginx #直接输入nginx,表示启动该进程,这个时候再次启动会报错,端口被占用 nginx -s stop #停止nginx服务 nginx -s reload #平滑重启,不关闭nginx,直接重新加载配置文件
了解nginx配置文件
nginx.conf重要的指令块
核心功能都在于http{}指令块里,http{}块还包含了以下指令
- server{}指令块,对应一个站点配置,反向代理,静态资源站点
- location{},对应一个url
-
nginx配置文件语法
nginx.conf是由指令和指令块组成
- 每行语句都得有分号结束,指令和参数之间是有空格分割的
- 指令块可以由大括号{}组织多条语句
- nginx.conf使用#号表示注释符
- nginx支持用 $变量名 语法规则
- nginx支持include语句,组合多个配置文件
- nginx部分指令支持正则表达式,如rewrite重写指令
nginx命令行
nginx启停的指令 -s参数,给nginx进程发送某种信号
nginx #初期启动,直接输入nginx,再启动会端口冲突 nginx -s stop #停止nginx进程 nginx -s reload #平滑重启 quit 优雅停止 reopen 重新记录nginx日志
查看nginx命令帮助
nginx -h
-?,-h:输出nginx的帮助信息
-v:列出nginx的版本号
-V:列出nginx的版本和编译参数信息
-t:检查nginx的配置文件,语法是否正确
-T:检查配置,并输出配置信息
-q:在检测配置文件期间,屏蔽非错误信息
-p:设置nginx目录前缀
-c:指定配置文件启动
-g:覆盖设置一些默认参数
-m:列出nginx所有支持的模块
-l:列出nginx目录相关信息
命令行案例
配置文件重读
- 检查当前的nginx进程
ps -ef | grep nginx
- 修改nginx.conf配置参数
配置文件中,更改该行内容,更改最后的数字
worker_processes 3;
- 重新加载nginx配置
nginx-master信号传递
- master主进程是不处理请求的,而是分配请求发给worker进程,主进程负责重启,热加载,热部署等等
- master是根据nginx.conf中,worker_process定义启动时创建的工作进程数
- 当worker运行后,master就处于一个等待的状态,等待用户的请求来临,或者系统信号
- 系统管理员可以发送kill指令,或者nginx -s 信号,这样的形式操控nginx
