nginx访问路径映射服务器资源文件

当我们需要用直接通过url访问服务器上的静态资源(如HTML、CSS、JavaScript、图片、视频等文件),而服务器本身没有fastDFS等文件分布式系统时,我们可以通过nginx配置文件目录映射来达到该效果。这种映射通常通过配置location指令来实现。以下是一般步骤和示例,说明如何在Nginx中映射静态资源目录:

  • 步骤1:定位Nginx配置文件
    找到Nginx的主配置文件,通常位于其安装目录下的conf/nginx.conf。如果您正在使用Docker,可能需要查看容器内的默认路径,例如/etc/nginx/nginx.conf,或者如果使用了自定义配置文件路径,则应根据实际情况调整。
     
  • 步骤2:配置虚拟主机或修改现有服务器块
    在配置文件中,您可以选择添加一个新的虚拟主机(server块),或者在现有的服务器块内添加或修改location指令。虚拟主机用于定义特定域名或IP地址的服务器配置。如果您只是想为本地测试使用Nginx提供静态资源,可以创建一个监听在非标准端口(如8080)的简单配置。
     
  • 步骤3:添加或编辑location指令
    在适当的server块内,使用location指令来映射URL路径到本地文件系统路径。有两种主要方法来指定资源目录:

使用root指令:指定一个基础目录,所有在这个location块内的请求都会相对于此目录查找文件。
nginx.conf

server {
        listen       8000;
		location / {
			root   html;
			index  index.html index.htm;
		}
		location /static {
		    root /path/to/local/directory;
		    #windows中如下
		    #root D:/path/to/local/directory;
		}

上述配置表示,当收到以/static开头的请求时,Nginx会在/path/to/local/directory/static下寻找对应的文件。例如,请求http://example.com/static/images/image.jpg会映射到服务器上的/path/to/local/directory/static/images/image.jpg。

使用alias指令:为指定的URL路径提供一个精确的目录映射,不附加location路径。
nginx.conf

server {
        listen       8000;
		location / {
			root   html;
			index  index.html index.htm;
		}
		location /resources {
		    alias /path/to/local/directory;
	    }
}

对于上述配置,请求http://example.com/resources/document.pdf会被映射到服务器上的/path/to/local/directory/document.pdf,注意这里不会加上/resources


但当我实际配置文件目录映射的时候,却发现出现提示404文件路径不存在的情况。原来是因为我的前端项目是通过docker启动的nginx,所以要在docker-compose.yml中配置路径映射,如:我的文件是在服务器的/root/nginx-haijing-energy/nginx/apk目录下而我的nginx配置为
 

    location / {
        root    /usr/share/nginx/html;
        index  index.html index.htm;
    }
    location /apk {
		    alias  /apk;
		    #windows中如下
		    #root D:/path/to/local/directory;
		}

那我应该配置

之后重新创建docker容器就可以了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值