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

nginx配置问题(root/alias)

凌意
2023-03-14
server {

    server_name mediaserver.localdomain;
    listen 80;
    index index.php index.htm index.html;
    root /var/www/html/Organizr;
    location = / {
        root /var/www/html/Organizr;
    }
    location /homelab {
        alias /opt/homelab/;
    }
    location ~ /\.git {

        deny all;
    }
    location ~ \.php$ {

    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

}

包含片段/fastcgi-php.com;=

# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;

# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;

# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

fastcgi_index index.php;
include fastcgi.conf;

这是我的配置,我一辈子都不能让它工作。

我的期望是有超文本传输协议://mediaserver.localdomain/去"/var/www/html/组织者/index.php"

当我转到http://mediaserver时。localdomain/homelab/it提取“/opt/homelab/index.php”

但只有超文本传输协议://mediaserver.localdomain/不适用于 /homelab/

我已经用尽了我的谷歌管理技术和nginx留档页面的别名和根定义。

提前谢谢。

仅供参考(我故意在链接中添加空格,以消除自动链接)

共有1个答案

陆弘光
2023-03-14

您需要从两个根执行PHP文件,这意味着您需要两个不同的位置与您的fastcgi_pass指令。

server {
    server_name mediaserver.localdomain;
    listen 80;
    index index.php index.htm index.html;

    root /var/www/html/Organizr;

    location / {
        try_files $uri $uri/ =404;
    }
    location ~ /\.git {
        deny all;
    }
    location ~ \.php$ {
        try_files $uri =404;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ^~ /homelab {
        root /opt;
        try_files $uri $uri/ =404;

        location ~ \.php$ {
            try_files $uri =404;
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
    }
}

location/块从外部块继承,不需要重复。

第一个location~ \。php$块处理任何。phpURI,它不以/homelab开头。

location^~/homelab块是一个前缀位置,优先于同一级别的其他正则表达式位置。有关详细信息,请参阅本文档。

嵌套的位置~\. php$块负责处理/homelab下面的. phpURI,这些URI位于/pt/homelab中。

我添加了一些try\u文件指令,它们也解决了将不受控制的请求传递给PHP的问题。

 类似资料:
  • 到目前为止,我在Ubuntu18.04远程服务器上使用uwsgi和nginx运行了一个Flask应用程序。这个应用程序是由我的网站监听端口5002的子域服务的。我想添加一个新的Flask应用程序来监听端口5003,但我一定是做了一些错误的配置,然后一切都失控了。现在这两个应用程序都不起作用了。 app1的服务器块 null

  • wordpress搭建的博客从宝塔上换到centos7系统中,nginx配置https,访问域名在开启clash网络代理情况下可以正常访问,但是关闭clash就访问失败。使用PHP8.2、MySql5.7、Nginx1.25 nginx配置 开启防火墙放开80、22、443端口,后关闭防火墙还是不行,然后查看nginx和PHP-fpm的端口,还更换PHP—fpm版本,更该wordpress权限,更

  • 我们在部署之后, 会发现Vuejs会遇到js 的经典问题: 远程服务器地址不对,或者跨域问题. 前提: 我们的真正后台接口是: http://siwei.me/interface/blogs/all 如下: 域名404 问题 这个问题看起来如下: 这个问题是由于源代码中,访问 /interface/blogs/all 这个接口引起的: this.$http.get('/api/interface/

  • 我已经搜索了几天,通过试错尝试了各种配置,但我没有能够纠正我的配置。我的专长是数据库设计和开发,所以服务器配置一直很有挑战性。 我在一个LEMP堆栈上,我安装了Wave框架。Wave是一个PHP微框架,它松散地遵循模型-视图-控件体系结构和工厂方法设计模式http://www.waveframework.com/Wave/doc/index.htm构建 请帮助,我的配置粘贴在下面。 nginx.c

  • 如果配置是 访问 http://localhost:8002/about/ 会返回 403 禁止 访问 http://localhost:8002/about/ 会返回 html 目录下的 index.html 文件,这是符合预期的 访问 http://localhost:8002/about/ 会不断进行重定向生成 http://localhost:8002/about/index.html/i

  • 本文向大家介绍详解Nginx静态服务配置(root和alias指令),包括了详解Nginx静态服务配置(root和alias指令)的使用技巧和注意事项,需要的朋友参考一下 静态文件 Nginx以其高性能著称,常用与做前端反向代理服务器。同时nginx也是一个高性能的静态文件服务器。通常都会把应用的静态文件使用nginx处理。 配置nginx的静态文件有两个指令,一个 root 和一个 alias。