结合 Docker,快速掌握 Nginx 2 大核心用法
创作时间:
作者:
@小白创作中心
结合 Docker,快速掌握 Nginx 2 大核心用法
引用
51CTO
1.
https://blog.51cto.com/u_2820398/12841423
Nginx是目前最流行的Web服务器之一,广泛应用于静态资源托管和动态资源反向代理。本文将通过Docker环境,详细介绍Nginx的两大核心功能:静态资源托管和动态资源反向代理,并演示如何配置负载均衡。
一、环境准备
首先需要安装Docker Desktop,这是一个用于管理容器和镜像的工具。
安装完成后,可以通过docker命令来管理容器和镜像。
二、运行Nginx容器
使用Docker运行Nginx镜像:
docker run --name nginx1 -p 81:80 -d nginx
这会将宿主机的81端口映射到容器内的80端口。运行后,可以通过浏览器访问http://localhost:81看到Nginx的欢迎页面。
三、静态资源托管
1. 文件位置
在容器内,静态文件默认存储在/usr/share/nginx/html目录下。可以通过Docker命令将该目录复制到宿主机:
docker cp nginx1:/usr/share/nginx/html ~/nginx-html
2. 文件替换
将自定义的HTML文件复制到该目录:
echo aaa > aaa.html
echo bbb > bbb.html
docker cp ~/nginx-html nginx1:/usr/share/nginx/html
3. 配置文件解析
Nginx的主配置文件位于/etc/nginx/nginx.conf,其中包含了对/etc/nginx/conf.d/*.conf的引用。具体路由配置通常在conf.d目录下的子配置文件中。
4. 路由配置
Nginx支持四种location语法:
location = /path:精确匹配location /path:前缀匹配location ~ /path:正则匹配(区分大小写)location ~* /path:正则匹配(不区分大小写)location ^~ /path:前缀匹配,优先级高于正则匹配
例如:
location = /111/ {
default_type text/plain;
return 200 "111 success";
}
location /222 {
default_type text/plain;
return 200 $uri;
}
location ~ ^/333/bbb.*\.html$ {
default_type text/plain;
return 200 $uri;
}
location ~* ^/444/AAA.*\.html$ {
default_type text/plain;
return 200 $uri;
}
配置完成后,需要重新加载Nginx配置:
docker exec nginx1 nginx -s reload
四、动态资源反向代理
1. 反向代理概念
反向代理是从用户角度看方向相反的代理,主要用于将请求转发到后端服务器。
2. 配置示例
假设有一个Nest.js服务运行在http://localhost:3000,可以通过Nginx进行反向代理:
location ^~ /api {
proxy_pass http://192.168.1.6:3000;
}
3. 负载均衡
Nginx支持多种负载均衡策略:
- 轮询(默认)
- 带权重的轮询
- IP哈希
- 响应时间(需要插件)
配置示例:
upstream backend {
server 192.168.1.6:3001 weight=2;
server 192.168.1.6:3002;
}
location /api {
proxy_pass http://backend;
}
总结
通过Docker运行Nginx,可以方便地进行静态资源托管和动态资源反向代理。掌握Nginx的配置文件结构、路由配置语法以及负载均衡策略,是使用Nginx的核心技能。本文通过实际操作演示了这些功能的配置方法,希望对读者有所帮助。
热门推荐
git-merge 和 git-rebase 原理解析与实践分享
git-merge 和 git-rebase 原理解析与实践分享
驿寄梅花,鱼传尺素。
结直肠癌自我筛查指南:目标、方法与对象全解析
近十年手机的发展历史
如何查看华为手机电池使用情况与电池损耗
胎菊的用途及用法
“啃老”丈夫引发彩礼风波
VR警务训练之危机处理:提升应对能力的新方式
“鸡蛋的多元益处:营养宝库,健康生活的得力助手”
高烧近40℃!最近不少孩子中招,医生建议孩子发烧别盲目吃抗生素
改革攻坚火力全开!2025,肇庆活力无限!
“俞”字的详细解释
电动汽车充电器IP防护等级指南:如何选择合适的防护等级
地下室可以买卖吗?了解地下室房地产交易的关键
Redhat虚拟机进行SSH远程连接MobaXterm时免密登录
“3.21”空难调查报告说清楚空难原因了吗?
顺序表以及顺序表的操作(数据结构初阶)
10101208是哪里的电话号码?解答该电话号码的归属地
10101208是哪里的电话号码?解答该电话号码的归属地
昌都在哪里,那里的气候如何?
如何正确处理异地医保的转移事务?这类转移有哪些要点?
CAJ文件搜索与转换指南,轻松获取PDF文档的方法
咯血原因及处理方法
鸡胸肉如何快速解冻
居家冷冻肉正确解冻方法大揭秘!这些知识你一定要知道
do does的用法与区别?详细解读‘do’与‘does’的使用差异
男性通过饮食能否促进身高增长
健身真的能帮助长高吗?专业医生为你解答
什么是DNS污染?如何检测DNS是否被污染?