Skip to content

Nginx入门

1. Nginx目录结构

sh
[jack@hadoop101 nginx]$ ll
总用量 16
drwxr-xr-x. 2 root root 4096 4月   8 03:41 conf
drwxr-xr-x. 2 root root 4096 4月   8 03:41 html
drwxr-xr-x. 2 root root 4096 4月   8 03:41 logs
drwxr-xr-x. 2 root root 4096 4月   8 03:41 sbin

1.1 conf目录

存放Nginx的相关配置文件,主文件是nginx.conf,nginx可以引用其他配置文件。

1.2 html目录

里面默认提供了两个html页面,分别为50x.html和index.html

1.3 logs目录

启动Nginx,会在当前目录下生成3个文件,分别为:

  • access.log (记录所有请求)
  • error.log (记录所有错误信息)
  • nginx.pid (Nginx启动的主进程id)

1.4 sbin目录

编译后生成的可执行文件nginx的存放目录。

2. 基本运行原理

Alt text Nginx主进程master生成多个worker子进程,worker子进程负责处理工作。

3. Nginx基础配置

nginx.conf分为三个部分:
第一部分:全局块
第二部分:events块
第三部分:http块
对应图解:
Alt text 每行配置通过;结尾

4. 全局块

  • user: 运行 Nginx的用户(组)
  • worker_processes: 默认为1,表示开启一个Worker进程。
  • pid: 进程PID存放路径
  • error_log: 日志存放路径

5. events块

  • worker_connections: 默认为1024,单个Worker进程可接受连接数。

6. http块

6.1 子全局块

  • include mime.types;: 引入http mime类型。
  • default_type application/octet-stream;: 如果mime类型没匹配上,默认使用二进制流的方式传输。
  • sendfile on;: 使用linux的sendfile(socket, file, len)高效网络传输,也就是数据0拷贝。
  • keepalive_timeout 65;: 长连接超时时间。

6.2 server块(虚拟主机)

原本一台服务器只能对应一个站点,通过虚拟主机技术可以虚拟化成多个站点同时对外提供服务。

  • listen 80;: 监听端口号。
  • server_name localhost;: 主机名。
  • location /: 匹配路径,一个server块可以配置多个location块。
    • root html;: 文件根目录。
    • index index.html index.htm;: 默认页名称。
  • error_page 500 502 503 504 /50x.html;: 报错编码对应页面。

7. server_name匹配规则

7.1 完整匹配

比如在同一servername中匹配多个域名:
server_name vod.mmban.com www1.mmban.com;

  1. servername匹配分先后顺序,写在前面的匹配上就不会继续往下匹配了。

7.2 通配符匹配

server_name *.mmban.com

7.3 通配符结束匹配

server_name vod.*;

7.4 正则匹配

server_name ~^[0-9]+\.mmban\.com$;