nginx高性能web服务器详解

本文最后更新于:2022年9月4日 下午

常见web服务器介绍

  • Apache
    • a patchy server
    • 占据web服务器的半壁江山
    • 开源
  • Tomcat
    • 轻量级应用服务器
    • 无法满足复杂业务场景
    • 免费、开源
    • 体积小,易于安装部署
  • Nginx
    • 免费、开源、后来居上
    • 高性能http服务器
    • 功能多(包括支持反向代理、负载均衡、IMAP/POP3代理服务、SSL等功能)
    • 常用功能:负载均衡、反向代理、web缓存

Nginx的安装

官网上的几个版本:

  • Mainline version:目前主力在做的版本,开发版
  • Stable version:最新稳定版,生产环境上建议使用的版本
  • Legacy versions:遗留的老版本的稳定版

安装:

  • 由于Nginx升级频繁,Linux下建议通过编译源码进行安装(gcc + automake)
  • sudo apt install nginx 命令可以直接安装
  • 安装完成后,运行 whereis nginx 以发现程序的安装位置
  • pidof nginx可以定位Nginx的进程号

一些特殊文件:

  • index.html:服务启动成功后默认显示的页面
  • logs目录:服务器日志
  • sbin目录:只有Nginx一个文件(可执行程序)

Nginx服务的启停控制

列出进程:

  • pidof
  • cat nginx.pid
  • ps -ef | grep nginx

常用指令:

  • kill signal pid 杀掉进程
  • sudo nginx -t 测试Nginx配置文件语法
  • sudo nginx -v 版本
  • sudo systemctl start nginx 启动nginx
  • sudo systemctl stop nginx 停止nginx
  • sudo systemctl restart nginx 重启nginx
  • sudo systemctl reload nginx 配置更改时,重新加载nginx
  • sudo systemctl status nginx 查看Nginx状态

Nginx基础配置

nginx的主要配置都放在nginx.conf文件中,#后面的内容被注释

conf文件的结构:

  • 全局块
    • 默认配置文件从最开始到events之间的内容
    • 包括运行Nginx的用户、允许的进程数、日志路径、配置引入等,影响nginx服务器整体运行
  • events块
    • 影响Nginx服务器与用户的网络连接,包括选择何种事件驱动模型处理连接请求、每个worker process可以同时支持的最大连接数等
  • http块
    • 代理、缓存、日志定义等功能在此配置
    • 该块内可以包含自己的全局块,也可以包含server块
  • server块
    • 每个server块相当于一个虚拟主机,内部可以有多个主机联合提供服务,一起对外提供服务
    • server块指令的作用域在本server块
    • server块可以包含自己的全局块和多个location块
  • location块
    • 本质是server块的一个指令,由于重要性在此单列
    • 作用:基于Nginx服务器接收到的请求字符串进行匹配,对特定请求进行处理
      • 地址定向
      • 数据缓存
      • 应答控制等
    • location url 匹配教程

nginx高性能web服务器详解
http://gls.show/p/913c096e/
作者
郭佳明
发布于
2022年9月4日
许可协议