1 Nginx概述
1.1 Nginx简介
Nginx是一个开源的高性能、可靠的HTTP中间件、代理服务器。
常见的HTTP服务:
- HTTPD:Apache基金会
- IIS:微软
- tengline:淘宝基于nginx开发
Nginx应用场景
- 静态处理
- 反向代理
- 负载均衡
- 资源缓存
- 安全防护
- 访问限制
- 访问认证
nginx特性
- 采用IO多路复用:epoll
- 轻量级:功能模块少、代码模块化
- CPU亲和:将CPU核心与Nginx工作进程绑定,将每个worker进程固定在某个CPU上进行,减少切换CPU的
cache miss
- sendfile零拷贝实现高效文件传输。
1.2 Nginx安装
略
nginx 启动
找到nginx安装目录下的./sbin/nginx 跟上配置文件启动
Nginx内置变量
安装完成后可以查看日志/var/log/nginx/access.log
,里面记录了所有的访问日志,包含上面的变量信息。
1.3 Nginx配置
Nginx主配置⽂文件 nginx.conf 是一个纯⽂文本类型的⽂文件,在nginx的安装目录下,整个配置文件是以区块的
形式组织的。一般,每个区块以一对大括号 {} 来表示开始与结束。
//nginx 默认配置语法
user // 设置 nginx 服务的系统使⽤用户
worker_processes // 工作进程 , 配置和 CPU 个数保持⼀致或cpu*2
error_log // 错误⽇日志 , 后面接⼊的是路径,路径后还可以指定日志级别
pid //Nginx 服务启动时的 pid
//events 事件模块
events { // 事件模块
worker_connections // 每个 worker 进程支持的最⼤大连接数。默认为10000
use // 内核模型 ,select,poll,epoll
}
// ⾮非虚拟主机的配置或公共配置定义在 http{} 段内 , server{} 段外
http {
...
// 必须使⽤用虚拟机配置站点 , 每个虚拟机使⽤用⼀个 server{} 段
'server' {
listen 80; // 监听端⼝口 , 默认 80
server_name localhost; // 提供服务的域名或主机名
// 控制⽹网站访问路路径
'location' / {
root /usr/share/nginx/html; // 存放⽹网站路路径
index index.html index.htm; // 默认访问⾸首⻚页⽂文件
}
// 指定错误代码 , 统一定义错误页面 , 错误代码重定向到新的 Locaiton
error_page 500 502 503 504 /50x.html;
'location' = /50x.html {
root html;
}
}
...
// 第二个虚拟主机配置
'server' {
...
}
}
举例配置说明:
1)在nginx的配置文件中的http下添加以下server。表示两个虚拟结点
server{
server_name www.test.com;
root /usr/local/test;
index index.html;
}
server{
server_name blog.test.com;
root /usr/local/blog;
index index.html;
}
2)在/usr/local/test和/usr/local/blog下创建index.html并写入内容。重启nginx。
3)windows下修改C:\Windows\System32\drivers\etc\hosts
文件,在里面添加如下域名解析后,即可通过www.test.com
和blog.test.com
访问两个虚拟结点的index页面了。
服务器ip www.test.com
服务器ip blog.test.com
由此说明,nginx是可以独立部署多个应用的。