结合 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的核心技能。本文通过实际操作演示了这些功能的配置方法,希望对读者有所帮助。
热门推荐
优化劳动仲裁服务流程:构建高效公正的争议解决机制
农业新质生产力看北京 | 焕新品种 擎动未来
继电器如何正确打开?继电器的操作有哪些注意事项?
如何设置目录提升文档专业性与阅读效率的实用技巧
如何设置目录提升文档专业性与阅读效率的实用技巧
期权波动率详解:是什么?从哪来?怎么用?
如何控制自己的潜意识和幻想
日语"としても"和"にしても"的区别:从语感和用法全面解析
胎心监护怎么算合格
星月菩提怎么保养?相关注意事项介绍
指甲前端掉了如何护理
深入解析医学实验设计:科学方法与创新思维的结合
仓库管理流程如何优化人力资源配置?
从RNN到Transformer:生成式AI自回归模型的全面剖析
新!南昌一批二手房成交价出炉!这些小区卖得超火!
100目细还是200目细
课件制作的基本概念与实践指南
车轮锻件工艺方案确定与分析
算法分享———并查集巧解图的连通性问题
亚洲主要国家军队伙食:日韩吃不饱、印度很佛系、越南居然很丰盛
cotx等于多少?解析cot函数的值
银行跨境转账汇率如何确定?多重因素影响下的实用指南
大宝贝呕吐怎么护理?
小孩子突然间呕吐,吃什么吐什么
MATLAB的数值索引与逻辑索引的速度对比
本田车型显示检查轮胎气压的提示可能意味着什么?
消费者收入对消费行为的深远影响分析
宝宝手掌心发红发热,是生病了吗?什么情况下要去看医生?
机器学习中的代价函数:定义、关系与影响
探索云南香格里拉:详尽自驾游路线规划与旅行建议