一 应用场景描述

应开发同事需求,需要在开发环境的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指令用于检查一个条件是否符合,如果条件符合,则执行大括号内的内容。if指令不支持嵌套,不支持多个&&或||

可以指定的条件为:

1)变量名

2)变量比较可以使用 =(等于)和!=(不等于)

3)正则表达式匹配可以使用 ~(区分大小写匹配)和 ~* (不区分大小写匹配)

!~ 和 !~* 则表示不匹配

4)-f和!-f 用来判断文件是否存在

5) -d和!-d 用来判断目录是否存在

6) -e和!-e 用来判断文件或目录是否存在

7)-x和!-x 用来判断文件是否可以执行

3)Nginx内置变量

$host                            请求的主机名

$request_filename                    请求的文件名

4)rewrite指令

rewrite regex replacement flag;

用来重定向URL

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

rewrite最后一项为标记位,Nginx支持的标记为有:

last           表示完成rewrite

permanent       返回301永久重定向,浏览器地址栏会显示跳转后的URL

break         本条规则匹配完成后,终止其他规则的匹配

redirect        返回302临时重定向

last和break完成URL的重定向,浏览器上的地址不会变,但在服务器端上的位置发生了变化。permanent和redirect用来实现URL跳转,浏览器地址栏会显示跳转后的URL。

使用alias指令时必须使用last指令,使用proxy_pass指令时必须使用break指令

参考文档:

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

转载于:https://blog.51cto.com/john88wang/1616538

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

  1. linux基于域名的虚拟主机,Nginx虚拟主机应用——基于域名、IP、端口的虚拟主机...

    Nginx支持的虚拟主机有三种 ●基于域名的虚拟主机 ●基于IP的虚拟主机 ●基于端口的虚拟主机 每一种虚拟主机均可通过"server{}" 配置段实现各自的功能 基于域名的虚拟主 ...

  2. nginx虚拟主机(基于域名虚拟主机、基于IP地址虚拟主机、基于端口虚拟主机设置)

    文章目录 Nginx支持的虚拟主机有三种 配置环境 配置DNS域名 安装环境 安装nginx 制作管理脚本 基于域名 基于端口 基于IP 基于用IP地址访问域名 Nginx支持的虚拟主机有三种 ●基于 ...

  3. web服务器 ---nginx 虚拟主机的创建(基于 域名 . 端口 . ip )以及nginx访问控制

    文章目录 前言 一:Nginx服务基础(理论) 二:Nginx虚拟主机实验 2.1:Nginx虚拟主机应用 2.2 具体步骤,配置基于域名的虚拟主机 2.2.1 安装环境软件软件 2.2.2 编译安装 ...

  4. Java学习---nginx虚拟主机域名配置

    一.nginx虚拟主机域名配置 1.1.创建好站点 1.2.在nginx的配置文件中设置 修改nginx.conf文件 worker_processes 1;events {worker_connec ...

  5. nginx虚拟主机和域名跳转

    nginx介绍 nginx官网 :nginx.org nginx主要应用web服务.反向代理和负载均衡的作用上 nginx分支,淘宝基于nginx开发的Tengine,使用上和nginx一致,服务和配 ...

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

    nginx虚拟主机配置实战 1,虚拟主机概念和类型介绍 所谓虚拟主机,在web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立地对外提供服 ...

  7. Nginx服务器、Nginx虚拟主机、Nginx反向代理

    nginx安装[依赖包,./configure模块] nginx升级[make upgrade] nginx[默认welcome测试网站] nginx[用户认证] nginx [server{ }虚拟 ...

  8. 6. Nginx虚拟主机

    文章目录 6. Nginx虚拟主机 6.1 nginx 单虚拟主机配置 6.1.1 静态网站的搭建 6.2 案例1:多网卡多IP配置虚拟主机 6.2.1 增加一块网卡 6.2.2 编辑配置文件,基于每 ...

  9. Nginx虚拟主机与域名解析

    文章目录 一.域名.dns.ip地址之间的关系 二.浏览器.nginx与http协议 三.虚拟主机原理 四.域名解析与泛解析 1.公网ip解析 2.内网ip解析 五.域名解析相关企业项目实战技术架构 ...

最新文章

  1. 【RLChina2020】 强化学习夏令营课件(附pdf下载)
  2. view是怎么被展示在手机上的?
  3. chapter13 机器学习之利用PCA简化数据
  4. ustc小道消息20211225
  5. falcon框架_如何使用Falcon构建RESTful API
  6. 【转】嵌入式软件:C语言编码规范
  7. python与excel-用Python完成Excel的常用操作
  8. python random random_【python】random与numpy.random
  9. python中bif是什么_python类与对象(BIF详细分析及实例讲解)
  10. J-LINK烧录bin文件
  11. 苏州大学与东华大学计算机哪个好,选哪所大学好?东华大学和苏州大学对比
  12. 致远项目管理SPM系统案例:华仁药业股份有限公司合同管理
  13. Springer-Verlag免费下载图书400本
  14. 用Burpsuite破解网站密码
  15. 网络正常,浏览器显示代理服务器没有响应怎么办?
  16. onbeforeunload与onunload用法(转)
  17. 生信基础(三)——统计分析工具R语言
  18. Leetcode 999. Available Captures for Rook
  19. 用三个与非门设计或门两种方法
  20. 这些前端大厂面试题你会做吗?每日10题大厂面试题(七)

热门文章

  1. redmine升级了 ,6与18日同时发布2.0.3和1.4.4
  2. C#在WinFrom中Get/Post请求及QQ农场Cookie保存
  3. ObjectDataSource未能找到带参数的非泛型方法的解决
  4. Android开发——Android中常见的4种线程池(保证你能看懂并理解)
  5. 关于机器学习中的一些常用方法的补充
  6. Django error信息邮件通知功能配置部署
  7. FJ省队集训DAY4 T1
  8. ZIL (ZFS intent log) zil.c
  9. 并发异步处理队列 .NET 4.5+
  10. 基于单个xml的数据库