- 基础
- nginx简介
- 常见的web服务器
- nginx优点
- nginx常用功能
- 准备工作
- nginx的centos安装
- nginx服务的启停
- nginx的版本升级
- nginx配置文件
nginx官网
- 高性能的web服务器,用于正向代理、反向代理、负载均衡;
- 使用C语言编写;
- 也是POP3/SMTP/IMAP代理服务器
相关概念:
web服务器,为用户提供网上信息浏览;
http, 超文本传输协议;
正向代理,代理客户端;
反向代理, 代理服务器;
负载均衡, 将接收到的所有的客户端的请求,均匀转发给不同的服务器,使服务资源得到合理利用。
- IIS, 基于windows的服务器;
- Tomcat,java领域的重量级的web服务器;
- Apache, 出现比较久,不支持高并发;
- nginx, 高性能
目前,国内以nginx使用为主
- 速度快,高并发:采用多进程&IO多路复用;
- 多模块组成,扩展性强;
- 多进程,保证高可靠性;master进程管理多个worker进程;
- 热部署,不停止服务的情况下,进行升级、更新;
- 成本低,BSD开源许可
nginx可以修改并免费用于商业领域
- 静态资源部署
- 地址重写
- 反向代理、负载均衡(轮询、加权轮询、ip_hash、url_hash)
- web缓存、高可用环境、用户认证
- 重要部分:
nginx.conf、error.log、access.log
- centos虚拟机
- 查看linux(uname -a)内核>2.6
- 虚拟机为桥接/net,必须可以联网;
- 关闭防火墙
# 临时关闭防火墙 systemctl stop firewalld systemctl status firewalld # 永久关闭 systemctl disable firewalld
- 停用selinux(sestatus查看)
cd /etc/selinux sudo vim config # 注释,并添加 # SELINUX=enforcing SELINUX=false
保存,退出, reboot
nginx的centos安装- 源码安装
# gcc编译器 sudo yum install -y gcc # 兼容正则表达式 yum install -y pcre pcre-devel # 压缩包 openssl通信加密 yum install -y zlib zlib-devel openssl openssl-devel # rpm -qa xxx # 包管理工具 # 下载nginx wget https://nginx.org/download/nginx-1.20.2.tar.gz # 解压 sudo -s tar -zxvf xxx.tar.gz -C /usr/local/ # cd nginx-xxx ./configure # configure复杂安装的参数 # --prefix=path 安装的目录,默认/usr/local/nginx # --sbin-path=path 可执行文件的路径,在prefix/sbin/nginx # --modules-path=xxxx, 动态模块的安装路径 # --conf-path=xxx, 配置文件的路径(nginx.conf) # --error-log-path =xx 错误日志路径 # --http-log-path = xx , 访问日志路径 # --pid-path 进程id文件路径 # --lock-path 锁文件路径 # 编译 make # 安装 默认安装在/usr/local/nginx make install # 进入安装目录bin,启动 ./nginx # 浏览器中输入当前ip地址(监听80),查看是否成功
- yum安装
# nginx官网--文档--linux # 参考官网步骤
- 两种方式的差异
# 查看版本 nginx -V # 两种安装差异是configure arguments参数 # 安装的目录(/usr/local/nginx)下的文件 # html 页面文件 index.html 50x.html # conf/nginx.conf 配置文件
- 卸载nginx,并重新安装
# 1. 停止nginx进程 ./nginx -s stop # 2. 删除安装的nginx sudo rm -rf /usr/local/nginx # 3. 在解压的文件目录下,清除编译环境 make cleannginx服务的启停
- nginx服务的信号—控制
nginx,多进程方式运行;
master进程,管理worker进程;
worker进程,处理用户的请求;
# 立即关闭 kill -term 11720 # 优雅地关闭,中间的部分即为信号量 kill -quit 2317 # 重新加载配置文件 kill -hup 11720 # 仅仅关闭worker进程,将信号给master kill -winch 11720 # 热升级 kill -usr2 11720
- nginx命令行–控制
./nginx -h # help ./nginx -v/-V # 版本信息 ./nginx -t/-T # 测试配置文件的语法是否有错 ./nginx -s stop # 信号量--》 立即关闭 ./nginx -s quit # 优雅地关闭 ./nginx -s reload # 重新加载配置文件 ./nginx -c xxx.conf # 指定配置文件路径
nginx的版本升级
在服务不停止的情况下,升级
- 信号量
# 1. 安装一个低版本的,并启动nginx # 2. 在高版本解压目录下的configure & make # 3. 复制低版本master&worker进程 # kill -usr2 主进程id # 4. mv /usr/local/nginx/sbin/nginx xxx/nginxold # 5. cp /home/laufing/nginx-1.20.2/objs/nginx /usr/local/nginx/sbin/ # 6. 最后kill -term 旧的主进程id
- make命令
将新版别的nginx二进制(make编译)文件,复制到安装目录; 然后make upgrade



