目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

X

Nginx

Nginx 主要应用场景

应用场景

  • 静态资源服务
  • 反向代理(缓存、负载均衡)
  • API 服务

Nginx 的大规模使用的原因

  • 互联网的数据量快速增长
  • 摩尔定律的失效。
  • 操作系统、大量软件没有做好服务于多核 CPU 的准备。譬如:低效的 Apache 一个连接对应一个进程。

Nginx 优势

  • 高并发,高性能
  • 可扩展性好
  • 高可靠性
  • 热部署
  • BSD 许可证

Nginx 的组成

  • 二进制可执行文件:由各模块源码编译出的一个文件。
  • 配置文件:控制 Nginx 的行为。
  • 访问日志:记录每一条 http 请求信息。
  • 错误日志:定位问题。

编译 Nginx

下载

[root@localhost test]# wget http://nginx.org/download/nginx-1.14.2.tar.gz
[root@localhost test]# tar -xzf nginx-1.14.2.tar.gz

各目录简介

[root@localhost test]# cd nginx-1.14.2/
[root@localhost nginx-1.14.2]# ls

# Nginx配置文件vim下语法高亮显示
[root@localhost nginx-1.14.2]# cp -r contrib/vim/* /usr/share/vim/vimfiles/

Configure

[root@localhost nginx-1.14.2]# mkdir -pv /home/geek/nginx 
[root@localhost nginx-1.14.2]# ./configure --prefix=/home/geek/nginx

中间文件介绍

[root@localhost nginx-1.14.2]# ls objs/
autoconf.err  
Makefile  
ngx_auto_config.h  
ngx_auto_headers.h  
ngx_modules.c    # 决定哪些模块被编译到Nginx中
src

编译

[root@localhost nginx-1.14.2]# make

安装

[root@localhost nginx-1.14.2]# make install

启动

[root@localhost nginx]# cd /home/geek/nginx/sbin/
[root@localhost sbin]# ./nginx

Nginx 配置语法

  • 配置文件由指令与指令块构成。
  • 每条指令以分号结尾,指令与参数间以空格符号分隔。
  • 指令块以大括号将多条指令阻止在一起。
  • include 语句允许组合多个配置文件以提升可维护性。
  • 使用#符号添加注释,提高可读性。
  • 使用 $ 符号使用变量。
  • 部分指令的参数支持正则表达式。

作者:Soulboy