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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
DMM.com 購入改善推進チーム におけるCodeRabbitを用いた レビューフロー改善の一例
ysknsid25
1
520
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
0
2.5k
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
660
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
12
4.9k
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
0
2.1k
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
210
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
1
2.5k
FinOps X 2026 Recap from Engineer Side #JapanFinOps
chacco38
0
270
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
310
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
170
ポストモーテム! DDoSからサイトは守れた。 でもビジネスは守れなかった。
bengo4com
0
1.8k
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
550
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
How to Talk to Developers About Accessibility
jct
2
280
Being A Developer After 40
akosma
91
590k
Claude Code のすすめ
schroneko
67
230k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Crafting Experiences
bethany
1
210
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
The agentic SEO stack - context over prompts
schlessera
0
840
How to train your dragon (web standard)
notwaldorf
97
6.7k
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