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. 基本运行原理
Nginx主进程master生成多个worker子进程,worker子进程负责处理工作。
3. Nginx基础配置
nginx.conf分为三个部分:
第一部分:全局块
第二部分:events块
第三部分:http块
对应图解: 每行配置通过
;
结尾
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;
- servername匹配分先后顺序,写在前面的匹配上就不会继续往下匹配了。
7.2 通配符匹配
server_name *.mmban.com
7.3 通配符结束匹配
server_name vod.*;
7.4 正则匹配
server_name ~^[0-9]+\.mmban\.com$;