搞懂nginx 这一篇就够了


搞懂nginx 这一篇就够了

文章插图
 
引言Nginx
  • 安装安装依赖
  • 下载
  • 编译安装编译时将 ssl 模块静态编译
  • nginx 服务架构模块化结构模块化开发
  • nginx 的模块化结构
  • nginx 的模块清单
  • nginx 的 web 请求处理机制
  • nginx 配置文件实例
  • nginx 服务器基础配置指令nginx.conf 文件的结构
  • nginx 运行相关的 Global 部分配置运行 nginx 服务器用户
  • 配置允许生成的 worker process 数
  • 配置 nginx 进程 PID 存放路径
  • 配置错误日志的存放路径
  • 配置文件的引入
  • 与用户的网络连接相关的 events设置网络连接的序列化
  • 设置是否允许同时接收多个网络连接
  • 事件驱动模型的选择
  • 配置最大连接数
  • httphttp Global 代理 - 缓存 - 日志 - 第三方模块配置定义 MIME-Type
  • 自定义服务日志
  • 配置允许 sendfile 方式传输文件
  • 配置连接超时时间
  • 单连接请求数上限
  • server配置网络监听
  • 基于名称的虚拟主机配置
  • 配置 https 证书
  • 基于 IP 的虚拟主机配置
  • 配置 location 块
  • [root] 配置请求的根目录
  • [alias] 更改 location 的 URI
  • 设置网站的默认首页
  • 设置网站的错误页面
  • 基于 IP 配置 nginx 的访问权限
  • 基于密码配置 nginx 的访问权限
  • 应用架设简单文件服务器
  • nginx 正向代理
  • nginx 服务器基础配置实例测试 myServer1 的访问
  • 测试 myServer2 的访问
  • 使用缓存
  • 使用 location 反向代理到已有网站
  • 其他ngx_http_sub_module 替换响应中内容
  • 配置 http 强制跳转 https
安装安装依赖
安装 nginx 之前 , 确保系统已经安装 gcc、openssl-devel、pcre-devel 和 zlib-devel 软件库
  • gcc 可以通过光盘直接选择安装
  • openssl-devel、zlib-devel 可以通过光盘直接选择安装 , https 时使用
  • pcre-devel 安装 pcre 库是为了使 nginx 支持 HTTP Rewrite 模块
下载
nginx 下载
编译安装
通过上面的下载页下载最新的稳定版
#wget http://nginx.org/download/nginx-1.8.0.tar.gz#tar xzvf nginx-1.8.0.tar.gz#cd nginx-1.8.0#./configure --prefix=/opt/X_nginx/nginx --with-http_ssl_module#make && sudo make install复制代码
  • --prefix=/opt/X_nginx/nginx 安装目录
  • --with-http_ssl_module 添加 https 支持
编译时将 ssl 模块静态编译
./configure --prefix=/opt/X_nginx/nginx--with-openssl=../openssl-1.0.2l--with-zlib=../zlib-1.2.11--with-pcre=../pcre-8.41--with-http_ssl_module复制代码nginx 服务架构模块化结构
nginx 服务器的开发完全遵循模块化设计思想
模块化开发
  1. 单一职责原则 , 一个模块只负责一个功能
  2. 将程序分解 , 自顶向下 , 逐步求精
  3. 高内聚 , 低耦合
nginx 的模块化结构
  • 核心模块:nginx 最基本最核心的服务 , 如进程管理、权限控制、日志记录;
  • 标准 HTTP 模块:nginx 服务器的标准 HTTP 功能;
  • 可选 HTTP 模块:处理特殊的 HTTP 请求
  • 邮件服务模块:邮件服务
  • 第三方模块:作为扩展 , 完成特殊功能
nginx 的模块清单