Nginx虚拟机主机根据不同的域名使用不同的root路径

一 应用场景描述

应开发同事需求,需要在开发环境的Nginx能够根据不同的域名使用不同的root路径。

例如如果域名是game4.xxx.com,就使用root路径为/data/public/game4

game5.xxx.com,就使用root路径为/data/public/game5

game6.xxx.com,就是用root路径为/data/public/game6

二 解决方法

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

        set $game_name game4;

        if ($host ~ "game5")
        {
           set $game_name game5;
        }

        if ($host ~ "game6")
        {
           set $game_name game6;
        }

        root        /data/public/$game_name/;
 
        client_max_body_size 5m;

        autoindex off;
        location / {
            if (!-e $request_filename){
               rewrite /(.*) /index.php last;
                                      }
            index index.php;
            autoindex off;
        }

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
            include        fastcgi_params;
        }

}

这里设置变量$game_name,然后在root路径中使用这个变量

三 相关Nginx指令介绍

1.set指令

用于定义一个变量,并为变量赋值

作用范围为if,location,server

如以上的

set $game_name game4;

2.if指令

if(condition) {...}

作用范围为

如:

if ($host ~ "game-taiwan-5")

{

set $game_name game5;

}

if指令用于检查一个条件是否符合,如果条件符合,则执行大括号内的内容。

参考文档:

http://serverfault.com/questions/241005/nginx-change-root-directory-based-on-server-name

时间: 2024-10-13 11:36:01

Nginx虚拟机主机根据不同的域名使用不同的root路径的相关文章

Apache与Nginx虚拟主机设置(多域名和多端口的区别)

为了方便管理虚拟主机,应该尽量少修改主配置文件http.conf或者nginx.conf,大部分修改变更都在虚拟主机片配置文件httpd- vhost.conf或者vhost.conf中完成,这样有利于调试,降低风险.即便把虚拟主机配置文件修改得一团糟,只要把主配置文件中包含虚拟主机 配置文件的一行注释掉即可. Apache(多域名): 第一步首先要使扩展文件httpd/conf.d/vhosts.conf生效: 1. 打开 apache2/conf/httpd.conf 文件 2. 找到 #

nginx虚拟主机和域名跳转

nginx介绍 nginx官网 :nginx.orgnginx主要应用web服务.反向代理和负载均衡的作用上nginx分支,淘宝基于nginx开发的Tengine,使用上和nginx一致,服务和配置名一致nginx比起apache在处理静态页面时更有优势,nginx最大区别在于Tenging支持一些定制化模块,在安全限速方面比较突出,支持js.css合并,优化web的高并发的访问需求nginx核心+lua相关组件和模块可以组成一个支持lua的高性能web容器openresty,openresty

Nginx配置——虚拟主机基于IP,域名,端口(实战!)

Nginx虚拟主机 基于域名的虚拟主机 基于IP地址的虚拟主机 基于端口的虚拟主机 一,安装DNS域名解析服务器 1,安装bind服务器 [[email protected] ~]# yum install bind -y 2,修改主配置文件(named.conf) [[email protected] ~]# vim /etc/named.conf options { listen-on port 53 { any; }; ##监听所有 listen-on-v6 port 53 { ::1;

Nginx虚拟主机 (基于域名 基于端口 基于ip)

Nginx虚拟主机 基于域名的虚拟主机 基于IP地址的虚拟主机 基于端口的虚拟主机 一,安装DNS域名解析服务器 1,安装bind服务器 [[email protected] ~]# yum install bind -y 2,修改主配置文件(named.conf) [[email protected] ~]# vim /etc/named.conf options { listen-on port 53 { any; }; ##监听所有 listen-on-v6 port 53 { ::1;

Nginx虚拟主机之域名,端口,IP

要nginx源码包请私信我 Nginx虚拟主机之域名 [[email protected] ~]# yum install bind -y 配置DNS主配置文件 [[email protected] ~]# vim /etc/named.conf options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/d

nginx虚拟主机概念和类型介绍

nginx虚拟主机配置实战 1,虚拟主机概念和类型介绍 所谓虚拟主机,在web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立地对外提供服务供用户访问. 这个这个独立的站点在配置里是由一定格式的标签段标记,对于apache软件来说,一个虚拟主机的标签段通畅被包含在<VirtualHost></VirtualHost>内,而nginx软件则使用一个server{}标签来标示一个虚拟主机,一个web服务里可以有多个虚拟主机主

Nginx虚拟主机配置实践(一)

Nginx虚拟主机配置实践(一) 一.虚拟主机的概念 在Web服务里虚拟主机就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立的对外提供服务供用户访问. 二.虚拟主机的类型 基于域名的虚拟主机 基于端口的虚拟主机 基于IP的虚拟主机 说明:实际生产中用的最多的就是基于域名的虚拟主机,其他两种了解即可. 三.基于一个域名虚拟主机的配置 Nginx主配置文件结构 创建一个最简化的Nginx主配置文件 [[email protected] conf

详述Linux系统中Nginx虚拟主机的配置

Nginx虚拟主机应用 Nginx支持的虚拟主机有三种 基于域名的虚拟主机. 基于IP的虚拟主机 基于端口的虚拟主机 通过"server{}"配置段实现 本篇实验接着上一篇搭建Nginx服务继续搭建,前面Nginx的编译安装不在介绍 基于域名的虚拟主机 [[email protected] nginx-1.12.2]# mkdir -p /var/www/html/accp //递归创建accp网页站点目录 [[email protected] nginx-1.12.2]# mkdir

nginx之 nginx虚拟机配置

1.配置通过域名区分的虚拟机[[email protected] nginx]# cat conf/nginx.confworker_processes 1; events { worker_connections 1024;} http { include mime.types; default_type application/octet-stream; server { listen 80; server_name www.nginx01.com; location / { root ht