Nginx 反向代理 (泛域名->泛域名,https,静态文件)
Nginx 反向代理配置指南 (泛域名 -> 泛域名, HTTPS, 静态文件)
完整版
server
{
# 监听80端口
listen 80;
listen 443 ssl http2;;
# ......
# 泛域名
server_name *.{fromName}.com;
# 获取 "*" 参数
set $subdm '';
if ($host ~* "(.*)\.{fromName}\.com") {
set $subdm $1;
}
location / {
# DNS
resolver 114.114.114.114;
# 设置请求头
proxy_set_header Host $subdm.{toName}.cn;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header X-Accel-Buffering;
# 跳转
proxy_pass https://$subdm.{toName}.cn;
# 带入ssl信息
proxy_ssl_server_name on;
proxy_ssl_name $subdm.{toName}.cn;
# 超时设置
proxy_read_timeout 1800s;
}
}
1. 泛域名配置
在 Nginx 的 server 块中使用 server_name 参数和 * 通配符来配置泛域名。例如,server_name *.{fromName}.com 表示 {fromName}.com 的所有二级域名。
2. 获取二级域名变量
可以使用正则表达式和变量来获取二级域名:
if ($host ~* "(.*).{fromName}.com") {
set $subdomain $1; # 其中 $1 表示匹配的二级域名
}
location / {
proxy_pass https://$subdomain.{toName}.cn;
}
3. 解决指向 HTTPS 时的 502 错误问题
3.1 DNS 解析问题
当跳转路径为域名时,确保两边的 Nginx 都配置了相同的 DNS。示例如下:
resolver 144.144.144.144;
3.2 SSL 问题
3.2.1 跳转路径为 IP 时
添加以下配置以传递本服务器的 SSL 信息到跳转的域名:
proxy_ssl_server_name on;
3.2.2 跳转路径为域名时
添加以下配置:
proxy_ssl_name $subdomain.{toName}.cn;
proxy_set_header Host $subdomain.{toName}.cn;
4. 静态文件处理
确保静态文件不会被提前捕获处理,避免影响反向代理的正常工作。
匹配优先级
- 精确匹配:如果有精确匹配的
location,Nginx 将优先使用它。 - 正则匹配:如果没有精确匹配,Nginx 会按照配置文件中的顺序检查正则表达式的
location,第一个匹配的正则表达式会被使用。 - 普通匹配:如果没有正则匹配,Nginx 会使用最长匹配的普通
location。
示例配置
处理图片等静态资源
location ~* .(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
error_log off;
access_log off;
}
处理 JS 和 CSS 文件
location ~* .(js|css)?$ {
expires 12h;
error_log off;
access_log off;
}
参考
域名反向代理
nginx https 502 DNS相关
nginx https 502
扩展
Nginx 反向代理 (泛域名->泛域名,https,静态文件)的更多相关文章
- windows2008 使用nginx 反向代理实现负载均衡解决HTTPS 证书问题
由于项目需要 负载均衡由NBL 转成nginx 反向代理.考虑都是https模块,所以证书成了个难题. 解决方案: 1.下载openssl(windows 安装包) 2.打开bin/下面的openss ...
- Tomcat多个项目部署,通过Nginx反向代理分别配置二级域名的流程
购买域名.示例:example.com 设置多个二级域名.如图: 配置tomcat文件: 修改tomcat/conf目录下的server.xml文件: 如下配置配置了3个容器,使用三个不同的端口. 请 ...
- 搭建Nginx反向代理做内网域名转发
由于公司内网有多台服务器的 http 服务要映射到公司外网静态 IP,如果用路由的端口映射来做,就只能一台内网服务器的 80 端口映射到外网 80 端口,其他服务器的 80 端口只能映射到外网的非 8 ...
- nginx反向代理:两个域名指向不同web服务端口
一台服务器上安装了zabbix服务和jumpserver服务,两个域名zabbix.xxxx.xxxx和jumserver.xxx.xxxx 一.编辑/etc/nginx/conf.d目录下nginx ...
- docker 安装 wordpress,通过nginx反向代理,绑定域名,配置https
假设docker已经安装好了,如果没有安装,可以照着 5分钟安装docker教程. 一. 下载镜像 默认下载最新版本,如果想指定对应版本,可以用冒号后加版本,像这样mysql:5.7: docker ...
- Linux使用nginx反向代理。可实现域名指向特定端口
在配置80指向域名的时候出现端口占用,使用kill -9无法杀死端口,应使用下面的命令来杀死进程killall -9 nginx(使用完本命令需要再把配置过的配置文件重新启动.命令写在了PS下面)后在 ...
- Nginx反向代理匹配部分二级域名或二级目录配置
server { charset utf-; client_max_body_size 128M; # Add index.php to the list if you are using PHP i ...
- nginx反向代理tomcat 时,出现https redirect后变成http的问题解决方法
需要修改两个配置 1.nginx配置 location / { proxy_pass http://test-server; proxy_set_header Host $host; proxy_se ...
- nginx 反向代理及 https 证书配置
nginx 反向代理及 https 证书配置 author: yunqimg(ccxtcxx0) 1. 编译安装nginx 从官网下载 nginx源码, 并编译安装. ./configure --pr ...
- [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
随机推荐
- 【转载】 固定随机种子比较强化学习算法——pytorch框架
原文地址: https://www.cnblogs.com/lucifer1997/p/13801102.html ========================================== ...
- 分布式深度学习计算框架依赖环境——NCCL的安装
分布式深度学习计算框架(MindSpore, PyTorch)依赖环境--NCCL, NCCL提供多显卡之间直接进行数据交互的功能(可以跨主机进行). 注意: 本文环境为 Ubuntu18.04 以 ...
- 架构演化学习思考(4) --- IOC的学习认识
架构演化学习思考(4) IOC的学习认识[1] IOC相关概念认识 什么是IOC? IOC全称为 Inversion Of Control ,即控制反转.它是一种控制思想,可以解释为类和类之间的依赖关 ...
- [题解] [ABC221H] Count Multiset - DP
[ABC221H] Count Multiset 题面翻译 输入两个正整数 \(N,M\),并存在一个集合,问你一个长度为 \(k\) 的合法集合存在多少个?你需要回答 \(k\) 的值为 \(1\) ...
- AtCoder Beginner Contest 328
AtCoder Beginner Contest 328 A - Not Too Hard (atcoder.jp) #include <bits/stdc++.h> #define de ...
- 2024-08-21:用go语言,给定一个从 0 开始索引的整数数组 nums 和一个整数 k,请设计一个算法来使得数组中的所有元素都大于或等于 k,返回所需的最少操作次数。 每次操作可以执行以下步骤
2024-08-21:用go语言,给定一个从 0 开始索引的整数数组 nums 和一个整数 k,请设计一个算法来使得数组中的所有元素都大于或等于 k,返回所需的最少操作次数. 每次操作可以执行以下步骤 ...
- Go 互斥锁 Mutex 源码分析(二)
原创文章,欢迎转载,转载请注明出处,谢谢. 0. 前言 在 Go 互斥锁 Mutex 源码分析(一) 一文中分析了互斥锁的结构和基本的抢占互斥锁的场景.在学习锁的过程中,看的不少文章是基于锁的状态解释 ...
- k8s pod挂载hostPath执行写时报错Permission denied
关于hostPath的权限说明 最近项目中经常遇到pod中container挂载主机hostPath报错无权限问题: httpd@hostpath-volume:/test-volume$ touch ...
- SPSS25.0中文破解版安装教程及使用教程
目录 第一步,下载链接: 下载并解压,管理员身份运行SPSS 25 64bit.exe: 第二步,安装过程一路默认,安装路径可以改变,然后等待安装完成即可: 第三步,安装完成后,立即启动SPPS; 第 ...
- 有哪些让你「 爽到爆炸 」的 Windows 软件?
前言 本文源于知乎的一个提问,如标题所示:有哪些让你「 爽到爆炸 」的 Windows 软件?今天大姚给大家分享6款C#/.NET开源且免费的Windows软件,希望可以帮助大家提高学习.开发.办公效 ...