Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Nginx基础知识
Search
Allen Liu
June 24, 2012
Technology
360
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nginx基础知识
Nginx基础知识
Allen Liu
June 24, 2012
More Decks by Allen Liu
See All by Allen Liu
字符集科普知识
liuxd
1
76
vagrant介绍
liuxd
2
320
PHP5.3、PHP5.4的特性介绍与深度挖掘
liuxd
3
340
Node.js那些事儿
liuxd
2
1.6k
Other Decks in Technology
See All in Technology
脱Jenkins、インターン生が挑んだCIツールGitHubActions移行
mixi_engineers
PRO
1
210
AI研修(Day1)【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
2.1k
どこまでAIに任せるか 〜確率論と決定論の境界決定〜
shukob
0
550
iOS/Androidの二刀流エンジニアがFlutter & TypeScriptへ越境後の現在地 - Flutterがメインになって見えた景色と現在の醍醐味 / Dual-Platform Mobile Engineer Shifts to Flutter & TypeScript - The View and Real Thrill of Going Flutter-First
bitkey
PRO
0
110
セキュリティ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
28
22k
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
1
1.4k
MCPをつなげて作る組織横断のAIエージェント基盤
tsubakimoto_s
0
210
キャリアLT会#3
beli68
2
280
ソフトウェアアーキテクチャ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
820
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
53k
論語・武士道・産業革命から見る かわるもの、かわらないもの
ichimichi
8
1.4k
なぜMIXIはゼロトラスト基盤として クラウドフレアを選んだのか - Cloudflare Peer Point SASE User Voices
mixi_engineers
PRO
2
120
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
Are puppies a ranking factor?
jonoalderson
1
3.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
Leo the Paperboy
mayatellez
8
1.9k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Building AI with AI
inesmontani
PRO
1
1.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
The Curse of the Amulet
leimatthew05
2
13k
The SEO Collaboration Effect
kristinabergwall1
1
510
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Transcript
Nginx Nginx Nginx Nginx基础知识 基础知识 基础知识 基础知识 东子 东子 东子
东子 著 著 著 著
2 内容结构 内容结构 内容结构 内容结构 • 特性介绍 • 安装指南 •
管理命令 • 配置文件
3 内容结构 内容结构 内容结构 内容结构 • 特性介绍 • 安装指南 •
管理命令 • 配置文件
4 没错,这是匹黑马! 没错,这是匹黑马! 没错,这是匹黑马! 没错,这是匹黑马!
5 各种优点 各种优点 各种优点 各种优点 1.异步非阻塞 2.缓存文件描述符 3.简单的负载均衡 4.热部署
6 适合场景 适合场景 适合场景 适合场景 • LB • 静态文件服务器 •
Web应用服务器
7 内容结构 内容结构 内容结构 内容结构 • 特性介绍 • 安装指南 •
管理命令 • 配置文件
8 安装指南 安装指南 安装指南 安装指南 • 安装命令:apt-get install nginx •
重要路径: 1,运行文件路径:/usr/sbin/nginx 2,配置文件路径:/etc/nginx/
9 内容结构 内容结构 内容结构 内容结构 • 特性介绍 • 安装指南 •
管理命令 • 配置文件
10 管理命令:启动、关闭 管理命令:启动、关闭 管理命令:启动、关闭 管理命令:启动、关闭 • 启动:nginx -c /usr/nginx/nginx.conf •
关闭: 1,kill -QUIT `cat /var/run/nginx.pid` 2,kill -TERM `cat /var/run/nginx.pid`
11 管理命令:重启、检查配置 管理命令:重启、检查配置 管理命令:重启、检查配置 管理命令:重启、检查配置 • 重启: 1,kill -HUP `cat
/var/run/nginx.pid` 2,nginx -s reload • 检测配置: nginx -t /usr/nginx/nginx.conf
12 内容结构 内容结构 内容结构 内容结构 • 特性介绍 • 安装指南 •
管理命令 • 配置文件
13 配置文件 配置文件 配置文件 配置文件 • 语法规则 • 负载均衡 •
整合php-fpm • 如何rewrite
14 配置文件 配置文件 配置文件 配置文件- - - -语法规则 语法规则 语法规则
语法规则- - - -结构 结构 结构 结构
15 配置文件 配置文件 配置文件 配置文件- - - -语法规则 语法规则 语法规则
语法规则- - - -全局配置 全局配置 全局配置 全局配置 • 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]
16 配置文件 配置文件 配置文件 配置文件- - - -语法规则 语法规则 语法规则
语法规则-server -server -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] '
17 配置文件 配置文件 配置文件 配置文件- - - -负载均衡 负载均衡 负载均衡
负载均衡- - - -样例 样例 样例 样例 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; } } }
18 配置文件 配置文件 配置文件 配置文件- - - -负载均衡 负载均衡 负载均衡
负载均衡- - - -策略 策略 策略 策略 策略: 策略: 策略: 策略:轮询,weight,ip_hash ip_hash 写法: upstream myproject { server 127.0.0.1:8000; server 127.0.0.1:8001; ip_hash; } 补充: 补充: 补充: 补充:down,backup
19 配置文件 配置文件 配置文件 配置文件- - - -整合 整合 整合
整合PHP-nginx 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; } }
20 配置文件 配置文件 配置文件 配置文件- - - -整合 整合 整合
整合PHP-php-fpm PHP-php-fpm 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`
21 配置文件 配置文件 配置文件 配置文件-rewrite- -rewrite- -rewrite- -rewrite-指令列表 指令列表 指令列表
指令列表 • set set set set • break break break break • return return return return • if if if if • rewrite rewrite rewrite rewrite
22 配置文件 配置文件 配置文件 配置文件-rewrite- -rewrite- -rewrite- -rewrite-指令: 指令: 指令:
指令:if if if if • 相等与不等: 相等与不等: 相等与不等: 相等与不等:= = = =, , , ,!= != != != • 检测符号: 检测符号: 检测符号: 检测符号:-f,-d,-e,-x -f,-d,-e,-x -f,-d,-e,-x -f,-d,-e,-x • 匹配正则: 匹配正则: 匹配正则: 匹配正则: ~,大小写敏感匹配 ~,大小写敏感匹配 ~,大小写敏感匹配 ~,大小写敏感匹配 ~ ~ ~ ~* * * *,大小写不敏感匹配 ,大小写不敏感匹配 ,大小写不敏感匹配 ,大小写不敏感匹配 ! ! ! !~,大小写敏感不匹配 ~,大小写敏感不匹配 ~,大小写敏感不匹配 ~,大小写敏感不匹配 ! ! ! !~ ~ ~ ~* * * *,大小写不敏感不匹配 ,大小写不敏感不匹配 ,大小写不敏感不匹配 ,大小写不敏感不匹配
23 配置文件 配置文件 配置文件 配置文件-rewrite- -rewrite- -rewrite- -rewrite-指令: 指令: 指令:
指令:if if if if例子 例子 例子 例子 例子 例子 例子 例子1 1 1 1: : : : if ($request_method = POST ) { if ($request_method = POST ) { if ($request_method = POST ) { if ($request_method = POST ) { return 405; return 405; return 405; return 405; } } } } 例子 例子 例子 例子2 2 2 2: : : : if (!-f $request_filename) { if (!-f $request_filename) { if (!-f $request_filename) { if (!-f $request_filename) { break; break; break; break; proxy_pass http://127.0.0.1; proxy_pass http://127.0.0.1; proxy_pass http://127.0.0.1; proxy_pass http://127.0.0.1; } } } } 例子 例子 例子 例子3 3 3 3: : : : if ($http_user_agent ~ MSIE) { if ($http_user_agent ~ MSIE) { if ($http_user_agent ~ MSIE) { if ($http_user_agent ~ MSIE) { rewrite ^(. rewrite ^(. rewrite ^(. rewrite ^(.* * * *)$ /msie/$1 )$ /msie/$1 )$ /msie/$1 )$ /msie/$1 break; break; break; break; } } } }
24 配置文件 配置文件 配置文件 配置文件-rewrite- -rewrite- -rewrite- -rewrite-指令: 指令: 指令:
指令:rewrite rewrite rewrite rewrite • 用法: 用法: 用法: 用法:rewrite rewrite rewrite rewrite 正则 正则 正则 正则 替换 替换 替换 替换 标志位 标志位 标志位 标志位 • rewrite rewrite rewrite rewrite的生效区块为 的生效区块为 的生效区块为 的生效区块为server, location, if server, location, if server, location, if server, location, if • rewrite rewrite rewrite rewrite只对相对路径进行匹配 只对相对路径进行匹配 只对相对路径进行匹配 只对相对路径进行匹配, , , ,不处理 不处理 不处理 不处理host host host host。 。 。 。 • 标志位: 标志位: 标志位: 标志位: 1. break:停止rewrite检测,rewrite的最终结果。 • last:停止当前区块rewrite检测,转而去其他location尝 试匹配。 • redirect:返回302,临时重定向。 1. permanent:返回301,永久重定向。
25 配置文件 配置文件 配置文件 配置文件-rewrite- -rewrite- -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;
3x 3x 3x 3x