重识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


这有啥办法优化么 ?

相关文章
|
2月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
171 61
|
1月前
|
弹性计算 负载均衡 网络协议
ECS中实现nginx4层7层负载均衡和ALB/NLB原SLB负载均衡
通过本文的介绍,希望您能深入理解并掌握如何在ECS中实现Nginx四层和七层负载均衡,以及如何使用ALB和NLB进行高效的负载均衡配置,以提高系统的性能和可靠性。
131 9
|
1月前
|
存储 编解码 应用服务中间件
使用Nginx搭建流媒体服务器
本文介绍了流媒体服务器的特性及各种流媒体传输协议的适用场景,并详细阐述了使用 nginx-http-flv-module 扩展Nginx作为流媒体服务器的详细步骤,并提供了在VLC,flv.js,hls.js下的流媒体拉流播放示例。
186 1
|
2月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
68 3
|
3月前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
60 3
|
5月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
259 0
|
5月前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
54 0
|
5月前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
70 0
|
弹性计算 安全 应用服务中间件
ECS动手搭建Nginx
在ECS的centos7上搭建一个Nginx
2089 7
ECS动手搭建Nginx
|
8天前
|
弹性计算 数据挖掘 应用服务中间件
阿里云轻量应用服务器68元与云服务器99元和199元区别及选择参考
目前阿里云有三款特惠云服务器,第一款轻量云服务器2核2G68元一年,第二款经济型云服务器2核2G3M带宽99元1年,第三款通用算力型2核4G5M带宽199元一年。有的新手用户并不是很清楚他们之间的区别,因此不知道如何选择。本文来介绍一下它们之间的区别以及选择参考。
206 86

热门文章

最新文章