天增的博客
首页
博客
  • 分布式解决方案
  • Java并发工具包
  • redis
  • LeetCode
  • 系统设计
  • JVM体系
Github (opens new window)
Rss (opens new window)
  • zh-CN
  • en-US
首页
博客
  • 分布式解决方案
  • Java并发工具包
  • redis
  • LeetCode
  • 系统设计
  • JVM体系
Github (opens new window)
Rss (opens new window)
  • zh-CN
  • en-US
  • posts
  • Nginx泛解析反向代理多个服务
2022-06-16

Nginx泛解析反向代理多个服务

# Nginx泛解析反向代理多个服务

还是因为我的软路由,上面挂载了多个服务,如果要挨个配置各个服务的反向代理,不还得疯掉。

所以需要一个通用的方式进行处理。

  1. 首先通过Nginx获取到所有泛解析的二级子域名
  2. 提取出子域名之后,匹配好定义的upstream
  3. 进行转发

脚本如下:


http {
    client_max_body_size 204800M;
    upstream note {
        server 192.168.31.10:6806;
    }
    upstream omv {
        server 192.168.31.10:80;
    }
    upstream qbt {
		server 192.168.31.10:8082;
    }
    upstream webdav {
        server 192.168.31.10:8080;
    }
    upstream openwrt {
        server 192.168.31.3:80;
    }

server {
	listen 2095;
	listen [::]:2095;
	server_name map.shiyitopo.tech;
	root /home/nginx/map_html;
	location / {
		try_files $uri $uri/ @router;
		index  index.html index.htm;
	}
	location @router {
		rewrite ^.*$ /index.html last;
	}
}
server {
	listen [::]:2095;
	listen 2095;
	server_name ~^(?<subdomain>.+).shiyitopo.tech$;
	location / {
		proxy_pass http://$subdomain;
		proxy_http_version 1.1;
		proxy_set_header Host $subdomain;
		proxy_set_header   X-Forwarded-Host   $http_host;
		proxy_set_header   X-Forwarded-For    $remote_addr;

	}
}  
}

监听泛解析的域名,提取出二级域名之后,就用proxy_pass反向代理过去就行。

这样就不需要有新的服务就建立一个server了,只需要定义好upstream的后端地址就可以了。

最近更新
01
以 root 身份启动 transmission-daemon
12-13
02
Debian系统安装qbittorrent-nox
12-09
03
LXC Debain12安装zerotier并实现局域网自动nat转发
07-29
更多文章>
Theme by Vdoing | Copyright © 2015-2024 天增 | 苏ICP备16037388号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式