Nginx只开一个端口!能做什么?(一)

引言

本文介绍 nginx 只开放一个端口时,如何应对各种复杂业务需求。

核心技术

URL扩展及URL改写。

$request_uri : nginx自带变量,获取请求地址端口后面部分的URL。

理论说明

通过本地nginx代理,把多端口服务请求,转换成一个端口转发到服务端nginx,服务端nginx再分解成多端口对应多服务。

架构图

3. 详细说明

核心步骤:

  • 本地启动多端口
  • 本地转发到 /固定前缀/端口$request_uri
  • 服务端拆分请求

4. 代码示例

用户本地nginx片段

复制代码
server {
	listen 8081;
	location / {
		proxy_pass http://10.10.6.2:8080/app/8081$request_uri;
	}
}
server {
	listen 8082;
	location / {
		proxy_pass http://10.10.6.2:8080/app/8082$request_uri;
	}       
}

服务端nginx片段

复制代码
server {
	listen 8080;
	location ^~ /app/8081/ {
		proxy_pass http://10.10.6.2:8081/;
	}
	location ^~ /app/8082/ {
		proxy_pass http://10.10.6.2:8082/;
	}       
}

5. 总结

特殊场景很有用哦

附件

文章图片原文件ppt


------------------ 但行好事莫问前程,你若盛开蝴蝶自来

相关推荐
考虑考虑3 小时前
nginx路由重写
运维·后端·自动化运维
Zenova EdgeOS5 小时前
Linux 内核日志 dmesg 进阶实战:从现场过滤到持久化闭环
linux·运维·服务器
郝亚军5 小时前
ec_private.pem的生成方法
linux·运维·服务器
NendoZen6 小时前
Arch Linux解决Grub无法SAVEDEFAULT问题(uki启动问题)
linux·运维·服务器
Elastic 中国社区官方博客7 小时前
Elasticsearch:安装自行管理的 Elastic Stack 集群
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·全文检索
忆挽篱笙歌7 小时前
进程控制管理
linux·运维·服务器
fengkai45458 小时前
3、Kubernetes的Namespace&Contexts&Pod&YAML格式
运维·容器·kubernetes·k8s·namespace·yaml·pod
戴西软件9 小时前
制造研发中的AI视觉与仿真:戴西工程图纸智能审图智能体、戴西3DViz_CAE AI集成与戴西3DViz_CAD AI集成
大数据·运维·人工智能·3d·自动化·制造·rpa
javaDocker9 小时前
1800 亿科技投入砸下去,多数机构平的只是服务器,不是能力
运维·服务器·人工智能·科技·研发效能·金融科技
骇客野人10 小时前
Linux 全套实操方案(含目录详解、文件传输、日志、文件规范、环境变量、Java 应用部署运维)
java·linux·运维