重识Nginx - 06 搭建静态资源Web服务器(alias VS root)

简介: 重识Nginx - 06 搭建静态资源Web服务器(alias VS root)

20200103193054943.png

官网说明

https://nginx.org/en/docs/



a135e09422514fa992f7eda09f2a5d75.png


点击 Module ngx_http_core_module


ae54939e4abb4ccb83c21f9dbf9cab81.png


a8b29bcc4c9c491aaa94e9c9bfdb8c5f.png


root vs alias


root与alias主要区别在于nginx如何解释location后面的uri, 分别以不同的方式将请求映射到服务器文件上。


alias是一个目录别名的定义(仅能用于location上下文)


root则是最上层目录的定义。


root的处理结果是:root路径+location路径 ; alias的处理结果是:使用alias路径替换location路径


alias后面必须要用“/”结束,否则会找不到文件, root则可有可无~~


使用alias时,目录名后面一定要加"/"


alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。


alias只能位于location块中, root可以不放在location中


location ^~ /abc/ {
  alias /www/artisan/html/new_abc/;
}

如果一个请求的URI是/abc/a.html时, 将会返回服务器的/www/artisan/html/new_abc/a.html

注意这里是new_abc, alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录

location ^~ /abc/ {
     root /www/artisan/html/;
}

如果一个请求的URI是/abc/a.html时,web服务器将会返回服务器上的/www/artisan/html/abc/a.html的文件。 root会把location配置的路径进行追加----> root路径+location路径


alias (用alias场景居多)

2de68c34e9294492bde0e6f5e30e29b5.png

语法

Syntax: alias path;
Default:  —
Context:  location


Demo

Defines a replacement for the specified location.

For example, with the following configuration

location /i/ {
    alias /data/w3/images/;
}


on request of “/i/top.gif”, the file /data/w3/images/top.gif will be sent.


The path value can contain variables, except $document_root and $realpath_root.


If alias is used inside a location defined with a regular expression then such regular expression should contain captures and alias should refer to these captures (0.7.40), for example:

location ~ ^/users/(.+\.(?:gif|jpe?g|png))$ {
    alias /data/w3/images/$1;
}

When location matches the last part of the directive’s value:

location /images/ {
    alias /data/w3/images/;
}


it is better to use the root directive instead:

location /images/ {
    root /data/w3;
}


root


cc9d2009063a46c4b7beb6dfcaf8682b.png


语法


Syntax: root path;
Default:  
root html;
Context:  http, server, location, if in location


注意Contex的范围


Demo

Sets the root directory for requests.

For example, with the following configuration


location /i/ {
    root /data/w3;
}


The /data/w3/i/top.gif file will be sent in response to the “/i/top.gif” request.


The path value can contain variables, except $document_root and $realpath_root.


A path to the file is constructed by merely adding a URI to the value of the root directive. If a URI has to be modified, the alias directive should be used.


实操


基本信息


环境:CentOS7

位置:/root/ng/artisan_ng

版本: nginx/1.22.0


需求

需求: 搞个图片or文档,能通过浏览器访问


步骤

我们假定把 这些资源放到 ng的 安装目录下的 document下


[root@VM-0-7-centos artisan_ng]# pwd
/root/ng/artisan_ng
# 新建document目录 
[root@VM-0-7-centos artisan_ng]# mkdir document
[root@VM-0-7-centos artisan_ng]#
[root@VM-0-7-centos artisan_ng]# cd document/
# 上传资源 
[root@VM-0-7-centos document]# ll
total 2876
-rw-r--r-- 1 root root 1912566 Oct  3 10:40  1.gif
-rw-r--r-- 1 root root  166244 Oct  3 01:25  1.jpg
-rw-r--r-- 1 root root  607643 Oct  3 01:26  1.pdf
-rwxrwxrwx 1 root root  246643 Oct  3 01:01  a.html
drwxrwxrwx 2 root root    4096 Oct  3 01:01 'Module ngx_http_core_module_files'
[root@VM-0-7-centos document]#

接下来我们去修改ng的配置

[root@VM-0-7-centos document]# vim ../conf/nginx.conf


配置如下

25258c6eb367409eb797109fd700bf55.png


alias后面的path ,也可以配置绝对路径 。 如果配置的是相对路径的话,则以ng的安装目录为准。

重载nginx

[root@VM-0-7-centos document]# ../sbin/nginx -s reload
[root@VM-0-7-centos document]#
[root@VM-0-7-centos document]#


访问 http://ip:9999/a.html


11f2a33e63cf4e1b8ce7bafc7c12fd10.png



问题

11f2a33e63cf4e1b8ce7bafc7c12fd10.png


这有啥办法优化么 ?

相关文章
|
3月前
|
缓存 应用服务中间件 nginx
成功解决 Nginx更新静态资源无效 ,Nginx静态资源更新不及时,Nginx清除缓存
这篇文章讨论了在使用Nginx进行动静分离时遇到的静态资源更新不及时的问题。问题描述了在服务器上更新静态资源后,访问页面时页面没有显示更新的情况。文章提供了解决这个问题的方法,即清除浏览器缓存,并提供了相关参考文章链接。此外,还展示了问题复现的步骤和正常情况的预期结果。
成功解决 Nginx更新静态资源无效 ,Nginx静态资源更新不及时,Nginx清除缓存
|
3月前
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
105 0
|
1月前
|
应用服务中间件 网络安全 nginx
nginx作为web服务以及nginx.conf详解
nginx作为web服务以及nginx.conf详解
|
3月前
|
应用服务中间件 nginx
nginx动静分类,静态资源放到nginx中
这篇文章介绍了如何将项目中的静态资源部署到Nginx服务器中,包括将静态资源移动到Nginx目录、删除项目中的静态资源、替换静态资源访问路径、检查页面情况、修改Nginx配置文件以及重启Nginx查看效果的详细步骤。
nginx动静分类,静态资源放到nginx中
|
2月前
|
负载均衡 网络协议 应用服务中间件
web群集--rocky9.2源码部署nginx1.24的详细过程
Nginx 是一款由 Igor Sysoev 开发的开源高性能 HTTP 服务器和反向代理服务器,自 2004 年发布以来,以其高效、稳定和灵活的特点迅速成为许多网站和应用的首选。本文详细介绍了 Nginx 的核心概念、工作原理及常见使用场景,涵盖高并发处理、反向代理、负载均衡、低内存占用等特点,并提供了安装配置教程,适合开发者参考学习。
|
3月前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?
|
3月前
|
负载均衡 应用服务中间件 Linux
"揭晓nginx的神秘力量:如何实现反向代理与负载均衡,拯救服务器于水火?"
【8月更文挑战第20天】在Linux环境下,nginx作为高性能HTTP服务器与反向代理工具,在网站优化及服务器负载均衡中扮演重要角色。本文通过电商平台案例,解析nginx如何解决服务器压力大、访问慢的问题。首先介绍反向代理原理,即客户端请求经由代理服务器转发至内部服务器,隐藏真实服务器地址;并给出配置示例。接着讲解负载均衡原理,通过将请求分发到多个服务器来分散负载,同样附有配置实例。实践表明,采用nginx后,不仅服务器压力得到缓解,还提升了访问速度与系统稳定性。
77 3
|
3月前
|
应用服务中间件 Linux 网络安全
在Linux中,如何配置Apache或Nginx Web服务器?
在Linux中,如何配置Apache或Nginx Web服务器?
|
3月前
|
存储 负载均衡 应用服务中间件
FastDFS+Nginx:轻松搭建本地文件服务器
【8月更文挑战第19天】在现今互联网快速发展的时代,文件服务器作为支撑各种在线服务的重要基础设施,其稳定性和性能显得尤为关键。FastDFS作为一款开源的轻量级分布式文件系统,凭借其高效的文件管理功能,特别适合用于构建相册网站、视频网站等以文件为载体的在线服务。本文将详细介绍如何利用FastDFS和Nginx快速搭建一个本地文件服务器,为您的工作和学习提供技术支持。
261 0
|
3月前
|
关系型数据库 Linux 应用服务中间件
如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin
如何在 Ubuntu 14.04 服务器上使用 Nginx 安装和保护 phpMyAdmin
23 0