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. 静态文件处理

确保静态文件不会被提前捕获处理,避免影响反向代理的正常工作。

匹配优先级

  1. 精确匹配:如果有精确匹配的 location,Nginx 将优先使用它。
  2. 正则匹配:如果没有精确匹配,Nginx 会按照配置文件中的顺序检查正则表达式的 location,第一个匹配的正则表达式会被使用。
  3. 普通匹配:如果没有正则匹配,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

扩展

proxy介绍

expires介绍

Nginx 反向代理 (泛域名->泛域名,https,静态文件)的更多相关文章

  1. windows2008 使用nginx 反向代理实现负载均衡解决HTTPS 证书问题

    由于项目需要 负载均衡由NBL 转成nginx 反向代理.考虑都是https模块,所以证书成了个难题. 解决方案: 1.下载openssl(windows 安装包) 2.打开bin/下面的openss ...

  2. Tomcat多个项目部署,通过Nginx反向代理分别配置二级域名的流程

    购买域名.示例:example.com 设置多个二级域名.如图: 配置tomcat文件: 修改tomcat/conf目录下的server.xml文件: 如下配置配置了3个容器,使用三个不同的端口. 请 ...

  3. 搭建Nginx反向代理做内网域名转发

    由于公司内网有多台服务器的 http 服务要映射到公司外网静态 IP,如果用路由的端口映射来做,就只能一台内网服务器的 80 端口映射到外网 80 端口,其他服务器的 80 端口只能映射到外网的非 8 ...

  4. nginx反向代理:两个域名指向不同web服务端口

    一台服务器上安装了zabbix服务和jumpserver服务,两个域名zabbix.xxxx.xxxx和jumserver.xxx.xxxx 一.编辑/etc/nginx/conf.d目录下nginx ...

  5. docker 安装 wordpress,通过nginx反向代理,绑定域名,配置https

    假设docker已经安装好了,如果没有安装,可以照着 5分钟安装docker教程. 一. 下载镜像 默认下载最新版本,如果想指定对应版本,可以用冒号后加版本,像这样mysql:5.7: docker ...

  6. Linux使用nginx反向代理。可实现域名指向特定端口

    在配置80指向域名的时候出现端口占用,使用kill -9无法杀死端口,应使用下面的命令来杀死进程killall -9 nginx(使用完本命令需要再把配置过的配置文件重新启动.命令写在了PS下面)后在 ...

  7. Nginx反向代理匹配部分二级域名或二级目录配置

    server { charset utf-; client_max_body_size 128M; # Add index.php to the list if you are using PHP i ...

  8. nginx反向代理tomcat 时,出现https redirect后变成http的问题解决方法

    需要修改两个配置 1.nginx配置 location / { proxy_pass http://test-server; proxy_set_header Host $host; proxy_se ...

  9. nginx 反向代理及 https 证书配置

    nginx 反向代理及 https 证书配置 author: yunqimg(ccxtcxx0) 1. 编译安装nginx 从官网下载 nginx源码, 并编译安装. ./configure --pr ...

  10. [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

随机推荐

  1. 7月30日CSP-S模拟赛赛后总结

    7月30日模拟赛赛后总结 \[7月30日 \ \ 模拟赛 \ \ 赛后总结 \\ 2024年7月30日 \\ by \ \ \ hcy \] 洛谷同步:点我 一.做题情况 第一题比赛 \(100pts ...

  2. Apache DolphinScheduler 社区5月月报更新!

    各位热爱 DolphinScheduler 的小伙伴们,社区5月份月报更新啦!这里将记录 DolphinScheduler 社区每月的重要更新,欢迎关注,期待下个月你也登上Merge Star月度榜单 ...

  3. C#应用 - 事件总线

    目录 前言 1,简介 2,设计 2.1 设计思路 2.2 设计实现 2.2.1 IEventData 2.2.2 EventBus 2.2.3 用起来 3,问题 3.1 起缘 3.2 改造 3.3 用 ...

  4. a web app for deep learning - deep-learning-training-gui

    安装该项目 ENV: Win11 Anaconda 主要参考 https://www.tensorflow.org/install/pip 1. 安装 python 3.9, 在Anaconda 新建 ...

  5. vim命令之多行注释

    vim常用命令之多行注释和多行删除 vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率. 1.多行注释: 1. 首先按esc进入命令行模式下,按下Ctrl + v, ...

  6. Pointer Event Api-整合鼠标事件、触摸和触控笔事件

    Pointer Events API 是Hmtl5的事件规范之一,它主要目的是用来将鼠标(Mouse).触摸(touch)和触控笔(pen)三种事件整合为统一的API. Pointer Event P ...

  7. AI实战 | 领克汽车线上营销助手:全面功能展示与效果分析

    助手介绍 我就不自我介绍了,在我的智能体探索之旅中,很多人已经通过coze看过我的教程.今天,我专注于分享我所开发的一款助手--<领克汽车线上营销>. 他不仅仅是一个销售顾问的替身,更是一 ...

  8. C# – 6.0, 7.0, 8.0, 9.0 总结

    前言 C# 这几年改了好几个版本, 多了许多语法糖,还带有 JavaScript / TypeScript 的味道了. 我觉得随着 blazor 的发展 (想取代前端开发 ?) 那 C# 必然需要更多 ...

  9. SQL Server 中的 NUL 设备/NIL设备

    SQL Server 中的 NUL 设备/NIL设备 在 SQL Server 中,有一个特殊的设备叫做 NUL(注意,不是 NULL),它类似于文件系统中的"黑洞".NUL 设备 ...

  10. 常回家看看之house_of_cat

    house_of_cat 前言: house of cat 这个利用手法和前面提到的 house of kiwi ,和 house of emma 利用的手法是一个链子,当程序无法通过main函数返回 ...