首页 > 系统相关 >Nginx 反向代理 (泛域名->泛域名,https,静态文件)

Nginx 反向代理 (泛域名->泛域名,https,静态文件)

时间:2024-06-21 15:33:44浏览次数:15  
标签:name server Nginx 域名 proxy https location

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介绍

标签:name,server,Nginx,域名,proxy,https,location
From: https://www.cnblogs.com/cyamazing/p/18152564

相关文章

  • 应用同时支持HTTP和HTTPS
    生成证书:keytool-genkeypair-keystoretest.jks-aliastest-keyalgRSA-keysize2048-validity3650应用配置:server:port:18081#httpshttp-port:8081#httpssl:key-store:/test.jks#密钥库路径key-store-password:ENC(djVg6Ri/rp7cHwh9ZTmq/Q==)......
  • nginx精准禁止特定国家或者地区IP访问
    1、安装依赖dnf-yinstallgcc-c++libtoolgd-develpcrepcre-developensslopenssl-develzlibzlib-devellibmaxminddb-develpcre-develzlib-develgccgcc-c++makegit2、获取NGINX安装包并安装wgethttps://nginx.org/download/nginx-1.26.1.tar.gzgitclo......
  • Nginx部署Vue前端项目,部署多个Vue项目
    参考:https://blog.csdn.net/qq_33454884/article/details/89212702启动闪退:https://blog.csdn.net/weixin_66383346/article/details/1326221561.下载安装nginx 下载地址:https://nginx.org/en/download.html  windows版:nginx/Windows-1.27.0解压后必须放在没有中文,没有空格......
  • java httpsession
    bychatgpt=>HttpSessionHttpSession是JavaServletAPI提供的一个接口,用于管理与单个用户相关的会话信息。会话(session)是在服务器端保存的与客户端用户交互的一系列请求和响应之间的状态信息。以下是HttpSession的详细解释:HttpSession的作用HttpSession用于在用户的多......
  • Nginx流量控制
    目录1、Nginx如何限流2、配置基本的限流3、处理突发4、无延迟的排队5、高级配置示例1、白名单2、location包含多limit_req指令6、配置流量控制相关功能1、配置日志记录2、发送到客户端的错误代码7、nginx流量控制总结 流量限制(rate-limiting),是Nginx中一个......
  • 【调试笔记-20240617-Linux- frp 结合 nginx 实现内网网站在公网发布】
    调试笔记-系列文章目录调试笔记-20240617-Linux-frp结合nginx实现内网网站在公网发布文章目录调试笔记-系列文章目录调试笔记-20240617-Linux-frp结合nginx实现内网网站在公网发布前言一、调试环境操作系统:Windows10专业版调试环境调试目标二、调试步骤公......
  • WPF控件库 https://wpfui.lepo.co/
    wpfui:一个开源免费具有现代化设计趋势的WPF控件库 https://wpfui.lepo.co/合集-C#(46) 1.使用C#将几个Excel文件合并去重分类2023-11-152.C#使用SqlSugar操作MySQL数据库实现简单的增删改查2023-11-163.C#中的类和继承2023-11-174.C#中的virtual和override关键字2023-......
  • pip list https://github.com/pypa/pip 源码
    https://github.com/pypa/pip/blob/main/src/pip/_internal/commands/list.py    packages:"_ProcessedDists"=[      cast("_DistWithLatestInfo",d)      fordinget_environment(options.path).iter_installed_distributions(......
  • CentOS7系统搭建web环境 php&nginx&pgsql
    环境:VMware、CentOS-7-x86_64-DVD-2009.iso、nginx-1.26.1、php-7.2.0、postgresql-12php最好安装对应php项目所需版本,否则会出现不兼容问题。一、VMware安装CentOS7操作系统下载LinuxCentos7映像:https://mirrors.aliyun.com/centos/7/isos/x86_64/?spm=a2c6h.25603864.0.......
  • 如何判断是域名污染?
    在当今数字化的时代,域名已成为企业和个人在互联网上的重要标识。然而,域名污染问题可能会给网站的正常运营和用户体验带来严重影响。因此,学会判断域名是否被污染至关重要。本文将介绍一些常见的方法来帮助您判断域名是否受到污染。一、观察网站访问情况域名污染可能导致网站无法......