`

nginx 静态目录配置规则

阅读更多
经常配了nginx静态目录,死活访问不了,每次访问404.查看文档后,发现nginx配置静态目录使
用以下规则

假如nginx是在本机,静态目录也是在本机,

1、子目录匹配
如下配置
location / {
    root /data/www;
}


访问http://127.0.0.1/时,配匹配/data/www
访问http://127.0.0.1/images时,配匹配/data/www/images
访问http://127.0.0.1/images/1.jpg时,配匹配/data/www/images/1.jpg
也就是说,地址栏里"/"后的路径是直接匹配目录data/www/下的路径

而对于配置
location /images/ {
    root /data/www;
}

访问http://127.0.0.1/images时,配匹配/data/www/images
也就是说,地址栏里/images,直接匹配了/data/www的子目录.
经常出问题的是,location里的url随意配了一个名字,如/xxx,但是对应的/data/www目录
下并没有该/data/www/xxx子目录,一访问就404


2、重复路径匹配规则

对于如下配置:
server {
    location / {
        root /data/www;
    }

    location /images/ {
        root /data;
    }
}


访问URL http://localhost/images/example.png,将会匹配第二个/images/规则,
虽然也可以匹配location /规则,但nginx默认会选择最长前缀去匹配当前URL,也就是
第二个配置会生效,访问/data/images/目录,而不是/data/www/images/目录


Serving Static Content


引用

Serving Static Content

An important web server task is serving out files (such as images or static HTML pages). You will implement an example where, depending on the request, files will be served from different local directories: /data/www (which may contain HTML files) and /data/images (containing images). This will require editing of the configuration file and setting up of a server block inside the http block with two location blocks.

First, create the /data/www directory and put an index.html file with any text content into it and create the /data/images directory and place some images in it.

Next, open the configuration file. The default configuration file already includes several examples of the server block, mostly commented out. For now comment out all such blocks and start a new server block:

    http {
        server {
        }
    }

Generally, the configuration file may include several server blocks distinguished by ports on which they listen to and by server names. Once nginx decides which server processes a request, it tests the URI specified in the request’s header against the parameters of the location directives defined inside the server block.

Add the following location block to the server block:

    location / {
        root /data/www;
    }

This location block specifies the “/” prefix compared with the URI from the request. For matching requests, the URI will be added to the path specified in the root directive, that is, to /data/www, to form the path to the requested file on the local file system. If there are several matching location blocks nginx selects the one with the longest prefix. The location block above provides the shortest prefix, of length one, and so only if all other location blocks fail to provide a match, this block will be used.

Next, add the second location block:

    location /images/ {
        root /data;
    }

It will be a match for requests starting with /images/ (location / also matches such requests, but has shorter prefix).

The resulting configuration of the server block should look like this:

    server {
        location / {
            root /data/www;
        }

        location /images/ {
            root /data;
        }
    }

This is already a working configuration of a server that listens on the standard port 80 and is accessible on the local machine at http://localhost/. In response to requests with URIs starting with /images/, the server will send files from the /data/images directory. For example, in response to the http://localhost/images/example.png request nginx will send the /data/images/example.png file. If such file does not exist, nginx will send a response indicating the 404 error. Requests with URIs not starting with /images/ will be mapped onto the /data/www directory. For example, in response to the http://localhost/some/example.html request nginx will send the /data/www/some/example.html file.

To apply the new configuration, start nginx if it is not yet started or send the reload signal to the nginx’s master process, by executing:

    nginx -s reload

    In case something does not work as expected, you may try to find out the reason in access.log and error.log files in the directory /usr/local/nginx/logs or /var/log/nginx.

分享到:
评论

相关推荐

    2020T5友价商城源码系统nginx伪静态重写规则.zip

    Nginx作为一款高性能的Web服务器,支持通过配置重写规则来实现伪静态,这正是"T5友价商城源码系统nginx伪静态重写规则.txt"文件所包含的内容。 Nginx的重写规则通常在server或location块中定义,使用rewrite指令...

    mayicms蚂蚁分类信息5.9 宝塔nginx 单城市伪静态规则

    【标题】"mayicms蚂蚁分类信息5.9 ...综上所述,这个标题和描述涉及到的主要是mayicms蚂蚁分类信息系统的伪静态配置,以及在宝塔面板下的Nginx服务器配置技巧。通过这些规则,可以改善用户体验,提升网站的SEO性能。

    Nginx本地目录映射实现代码实例

    有时候需要访问服务器上的一些静态资源,比如挂载其他设备上的图片到本地的目录,而本地的目录不在nginx根目录下,这个时候就需要简单的做一下目录映射来解决,比如想通过浏览器... location /image/ { ...

    nginx 伪静态 重定向

    Nginx的重定向与伪静态配置,通过灵活运用`rewrite`指令及其丰富的标志选项,能够有效应对网站结构调整带来的各种挑战,确保网站的平滑过渡,同时增强SEO表现,是网站运维与开发人员不可或缺的工具。掌握并熟练运用...

    nginx伪静态配置

    **Nginx 伪静态配置详解** 在Web服务器领域,Nginx以其高效、轻量级的特性,被广泛用于处理静态文件、反向代理和负载均衡等任务。其中,Nginx的伪静态配置是将动态URL转换为静态或看似静态的URL,以提高搜索引擎...

    Nginx配置http转https以及https访问http静态资源.docx

    Nginx配置http转https以及https访问http静态资源需要配置SSL证书、SSL会话缓存、rewrite规则、location块、add_header指令、proxy_pass指令等。通过正确的配置,Nginx可以提供安全、稳定、高性能的Web服务器服务。

    thinkphp3.1.3升级php7及nginx配置伪静态.zip

    3. **配置伪静态**:添加如下规则,处理ThinkPHP的URL重写: ``` location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } } ``` 这段代码会让Nginx将所有未找到的静态...

    nginx伪静态隐藏.php后缀,在url后补斜杠/

    要实现 Nginx 下的伪静态配置,主要是通过修改 Nginx 的配置文件来添加相应的重写规则。以下是一些关键步骤: ##### 2.1 准备工作 - **确认 Nginx 版本**:确保 Nginx 版本支持 URL 重写功能。 - **备份现有配置...

    DZX3.5伪静态规则文件

    1. **兼容性**:确保配置的伪静态规则与服务器环境兼容,如Apache的mod_rewrite或Nginx的rewrite模块。 2. **避免循环重定向**:配置规则时要小心,避免产生无限重定向的循环。 3. **缓存问题**:修改规则后,可能...

    mayicms蚂蚁分类信息5.8、5.9伪静态规则

    3. **mayicms 系统设置**:在mayicms后台,通常会有专门的伪静态配置选项。管理员可以在系统设置中选择启用伪静态,并根据服务器环境选择合适的规则模板。 4. **SEO优化**:伪静态不仅可以提高用户体验,也有利于...

    宝塔linux Nginx环境WeCenter伪静态规则代码.docx

    宝塔linux Nginx环境WeCenter伪静态规则代码.docx

    nginx设置rewrite规则

    在LNMP(Linux + Nginx + MySQL + PHP)环境中,配置Nginx的rewrite规则是优化网站URL和实现动态URL静态化的重要步骤。下面将详细介绍如何在LNMP环境中配置Nginx的rewrite规则。 首先,了解rewrite规则的基本概念。...

    cpp-Nginx静态资源重定向模块

    在C++编程环境下,我们可以为Nginx开发自定义模块来扩展其功能,例如"cpp-Nginx静态资源重定向模块"就是一个这样的例子。这个模块旨在优化网站性能,通过重写静态资源(如CSS、JavaScript和图片)的URL,将请求转发...

    nginx 伪静态化rewrite规则

    Nginx通过其配置中的rewrite模块来实现伪静态化规则的设置。 伪静态化的主要实现手段是重写URL规则,Nginx中的rewrite规则是基于正则表达式的,这使得它具有很强的灵活性和强大的文本匹配能力。rewrite模块的配置...

    nginx FTP服务(nginx.conf已经配置到了D:\\ftp目录,可自行更改)

    2. **安全设置**:为了保障FTP服务的安全,可能需要配置防火墙规则,限制只允许特定IP地址访问,或者启用SSL/TLS加密连接。 3. **日志记录**:`logs`目录可能包含了Nginx的日志文件,如access.log和error.log,用于...

    tp框架伪静态设置规则,iis和apache、windows、linux都有效。Public目录图片资源目录有效

    总结来说,配置ThinkPHP框架的伪静态规则主要涉及到Apache的`.htaccess`和IIS的`web.config`文件的修改,同时确保Public目录中的静态资源不受影响。这些设置在不同服务器环境和操作系统上都能有效工作,为网站提供...

    蚂蚁伪静态5.9nginx

    本文主要解析了“蚂蚁伪静态5.9nginx”的Nginx配置规则,该配置旨在优化网站URL结构,使其更加友好、易于记忆且有利于搜索引擎优化(SEO)。通过一系列重写规则,原本复杂的动态页面URL被转换为简洁的静态页面样式,...

    Yii2配置Nginx伪静态的方法

    通过伪静态配置,我们可以使URL看起来像是静态文件的路径,从而实现更好的SEO优化以及更清晰的URL结构。配置伪静态通常需要在Nginx的配置文件中,通常是nginx.conf或者网站特定的配置文件中进行设置。 首先,需要...

    Nginx反向代理服务器配置基础教程

    为了保证Nginx的安全运行,需要创建专门的用户和用户组,并设置必要的目录。 ```bash # 创建Nginx用户组 groupadd -r nginx # 创建Nginx用户 useradd -r -g nginx -s /bin/false -M nginx # 创建临时文件目录 ...

Global site tag (gtag.js) - Google Analytics