Nginx目录别名(Alias)支持PHP的配置

需求:通过 example.com 访问 /var/data/www,但通过 example.com/pa 访问的却是 /var/data/phpmyadmin,即保护phpmyadmin不暴露在www目录下。

一、方法一:(不推荐)

简介:这是网上普遍采用的 Rewrite 方式。
缺陷:简单的php程序还能应付,复杂一点的程序就"No input file specified"

server {
    listen 80;
    server_name example.com;

    root /var/data/www;
    index index.html index.php;

    location /pa {
        alias /var/data/phpmyadmin;
        index index.html index.php;
    }

    location ~ /pa/.+\.php$ {
        rewrite /pa/(.+\.php) /$1 break;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/data/phpmyadmin/$fastcgi_script_name;
        include  fastcgi_params;
    }

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

二、方法二:(推荐)

简介:完美实现,无副作用。
特点:使用了一个叫"$valid_fastcgi_script_name"的变量

server {
    listen 80;
    server_name example.com;

    root /var/data/www;
    index index.html index.php;

    location /pa {
        alias /var/data/phpmyadmin;
        index index.html index.php;
    }

    location ~ /pa/.+\.php.*$ {
        if ($fastcgi_script_name ~ /pa/(.+\.php.*)$) {
            set $valid_fastcgi_script_name $1;
        }
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/data/phpmyadmin/$valid_fastcgi_script_name;
        include  fastcgi_params;
    }

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

二、方法三:

简介:在 zhigang.net 上看到的创意方法,即一个站加两个server字段,然后通过反代的方式实现。
特定:方法有创意,稍微麻烦点。

时间: 2024-07-28 19:39:57

Nginx目录别名(Alias)支持PHP的配置的相关文章

Nginx之alias path 与root配置段的区别

alias path 与root配置段的区别 alias 适用于:location 定义路径别名,文档映射的一种机制. 在httpd中的 alias /bbs/ /lufei/root/ 示例 访问:http://www.lufei.com/bbs/index.html 实际访问:http://www.lufei.com/lufei/root/index.html 这个是以/bbs/为根. 在nginx中的示例: location /bbs/ { alias /lufei/root/; } 访问

01 安装apache php配置 时区 环境变量 安装mysql 虚拟主机 文件夹访问权限 目录别名

php介绍 简介与历史 应用领域: php运行环境 php语言运行原理 安装apache: PHP的命令行运行模式(独立运行): 配置apache以运行php网页 配置php的基本运行环境 确定php配置文件(php.ini)的位置: 配置时区: 设置环境变量 检测apache配置文件语法 配置数据库连接机制 安装mysql数据库 虚拟主机配置 端口监听: 主机配置关键项 配置文件夹访问权限 主机别名设置 文件夹访问控制的文件控制方式 目录别名设置Alias 多站点配置: php介绍 简介与历史

nginx目录配置详解

进入nginx目录,排除temp文件后,剩余四个目录 [[email protected] nginx]# ls -l | grep -v temp 总用量 36 drwxr-xr-x. 2 root root 4096 7月  12 20:42 conf  → 配置文件 drwxr-xr-x. 2 root root 4096 7月  12 20:42 html  → 站点信息 drwxr-xr-x. 2 root root 4096 7月  12 20:49 logs  → 日志信息 drw

让nginx完美支持Thinkphp的配置

习惯了用apache后,当第一次用nginx时,把原来的项目(thinkphp框架)部署在新服务器上的时候,惊呆了! 所有的URL模式下都不能正常运行,甚至连css,js文件都不能正常加载. 原因是ngibx不支持pathinfo 主要是需要配置nginx location / { root D:/wnmp/www; index index.html index.htm; #访问路径的文件不存在则重写URL转交给ThinkPHP处理 if ( !-e $request_filename ) {

nginx 目录文件列表功能配置

工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果,而Nginx也可以满足这样的需求(nginx 目录列表功能默认是关闭的),这时就需要配置. ngx_http_autoindex_module 此模块用于自动生成目录列表(ngx_http_autoindex_module只在 ngx_http_index_module模块未找到索引文件时发出请求. ) 开启目录列表功能 1.打开nginx.conf文件,在location server或

mac下.gitconfig配置别名alias

在多人协作开发时,一般用git来进行代码管理.git有一些命令如:git pull . git push等等,这些命令可以设置alias,也就是缩写.如:git pull 是 git pl, git push 是 git ps.可以根据个人习惯进行修改. 修改别名alias步骤如下: 1,进入根目录 $ cd 2,查看根目录下面的文件 $ ls -la 查看一下有没有.gitconfig文件. 3,编辑.gitconfig $ vi .gitconfig 添加如下: [alias] co = c

Nginx(三):nginx.conf配置文件说明 【1】 配置参数说明

Nginx配置文件说明,不一定最全,但是最细,适合初学者或者概念不清晰者,如有理解错误的地方请指正. #nginx的worker进程用哪个用户和组进行登录,如果在编译时指定了,这里是禁用的,而且不会显示 #你的设置,为了便于识别,在保持禁用的同时你修改为实际用户和组 #user  nginx nginx; #[和优化有关] #启动几个worker进程,从Nginx1.9.10开始可以使用auto值,进行自动设置 #每个worker进程都是单线程进程,所以你叫它进程或者线程都行.这个值最大设置 #

nginx location和alias的区别

nginx指定文件路径有两种方式root和alias,指令的使用方法和作用域: [root] 语法:root path 默认值:root html 配置段:http.server.location.if [alias] 语法:alias path 配置段:location root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上. root的处理结果是:root路径+location路径 alias的处理结果是:使用ali

nginx图片过滤处理模块http_image_filter_module安装配置笔记

nginx图片过滤处理模块http_image_filter_module安装配置笔记 http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息,由于是即时计算的结果,所以网站访问量大的话,不建议使用. 安装还是很简单的,默认HttpImageFilterModule模块是不会编译进ngi