热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nginx批量配置多域名绑定

最近想在Nginx下配置绑定了同一个IP,同一个端口的多个域名解析到不同的文件夹,二级域名解析到子目录下,但是网上搜索了好多,但是没有成功过的,所以自己就根据语法自己写,现在分享一下我的配置文件先给出我的全部配置吧,然后再一一解释server{list
最近想在 Nginx 下配置绑定了同一个 IP ,同一个端口的多个域名解析到不同的文件夹,二级域名解析到子目录下,但是网上搜索了好多,但是没有成功过的,所以自己就根据语法自己写,现在分享一下我的配置文件
先给出我的全部配置吧,然后再一一解释
server {
        listen       80;
        server_name  localhost;
        set $mdomain 'ip';
        if ( $host ~* (\w+\.[a-zA-Z]+)$ ) {
        set $mdomain $1;
        }
        if ( $host ~* (\b(?!www\b)\w+)\.\w+\.[a-zA-Z]+$ ) {
        set $mdir /$1;
        }
        location / {
        index index.html index.php;
        root D:/Web/www/$mdomain$mdir;
        }
        location ~ \.php$ {
                root           D:/Web/www/$mdomain$mdir;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  D:/Web/www/$mdomain$mdir/$fastcgi_script_name;
                include        fastcgi_params;
        }
}
这是 server 下的,server 要放在 http 内。

1.多域名解析
我的配置文件是根据正则表达式判断域名,然后域名赋给变量,然后变量组成路径
set $mdomain 'ip';
//设置变量 mdomain 的默认值为字符串"ip"
if ( $host ~* (\w+\.[a-zA-Z]+)$ ) {
//对输入的域名进行正则表达式匹配;
set $mdomain $1;
//若匹配则设置变量 mdomain 为正则表达式括号的值;
}
如下图为匹配结果
正则表达式匹配结果
匹配成功就把结果存入变量 mdomain 中,待用;

2.二级域名解析到子文件夹
二级域名还是根据正则表达式匹配
if ( $host ~* (\b(?!www\b)\w+)\.\w+\.[a-zA-Z]+$ ) {
set $mdir /$1;
}
这是正则表达式的匹配结果。
匹配结果
还是取子域名加上"/"到变量 mdir 中;
location 解析
location / {
index index.html index.php;
root D:/Web/www/$mdomain$mdir;
}
最后 root 到匹配的结果路径中,没有匹配的变量就为空了;例如:www.server110.com 解析的路径是 D:/Web/www/server110.com/www;server110.com 解析的路径就是 D:/Web/www/server110.com;

推荐阅读
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文旨在回顾并总结近期学习的.NET Core基础知识,通过具体的操作指南加深理解,并为初学者提供实用建议,避免常见的错误和陷阱。内容涵盖CentOS的安装配置、.NET Core环境搭建及网站部署等。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 如何在WPS Office for Mac中调整Word文档的文字排列方向
    本文将详细介绍如何使用最新版WPS Office for Mac调整Word文档中的文字排列方向。通过这些步骤,用户可以轻松更改文本的水平或垂直排列方式,以满足不同的排版需求。 ... [详细]
  • 理解存储器的层次结构有助于程序员优化程序性能,通过合理安排数据在不同层级的存储位置,提升CPU的数据访问速度。本文详细探讨了静态随机访问存储器(SRAM)和动态随机访问存储器(DRAM)的工作原理及其应用场景,并介绍了存储器模块中的数据存取过程及局部性原理。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
author-avatar
camera98
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有