当前位置: 首页 > 知识库问答 >
问题:

nginx位置别名:是否忽略静态文件?

梁研
2023-03-14

我试图让zabbix前端与nginx一起工作。这是我的nginx配置

server {

    listen 80;
    server_name localhost;
    root /var/www/test/htdocs;
    index index.php index.html index.htm;


    location /zabbix {

        alias                   /usr/share/zabbix;
        index                   index.php;
        error_page              403 404 502 503 504  /zabbix/index.php;

        location ~ \.php$ {
            if (!-f $request_filename) { return 404; }
            expires                 epoch;
            include                 /etc/nginx/fastcgi_params;
            fastcgi_index   index.php;
            fastcgi_pass    unix:/var/run/php5-fpm.sock;
        }

        location ~ \.(jpg|jpeg|gif|png|ico)$ {
            access_log      off;
            expires         33d;
        }

    }


    location / {
            try_files $uri $uri/ /index.php;
            include /etc/nginx/proxy_params;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_read_timeout 120;
            include /etc/nginx/fastcgi_params;
    }

    include /etc/nginx/security;
    include /etc/nginx/main_rules;

}

/zabbix中的php脚本正在工作!但是像/usr/share/zabbix/css这样的文件。css未提供(404)。在错误日志中是这样的:

2013/07/19 20:23:33 [error] 13583#0: *1 open() "/var/www/test/htdocs/zabbix/css.css" failed (2: No such file or directory), client: xxx, server: localhost, request: "GET /zabbix/css.css HTTP/1.1"

所以我们可以看到,nginx正在主根目录/var/www/test/htdocs/中查找文件,而不是在别名目录/usr/share/zabbix/中查找文件。

为什么会这样,我该如何解决?

共有1个答案

冯元徽
2023-03-14

我会尽量把它们分开/仅带别名和~^/zabbix/*的zabbix。php$和fastcgi。都位于/位置之外,并具有根。

 类似资料:
  • 我需要通过位于的应用程序服务器为我的应用程序提供服务,并在不接触应用程序服务器的情况下从一个目录中为我的静态文件提供服务。我的nginx配置是这样的... 现在,有了这个配置,一切都正常工作了。注意,指令被注释掉了。 如果激活并停用--它将停止工作。但是,当我从中移除后面的时,它又开始工作了。 有人能解释一下这是怎么回事吗。另外,请清楚详细地解释和之间的区别及其用途。

  • 本文向大家介绍Git 检查文件是否被忽略,包括了Git 检查文件是否被忽略的使用技巧和注意事项,需要的朋友参考一下 示例 该git check-ignore命令报告Git忽略的文件。 您可以在命令行上传递文件名,git check-ignore并将列出被忽略的文件名。例如: 在此,.gitignore中仅定义了* .o文件,因此Readme.md未在.git的输出中列出git check-igno

  • 我正在尝试使用JAXB生成一个sitemap.xml,并且忽略了location属性(我想在根元素上生成属性)。 我想生成一个xml,如下所示: 生成根元素,如下所示: 如果我更新测试以使用显式设置位置,那么它将被填充--但我想了解为什么它不能与注释一起工作。

  • 问题内容: 我正在使用.NET 2.0,Linq毫无疑问。我想检查文件是否存在于目录中, 而无需了解文件扩展名 。 我只需要完成此逻辑即可。 1.使用搜索模式提供的字符串文件名检查目录中的文件是否存在,而忽略文件的扩展名 2.获取文件(如果存在)并进行数据绑定以提供。如果文件不存在,则开始上载文件。 更新: 和确实解决了其中我检查文件的存在的部分。至于FileInfo对象的性能,这些仅是我对数据绑

  • 我试着设置nginx来服务我的node.js应用程序静态文件。问题是,当我试图得到我的文件时,我的状态是403禁止的。 当我尝试下载一个文件从 /root/appJs/public/css/style.css我写http://sitename.com/css/style.css我retive 403禁忌状态。我已经在一些论坛上寻找解决方案,但没有

  • 问题内容: 有一个实体A引用(多对一)实体B,从B到A的反向(映射)引用。也有从A到C的引用,以及从C到A的反向引用。当我发布entityManager.remove(A)然后flush(),“delete”不会发芽!但也没有例外。就像根本没有调用remove()一样。为什么会这样?如果在remove()之前,我们从反向引用B.listOfA和C.listOfA中提取A,则会按预期生成“删除”。