nginx配置location root简单方法记录

 更新时间:2023年12月08日 09:23:24   作者:bw_0927  
Location是Nginx中一个非常核心的配置,下面这篇文章主要给大家介绍了关于nginx配置location root的相关资料,文中介绍的非常详细,需要的朋友可以参考下

前言

nginx指定文件路径有两种方式root和alias,root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。

最基本的区别

alias 指定的目录是准确的,给location指定一个目录。root 指定目录的上级目录,并且该上级目录要含有locatoin指定名称的同名目录
以root方式设置资源路径:

语法: root path;
配置块: http、server、location、if

以alias 方式设置资源路径

语法: alias path;
配置块: location

Example:

location /img/ {
	alias /var/www/image/;
}
#若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件
location /img/ {
	root /var/www/image;
}
#若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件

注意: 

1.使用alias时,目录名后面一定要加”/“。
2.使用alias标签的目录块中不能使用rewrite的break。
3.alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
4.alias只能位于location块中

配置alias支持PHP fastcgi解析

location /app {
	alias /project/app/;
	index index.php;			
	location ~ \.php$ { #方案一
		fastcgi_pass 127.0.0.1:9100;
		fastcgi_index  index.php;
		include fastcgi.conf;
	}
}

#location ~ /app/.+\.php$ { #方案二
#	rewrite /app/(.+\.php) /$1 break;
#	include fastcgi.conf;
#	fastcgi_pass 127.0.0.1:9100;
#	fastcgi_index index.php;
#	fastcgi_param SCRIPT_FILENAME /project/app/$fastcgi_script_name;
#}

===============

nginx貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。

如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较“像”,干脆来说说alias标签和root标签的区别吧。

最基本的区别:alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录。另外,根据前文所述,使用alias标签的目录块中不能使用rewrite的break。

所以使用nginx设置root时要注意一个问题,就是如果该root设置的前端目录不是根目录,那么在写root的绝对地址时,要把前端目录的部分省略掉。

我们用设置虚拟目录指向的alias来和root比较一下就非常明显了

location /abc/ {     alias /home/html/abc/; }  

在这段配置下,http://test/abc/a.html就指定的是 /home/html/abc/a.html。这段配置亦可改成

location /abc/ {     root /home/html/;}  

可以看到,使用root设置目录的绝对路径时,少了/abc,也就是说,使用root来设置前端非根目录时,nginx会组合root和location的路径,即 /home/html/abc/。

另外,使用alias时目录名后面一定要加“/”

参考:

https://jasonhzy.github.io/2016/08/25/nginx-alias-root/

http://blog.csdn.net/21aspnet/article/details/6583335

到此这篇关于nginx配置location root的文章就介绍到这了,更多相关nginx配置location root内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx中报错:Permission denied与Connection refused的解决

    Nginx中报错:Permission denied与Connection refused的解决

    这篇文章主要给大家介绍了在Nginx中报错:13: Permission denied与111: Connection refused的解决方法,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • Nginx跨域访问场景配置和防盗链详解

    Nginx跨域访问场景配置和防盗链详解

    这篇文章主要介绍了Nginx跨域访问场景配置和防盗链详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Windows系统下安装及部署Nginx详细教程(含多个站点部署)

    Windows系统下安装及部署Nginx详细教程(含多个站点部署)

    Nginx是一个很强大的高性能Web和反向代理服务,也是一种轻量级的Web服务器,可以作为独立的服务器部署网站,应用非常广泛,这篇文章主要给大家介绍了关于Windows系统下安装及部署Nginx(含多个站点部署)的相关资料,需要的朋友可以参考下
    2024-01-01
  • nginx 配置指令之location使用详解

    nginx 配置指令之location使用详解

    这篇文章主要介绍了nginx 配置指令之location使用,Nginx最大的安全问题并不是其安全漏洞,而是在运维上面,尤其是错误配置导致的问题,对nginx location使用感兴趣的朋友一起看看吧
    2022-05-05
  • 详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点

    详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点

    本篇文章主要介绍了详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • nginx 让users有权限启动的两种方法

    nginx 让users有权限启动的两种方法

    这篇文章主要介绍了nginx 让users有权限启动两种方法的相关资料,需要的朋友可以参考下
    2017-05-05
  • Windows设置nginx开机自启动的方法

    Windows设置nginx开机自启动的方法

    这篇文章主要介绍了Windows设置nginx开机自启动的方法,通过两种方式实现nginx的开机自启动:winws和window计划程序,每种方式给大家介绍的非常详细需要的朋友可以参考下
    2022-11-11
  • nginx使用nginx-rtmp-module模块实现直播间功能

    nginx使用nginx-rtmp-module模块实现直播间功能

    做的过程出现很多问题,环境其实就需要nginx就可以,然后就是在播放的问题,m3u8的格式,mac直接访问就支持,苹果系统原生H5支持m3u8,还有就是手机直接访问也支持!但是其他其他系统PC端不支持,尝试了好多都不行,最后终于找到了一个支持m3u8格式H5播放
    2017-10-10
  • Nginx实现服务端集群搭建

    Nginx实现服务端集群搭建

    本文介绍了如何搭建Nginx服务端集群,主要包括动静分离及其Tomcat集群搭建,通过本文可以了解如何搭建高效、可扩展、高可用的服务器架构,提高网站性能和可靠性,感兴趣的可以了解一下
    2023-08-08
  • nginx共享内存机制详解

    nginx共享内存机制详解

    这篇文章主要介绍了nginx共享内存机制详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论