SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

The Rails 4 Way Chapter 1
The Rails 4 Way Chapter 1The Rails 4 Way Chapter 1
The Rails 4 Way Chapter 1Drake Huang
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWill 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 2018Will Huang
 
Kubernetes use-ceph
Kubernetes use-cephKubernetes use-ceph
Kubernetes use-cephYang Guanjun
 
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生dennis zhuang
 
使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版pigso
 
Ceph in UnitedStack
Ceph in UnitedStackCeph in UnitedStack
Ceph in UnitedStackRongze Zhu
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡guest2d0fe3
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡Cary Yang
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2redhat9
 
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 ZhangCeph Community
 
基于Fuel的超融合一体机
基于Fuel的超融合一体机基于Fuel的超融合一体机
基于Fuel的超融合一体机EdwardBadBoy
 
Database.Cache&Buffer&Lock
Database.Cache&Buffer&LockDatabase.Cache&Buffer&Lock
Database.Cache&Buffer&LockLixun 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
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结Lixun Peng
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结redhat9
 

Was ist angesagt? (20)

The Rails 4 Way Chapter 1
The Rails 4 Way Chapter 1The Rails 4 Way Chapter 1
The Rails 4 Way Chapter 1
 
Maven & mongo & sring
Maven & mongo & sringMaven & mongo & sring
Maven & mongo & sring
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, Kubernetes
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
 
Mesos intro
Mesos introMesos intro
Mesos intro
 
Kubernetes use-ceph
Kubernetes use-cephKubernetes use-ceph
Kubernetes use-ceph
 
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
 
使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版
 
Ceph in UnitedStack
Ceph in UnitedStackCeph in UnitedStack
Ceph in UnitedStack
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
 
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
 
基于Fuel的超融合一体机
基于Fuel的超融合一体机基于Fuel的超融合一体机
基于Fuel的超融合一体机
 
Database.Cache&Buffer&Lock
Database.Cache&Buffer&LockDatabase.Cache&Buffer&Lock
Database.Cache&Buffer&Lock
 
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结
 

Ähnlich wie 课题三:Nginx基础知识

从开发到上线-实战持续交付
从开发到上线-实战持续交付从开发到上线-实战持续交付
从开发到上线-实战持续交付LI Daobing
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡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 osforcemeecheng
 
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 & NAEq3boy
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍Tianwei Liu
 
Vic weekly learning_20160504
Vic weekly learning_20160504Vic weekly learning_20160504
Vic weekly learning_20160504LearningTech
 
CKAN 技術介紹 (基礎篇)
CKAN 技術介紹 (基礎篇)CKAN 技術介紹 (基礎篇)
CKAN 技術介紹 (基礎篇)Chengjen Lee
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践Na Lee
 
Learn Python in 30 min - 4
Learn Python in 30 min - 4Learn Python in 30 min - 4
Learn Python in 30 min - 4Chia-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祺元 曾
 
出了问题不要靠猜
出了问题不要靠猜出了问题不要靠猜
出了问题不要靠猜LI Daobing
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 

Ähnlich wie 课题三:Nginx基础知识 (20)

从开发到上线-实战持续交付
从开发到上线-实战持续交付从开发到上线-实战持续交付
从开发到上线-实战持续交付
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
 
Kvmopt osforce
Kvmopt osforceKvmopt osforce
Kvmopt osforce
 
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
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 
Zabbix in PPTV
Zabbix in PPTVZabbix in PPTV
Zabbix in PPTV
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍
 
Vic weekly learning_20160504
Vic weekly learning_20160504Vic weekly learning_20160504
Vic weekly learning_20160504
 
CKAN 技術介紹 (基礎篇)
CKAN 技術介紹 (基礎篇)CKAN 技術介紹 (基礎篇)
CKAN 技術介紹 (基礎篇)
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践
 
Learn Python in 30 min - 4
Learn Python in 30 min - 4Learn Python in 30 min - 4
Learn Python in 30 min - 4
 
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
 
出了问题不要靠猜
出了问题不要靠猜出了问题不要靠猜
出了问题不要靠猜
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
OPM
OPMOPM
OPM
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 

课题三:Nginx基础知识