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

是否可以在没有安装卷的nginx的情况下将请求传递给php fpm

金阳华
2023-03-14

我试图将我的遗留整体迁移到k8s,现在我有nginx和php-fpm(带代码)图像,我希望nginx只提供超文本传输协议,并将其传递给fpm,但是nginx坚持要有文件,我没有try_files指令,但它试图找到根和索引文件。

那么,是否有可能不将源代码装载到nginx中呢?我真的不明白为什么它应该存在,但我找不到任何有效的示例

nginx。形态:

server {
    listen 80;

    index index.php;
    # This dir exist only in php-fpm container
    root /var/www/html/public; 

    location ~* \.php$ {

        client_max_body_size 0;

        include fastcgi_params;
        fastcgi_pass php-fpm:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
    }
}

2018/08/17 16:44:40[错误] 9#9:*46"/var/www/html/Public/index.php"未找到(2:没有这样的文件或目录),客户端:192.xxx.xxx.xxx,服务器:,请求:"GET/HTTP/1.1",主机:"localhost"

192.xxx.xxx.xxx--[17/Aug/2018:16:44:40 0000]"GET/HTTP/1.1"404 571"-"Mozilla/5.0(X11;Linuxx86_64)AppleWebKit/537.36(KHTML, like Gecko)Chrome/65.0.3325.146Safari /537.36"195.xxx.xxx.xxx"

共有1个答案

贺华容
2023-03-14

问题是index指令需要文件索引。php存在,以便在内部将URI/重定向到/索引。php

您可以通过添加一个位置/来避免索引指令,以便在内部将所有内容重定向到/index.php

例如:

location / {
    rewrite ^ /index.php last;
}
location ~* \.php$ {
    root /var/www/html/public; 
    client_max_body_size 0;

    include fastcgi_params;
    fastcgi_pass php-fpm:9000;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT $document_root;
}
 类似资料:
  • 是否可以在没有实体的情况下使用JpaRepository?在这种情况下,将其替换为DTO。 如下示例所示 这种情况有替代方案吗? 注意:DTO已经映射,但我不想创建视图来将此DTO转换为实体。 我已经验证了这个主题,但没有重大进展,请使用无实体的JpaRepository交互样式 我在试这个 接口- 公共接口BffDTOInterface2{ } 我有这个错误

  • 问题内容: 我只是想知道是否可以在不将Outlook安装在服务器上且不使用COM Interop的情况下向人们发送会议请求(我不惜一切代价避免在服务器上使用)。 我们在Windows 2003域中拥有Exchange 2003,并且所有用户都是域用户。我想我可以发送’round iCal / vCal之类的东西,但是我想知道是否存在通过Exchange在不使用Outlook的情况下发送会议请求的适

  • 我想使用并使其直接进入给定的url,而不是从ribbon配置中获取主机。 我知道在Spring,cloud-feign默认与ribbon和eureka一起出现。 根据这个:https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html#spring-cloud-ribbon-without-eure

  • 在Spring Boot的文档中,我只找到了使用Redis会话的例子,不使用Redis也能使用它吗?

  • 我已经从源代码处构建并安装了另一个glibc,并且我想让现有的用C++编写的可执行文件与自定义glibc一起运行,以供实验之用。为了做到这一点,我尝试更改可执行文件的加载程序。首先,在/lib64下创建了一个名为的链接,其路径指向新的加载程序 其次,通过文本编辑器修改了可执行文件中的加载器路径,将“/lib64/ld-linux-x86-64.so.2”更改为“/lib64/ld_linux-x8

  • 我对Java还很陌生,所以这肯定会是一个愚蠢的问题。 这是安全的还是有什么问题?