nginx将泛解析的匹配域名绑定到子目录配置方法

网站的目录结构为:

# tree /home/wwwroot/exehack.net
/home/wwwroot/exehack.net
├── bbs
│   └── index.html
└── www
    └── index.html
2 directories, 2 files

/home/wwwroot/exehack.net为nginx的安装目录下默认的存放源代码的路径。
bbs为论坛程序源代码路径;www为主页程序源代码路径;把相应程序放入上面的路径通过;http://www.exehack.net 访问的就是主页http://bbs.exehack.net 访问的就是论坛,其它二级域名类推。
有2种方法,推荐方法一

 server {
listen 80;
server_name ~^(?<subdomain>.+).exehack.net$;
access_log /data/wwwlogs/exehack.net_nginx.log combined;
index index.html index.htm index.php;
root /home/wwwroot/linuxeye/$subdomain/;
location ~ .php$ {
  fastcgi_pass unix:/dev/shm/php-cgi.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
  }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
  expires 30d;
  }
location ~ .*\.(js|css)?$ {
  expires 7d;
  }
}

方法二、

 server {
listen 80;
server_name *.exehack.net;
access_log /home/wwwlogs/exehack.net_nginx.log combined;
index index.html index.htm index.php;
if ($host ~* ^([^\.]+)\.([^\.]+\.[^\.]+)$) {
  set $subdomain $1;
  set $domain $2;
}
location / {
  root /home/wwwroot/exehack.net/$subdomain/;
  index index.php index.html index.htm;
}
location ~ .php$ {
  fastcgi_pass unix:/dev/shm/php-cgi.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
  }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
  expires 30d;
  }
location ~ .*\.(js|css)?$ {
  expires 7d;
  }
}

nginx将泛解析的匹配域名绑定到子目录的配置方法如下

代码如下:

server {
    listen        80;
    server_name   domain.com    *.domain.com;

if ($host ~* ^([^\.]+)\.([^\.]+\.[^\.]+)$) {
        set $subdomain $1;
        set $domain $2;
    }

location / {
        root    /home/wwwroot/$domain/$subdomain/;
        index   index.php index.html index.htm;
        #include /home/wwwroot/$domain/$subdomain/.ngx.htaccess;
    }

error_page   500 502 503 504  /50x.html;

location = /50x.html {
        root   html;
    }

location ~ \.php$ {
        root           /home/wwwroot/$domain/$subdomain/;
        fastcgi_pass   127.0.0.1:9100;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

(0)

相关推荐

  • Nginx泛解析到子目录后自动判断有无public目录详解

    前言 我们大家在配置本地 PHP 开发环境时,除非是在 Windows 下,否则我都是偏向于 Nginx + PHP-FPM, 即使 Mac 下已经有了自带的 Apache+PHP 环境,依然如此.一方面是因为 Mac 自带的 PHP 版本不够新(5.6.x),另一方面,Nginx + PHP-FPM 更接近于我的生产服务器环境,而且也方便用 Homebrew 来管理版本和扩展. 在 Mac 下开发 Laravel, 官方提供了 valet, 可以方便地把子目录映射为虚拟主机,但我在使用的时候,

  • nginx泛域名解析配置教程

    最近一个项目需要承载高并发请求,所以在后端语言上选择了NodeJs,但是nodejs有时候读取不到请求的主机名,所以想到使用nginx+nodejs的方式进行处理. Nginx 配置 代码如下 upstream io_nodes { server 127.0.0.1:8081; } server { listen 80; listen [::]:80; root /var/www/html; server_name ~^(?<subdomain>.+).example.com; locatio

  • nginx将泛解析的匹配域名绑定到子目录配置方法

    网站的目录结构为: # tree /home/wwwroot/exehack.net /home/wwwroot/exehack.net ├── bbs │   └── index.html └── www     └── index.html 2 directories, 2 files /home/wwwroot/exehack.net为nginx的安装目录下默认的存放源代码的路径. bbs为论坛程序源代码路径:www为主页程序源代码路径:把相应程序放入上面的路径通过:http://www.

  • 使用Nginx反向代理与proxy_cache缓存搭建CDN服务器的配置方法

    碰到问题:移动用户访问web服务器www.osyunwei.com很慢解决办法:1.在移动机房放置一台nginx反向代理服务器2.通过域名DNS智能解析,所有移动用户访问www.osyunwei.com时解析到nginx反向代理服务器3.nginx反向代理服务器与web服务器之间采用专线连接说明:1.web服务器线路:电信IP:192.168.21.129域名:www.osyunwei.com2.nginx反向代理服务器线路:移动系统:CentOS 6.2IP:192.168.21.164vi

  • 实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法

    nginx与apache不一样,在apache中可以直接指定php的错误日志,那样在php执行中的错误信息就直接输入到php的错误日志中,可以方便查询. 在nginx中事情就变成了这样:nginx只对页面的访问做access记录日志.不会有php的error log 信息.nginx把对php的请求发给php-fpm fastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errors log里也看不到php的errorlog. 原因是php-fpm的配

  • Nginx列出目录和文件并用密码控制访问权限配置方法

    这篇文章介绍怎样用web服务器列出指定的目录和文件,并对指定目录进行授权访问. 使用Nginx列出目录 准备工作 - 安装nginx和创建一些目录和文件: 复制代码 代码如下: $ sudo apt-get install nginx $ cd /usr/share/nginx $ mkdir web $ sudo mkdir directory{1,2,3} $ sudo touch file{1,2,3} $ ls directory1  directory2  directory3  fi

  • 详解nginx 的 default_server 定义及匹配规则

    nginx 的 default_server 指令可以定义默认的 server 去处理一些没有匹配到 server_name 的请求,如果没有显式定义,则会选取第一个定义的 server 作为 default_server. 在了解到如上规则后,我们可以捕获未做绑定的域名访问或直接IP访问,做重定向到403页面等处理. 1.nginx 隐式的 default server http { # 如果没有显式声明 default server 则第一个 server 会被隐式的设为 default s

  • Nginx中泛域名配置的实例教程

    原本准备换Linux服务器,所以数据迁移暂时需要使用静态页面临时代替一下,之前的article.asp?id=xxx都要重定向到静态文件 article/xxx.htm,nginx的rewrite比apache的强大很多,还可以用if语句,很容易理解,下面看看Nginx是如何进行Rewrite的! 提示:以下rewrite指令写在 nginx.conf 配置的 server { - } 中 最常见的: 静态地址重定向到带参数的动态地址 rewrite "^(.*)/service/(.*)/.h

  • nginx反向代理二级域名绑定方法及注意事项

    摘要 本文介绍了利用nginx实现多域名和多站点的绑定的方法及相关注意事项.您也可以只看标题或红色标注部分.☺ 1.应用场景 我们经常会遇到在同一台服务器建立多个Web站点的情况,普遍的做法是为不同的站点配置不同的端口,这样就可以用IP:Port的形式访问. 但是用IP访问毕竟不方便,不生动,不容易记忆.那么,我们可以给每个站点绑定不同的域名.(在这里我们仅谈公网情况)即使我们只有一个域名,我们可以设置多个二级域名,使用Nginx很容易实现. 2.基本要求 通常,网上教程会直接贴一段配置文件的代

  • 新网互联 域名 泛解析设置方法

    1.什么是泛域名解析? 泛域名解析是指将*.域名解析到同一IP. 在域名前添加任何子域名,均可访问到所指向的WEB地址.也就是客户的域名a.com之下所设的*.a.com全部解析到同一个IP地址上去. 比如客户设b.a.com就会自已自动解析到与a.com同一个IP地址上去. 2.泛域名解析域名域名解析的区别? 泛域名解析是:*.域名解析到同一IP. 域名解析是:子域名.域名解析到同一IP. 注意:只有你的空间是独立IP的时候泛域名才有意义.而域名解析则没有此要求. 3.怎样设置域名泛解析? 你

  • 使用nginx正向代理实现内网域名转发过程解析

    客户内网环境,使用ppoe拨号上网,提供商为集团内部二级运营商,网络环境比较复杂,在集团内部网络和办公网络采用静态路由协议互联,大致情况如下所示: 原来客户访问生产业务,都是通过ip地址访问,随着生产业务越来越多,现在客户强烈要求使用域名方式访问业务.但是鉴于内网环境复杂,不好部署域名服务器,部署了访问业务也比较困难. 后来学习nginx,知道nginx可以实现正向代理实现域名转发.整体思路如下: 说明: 1.在阿里云上配置域名解析.例如OA.XXXX.COM,解析地址为内网地址172.31.1

随机推荐