狠狠撸

狠狠撸Share a Scribd company logo
Nginx基础知识
Nginx基础知识
东子 著
内容结构
?
?
?
?

特性介绍
安装指南
管理命令
配置文件

2
内容结构
?
?
?
?

特性介绍
安装指南
管理命令
配置文件

3
没错,这是匹黑马!

4
各种优点
1.异步非阻塞
2.缓存文件描述符
3.简单的负载均衡
4.热部署

5
适合场景
? LB
? 静态文件服务器
? Web应用服务器

6
内容结构
?
?
?
?

特性介绍
安装指南
管理命令
配置文件

7
安装指南
? 安装命令:apt-get install nginx
? 重要路径:
1,运行文件路径:/usr/sbin/nginx
2,配置文件路径:/etc/nginx/

8
内容结构
?
?
?
?

特性介绍
安装指南
管理命令
配置文件

9
管理命令:启动、关闭
? 启动:nginx -c /usr/nginx/nginx.conf
? 关闭:
1,kill -QUIT `cat /var/run/nginx.pid`
2,kill -TERM `cat /var/run/nginx.pid`

10
管理命令:重启、检查配置
? 重启:
1,kill -HUP `cat /var/run/nginx.pid`
2,nginx -s reload
? 检测配置:
nginx -t /usr/nginx/nginx.conf

11
内容结构
?
?
?
?

特性介绍
安装指南
管理命令
配置文件

12
配置文件
?
?
?
?

语法规则
负载均衡
整合php-fpm
如何rewrite

13
配置文件 -语法规则 -结构
配置文件-语法规则-

14
配置文件 -语法规则 -全局配置
配置文件-语法规则?
?
?
?
?

user www www
worker_proccesses 4
worker_rlimit_nofile 10240
pid /var/run/nginx.pid
error_log /var/error.log info

[ debug | info | notice | warn | error | crit]

15
配置文件 -语法规则 -server
配置文件-语法规则-server
? listen 80
? server_name localhost
? access_log /var/log/access.log main
[main,timing,up_head,mine]
? log_format main '$remote_addr $remote_user [$time_local] '

16
配置文件 -负载均衡 -样例
配置文件-负载均衡http {
upstream myproject {
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001
}
server {
listen 80;
server_name www.domain.com;
location / {
proxy_pass http://myproject;
}
}
}

17
配置文件 -负载均衡 -策略
配置文件-负载均衡策略: 轮询,weight,ip_hash
ip_hash 写法:
upstream myproject {
server 127.0.0.1:8000;
server 127.0.0.1:8001;
ip_hash;
}

补充: down,backup
18
配置文件 -整合PHP-nginx相关配置
配置文件-整合PHP-nginx
PHP-nginx相关配置
server {
listen 80;
server_name www.domain.com;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}

19
配置文件 -整合PHP-php-fpm
配置文件-整合PHP-php-fpm
? 必要编译参数: --enable-fpm
? 必要配置选项: listen 127.0.0.1:9000
? 管理命令:
1,php-fpm
2,kill -INT `cat /var/php-fpm.pid`
3,kill -USR2 `cat /var/php-fpm.pid`

20
配置文件 -rewrite-指令列表
配置文件-rewrite-rewrite-指令列表
?
?
?
?
?

set
break
return
if
rewrite

21
配置文件 -rewrite-指令:if
配置文件-rewrite-指令:if
-rewrite-指令:
? 相等与不等: =,!=
相等与不等:=
? 检测符号: -f,-d,-e,-x
检测符号:-f,-d,-e,-x
? 匹配正则:
~,大小写敏感匹配
~*,大小写不敏感匹配
!~,大小写敏感不匹配
!~*,大小写不敏感不匹配

22
配置文件 -rewrite-指令:if例子
配置文件-rewrite-指令:if
-rewrite-指令: if例子
例子1:
例子1
if ($request_method = POST ) {
return 405;
}
例子2:
例子2
if (!-f $request_filename) {
break;
proxy_pass http://127.0.0.1;
}
例子3:
例子3
if ($http_user_agent ~ MSIE) {
rewrite ^(. *)$ /msie/$1
^(.*
break;
}
23
配置文件 -rewrite-指令:rewrite
配置文件-rewrite-指令:rewrite
-rewrite-指令:
?
?
?
?

用法:rewrite 正则 替换 标志位
用法:rewrite
rewrite的生效区块为server, location, if
rewrite的生效区块为
的生效区块为server,
rewrite只对相对路径进行匹配 ,不处理host。
rewrite只对相对路径进行匹配 不处理host
只对相对路径进行匹配,
host。
标志位:

1. break:停止rewrite检测,rewrite的最终结果。
? last:停止当前区块rewrite检测,转而去其他location尝
试匹配。
? redirect:返回302,临时重定向。
1. permanent:返回301,永久重定向。

24
配置文件 -rewrite-指令:rewrite例子
配置文件-rewrite-指令:rewrite
-rewrite-指令: rewrite例子
break例子:
rewrite ^/media/(.*)..*$ $1/mp3 break;
last例子:
rewrite ^/media/(.*)..*$ $1/mp3 last;
redirect例子:
rewrite ^(.*)$ http://newdomain.com/ redirect;
permanent例子:
rewrite ^(.*)$ http://newdomain.com/ permanent;

25
3x

More Related Content

What's hot (20)

The Rails 4 Way Chapter 1
The Rails 4 Way Chapter 1The Rails 4 Way Chapter 1
The Rails 4 Way Chapter 1
Drake Huang
?
Maven & mongo & sring
Maven & mongo & sringMaven & mongo & sring
Maven & mongo & sring
Tzu Chi University
?
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, Kubernetes
Will Huang
?
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
Will Huang
?
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
Will Huang
?
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
Will Huang
?
Mesos intro
Mesos introMesos intro
Mesos intro
dennis zhuang
?
Kubernetes use-ceph
Kubernetes use-cephKubernetes use-ceph
Kubernetes use-ceph
Yang Guanjun
?
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
dennis zhuang
?
使用狈驳颈苍虫轻松实现开源负载均衡——对外版
使用狈驳颈苍虫轻松实现开源负载均衡——对外版使用狈驳颈苍虫轻松实现开源负载均衡——对外版
使用狈驳颈苍虫轻松实现开源负载均衡——对外版
pigso
?
Ceph in UnitedStack
Ceph in UnitedStackCeph in UnitedStack
Ceph in UnitedStack
Rongze Zhu
?
使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡
guest2d0fe3
?
使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡
Cary Yang
?
叠测辫补迟博客出品-服务器运维集群方法总结2
叠测辫补迟博客出品-服务器运维集群方法总结2叠测辫补迟博客出品-服务器运维集群方法总结2
叠测辫补迟博客出品-服务器运维集群方法总结2
redhat9
?
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao ZhangBuilding the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Ceph Community
?
基于贵耻别濒的超融合一体机
基于贵耻别濒的超融合一体机基于贵耻别濒的超融合一体机
基于贵耻别濒的超融合一体机
EdwardBadBoy
?
Database.Cache&Buffer&Lock
Database.Cache&Buffer&LockDatabase.Cache&Buffer&Lock
Database.Cache&Buffer&Lock
Lixun Peng
?
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
?
对惭测厂蚕尝应用的一些总结
对惭测厂蚕尝应用的一些总结对惭测厂蚕尝应用的一些总结
对惭测厂蚕尝应用的一些总结
Lixun Peng
?
叠测辫补迟博客出品-服务器运维集群方法总结
叠测辫补迟博客出品-服务器运维集群方法总结叠测辫补迟博客出品-服务器运维集群方法总结
叠测辫补迟博客出品-服务器运维集群方法总结
redhat9
?
The Rails 4 Way Chapter 1
The Rails 4 Way Chapter 1The Rails 4 Way Chapter 1
The Rails 4 Way Chapter 1
Drake Huang
?
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, Kubernetes
Will Huang
?
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
Will Huang
?
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
Will Huang
?
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
Will Huang
?
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
dennis zhuang
?
使用狈驳颈苍虫轻松实现开源负载均衡——对外版
使用狈驳颈苍虫轻松实现开源负载均衡——对外版使用狈驳颈苍虫轻松实现开源负载均衡——对外版
使用狈驳颈苍虫轻松实现开源负载均衡——对外版
pigso
?
Ceph in UnitedStack
Ceph in UnitedStackCeph in UnitedStack
Ceph in UnitedStack
Rongze Zhu
?
使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡
guest2d0fe3
?
使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡
Cary Yang
?
叠测辫补迟博客出品-服务器运维集群方法总结2
叠测辫补迟博客出品-服务器运维集群方法总结2叠测辫补迟博客出品-服务器运维集群方法总结2
叠测辫补迟博客出品-服务器运维集群方法总结2
redhat9
?
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao ZhangBuilding the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Ceph Community
?
基于贵耻别濒的超融合一体机
基于贵耻别濒的超融合一体机基于贵耻别濒的超融合一体机
基于贵耻别濒的超融合一体机
EdwardBadBoy
?
Database.Cache&Buffer&Lock
Database.Cache&Buffer&LockDatabase.Cache&Buffer&Lock
Database.Cache&Buffer&Lock
Lixun Peng
?
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
?
对惭测厂蚕尝应用的一些总结
对惭测厂蚕尝应用的一些总结对惭测厂蚕尝应用的一些总结
对惭测厂蚕尝应用的一些总结
Lixun Peng
?
叠测辫补迟博客出品-服务器运维集群方法总结
叠测辫补迟博客出品-服务器运维集群方法总结叠测辫补迟博客出品-服务器运维集群方法总结
叠测辫补迟博客出品-服务器运维集群方法总结
redhat9
?

Similar to 课题叁:狈驳颈苍虫基础知识 (20)

tengine(nginx with lua ) develop at 2013
tengine(nginx with lua ) develop at 2013tengine(nginx with lua ) develop at 2013
tengine(nginx with lua ) develop at 2013
druggo2
?
从开发到上线-实战持续交付
从开发到上线-实战持续交付从开发到上线-实战持续交付
从开发到上线-实战持续交付
LI Daobing
?
使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡
cachowu
?
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
Will Huang
?
前端自动化工具
前端自动化工具前端自动化工具
前端自动化工具
國昭 張
?
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
Wen-Tien Chang
?
Kvmopt osforce
Kvmopt osforceKvmopt osforce
Kvmopt osforce
meecheng
?
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
國昭 張
?
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
chang kuo-chao
?
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
q3boy
?
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍
Tianwei Liu
?
Vic weekly learning_20160504
Vic weekly learning_20160504Vic weekly learning_20160504
Vic weekly learning_20160504
LearningTech
?
CKAN 技術介紹 (基礎篇)
CKAN 技術介紹 (基礎篇)CKAN 技術介紹 (基礎篇)
CKAN 技術介紹 (基礎篇)
Chengjen Lee
?
02.辫测迟丑辞苍.开发最佳实践
02.辫测迟丑辞苍.开发最佳实践02.辫测迟丑辞苍.开发最佳实践
02.辫测迟丑辞苍.开发最佳实践
Na Lee
?
Learn Python in 30 min - 4
Learn Python in 30 min - 4Learn Python in 30 min - 4
Learn Python in 30 min - 4
Chia-Hao Tsai
?
20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting
Joshua Tseng
?
出了问题不要靠猜
出了问题不要靠猜出了问题不要靠猜
出了问题不要靠猜
LI Daobing
?
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
Qiangning Hong
?
OPM
OPMOPM
OPM
goto100
?
tengine(nginx with lua ) develop at 2013
tengine(nginx with lua ) develop at 2013tengine(nginx with lua ) develop at 2013
tengine(nginx with lua ) develop at 2013
druggo2
?
从开发到上线-实战持续交付
从开发到上线-实战持续交付从开发到上线-实战持续交付
从开发到上线-实战持续交付
LI Daobing
?
使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡使用狈驳颈苍虫轻松实现开源负载均衡
使用狈驳颈苍虫轻松实现开源负载均衡
cachowu
?
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
Will Huang
?
前端自动化工具
前端自动化工具前端自动化工具
前端自动化工具
國昭 張
?
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
Wen-Tien Chang
?
Kvmopt osforce
Kvmopt osforceKvmopt osforce
Kvmopt osforce
meecheng
?
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
國昭 張
?
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
q3boy
?
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍
Tianwei Liu
?
Vic weekly learning_20160504
Vic weekly learning_20160504Vic weekly learning_20160504
Vic weekly learning_20160504
LearningTech
?
CKAN 技術介紹 (基礎篇)
CKAN 技術介紹 (基礎篇)CKAN 技術介紹 (基礎篇)
CKAN 技術介紹 (基礎篇)
Chengjen Lee
?
02.辫测迟丑辞苍.开发最佳实践
02.辫测迟丑辞苍.开发最佳实践02.辫测迟丑辞苍.开发最佳实践
02.辫测迟丑辞苍.开发最佳实践
Na Lee
?
Learn Python in 30 min - 4
Learn Python in 30 min - 4Learn Python in 30 min - 4
Learn Python in 30 min - 4
Chia-Hao Tsai
?
20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting20170830 2nd sre build and deployment scripting
20170830 2nd sre build and deployment scripting
Joshua Tseng
?
出了问题不要靠猜
出了问题不要靠猜出了问题不要靠猜
出了问题不要靠猜
LI Daobing
?
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
Qiangning Hong
?

课题叁:狈驳颈苍虫基础知识