使用 nginx 在同一域上提供 React 前端和 php 后端

2023-11-21

我有一个 React 前端和一个 Symfony 后端,我试图在同一个域上提供服务。 React 前端需要提供资产(如果存在),否则需要提供回退服务index.html.

我想在以下情况下提供 php Symfony 应用程序/api位于请求 uri 中。与 React 应用程序类似,我需要将所有请求发送到index.php file.

前端服务正常,但 api 服务不正确。当我点击时,我从 nginx 收到 404/api在浏览器中。

我觉得我很接近,但由于某种原因 nginx 没有正确的$document_root。我正在添加一个标题(X-script)来测试变量是什么,我得到以下结果:

X-script: /usr/share/nginx/html/index.php

这是我的 nginx 配置。

server {
    listen 80 default_server;
    index index.html index.htm;

    access_log /var/log/nginx/my-site.com.log;
    error_log /var/log/nginx/my-site.com-error.log error;

    charset utf-8;

    location /api {
        root /var/www/my-site.com/backend;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    location / {
        root /var/www/my-site.com/frontend;
        try_files $uri /index.html;
    }
    location ~* \.php$ {
        add_header X-script "$document_root$fastcgi_script_name" always;
        try_files $fastcgi_script_name =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }
}

任何帮助将非常感激。


Symfony 4 项目的 Web 根目录必须包含public子文件夹。我没有使用 NGINX,但我认为这是正确的配置:

location /api {
    root /var/www/my-site.com/backend/public;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 nginx 在同一域上提供 React 前端和 php 后端 的相关文章

  • WordPress 3.0 .htaccess 到 nginx 重写规则的转换

    RewriteEngine On RewriteBase BASE uploaded files RewriteRule files index php L RewriteCond REQUEST URI wp content plugin
  • nginx 获取静态文件失败,返回 404

    我现在正在 ubuntu 12 上部署带有 nginx 和 Gunicorn 的 django 应用程序 我配置nginx虚拟主机文件如下 server listen 80 server name mydomain com access l
  • PHP-FPM 和 Nginx:502 错误网关

    配置 Ubuntu 服务器 11 10 64 位 亚马逊AWS Ec2 托管在云上 t1 micro实例 在我写任何其他内容之前 我想声明我已经检查了两者nginx 502 错误网关 https stackoverflow com ques
  • 为什么我需要 Nginx 和 Puma?

    我正在将 Rails 应用程序部署到生产环境中 看起来 Puma 速度很快 可以处理我想要在网络服务器中完成的许多事情 我想知道我是否需要使用 Nginx 如果只使用 Puma 我会错过什么 Nginx 是一个 Web 服务器 puma 是
  • Symfony 2 使用 CSS 设置背景图片

    I want to put a background image for a menu in symfony But I can t figure out how to do it I managed to style a lot of t
  • JasperServer代理CSRF错误

    我在 Ubuntu 14 04 LTS 上使用捆绑的 Tomcat 和 Nginx 代理重新安装了 JasperReports Server 6 2 以便我可以访问https mydomain xyz jasperserver https
  • 类别树的路由

    我正在使用Tree http www gediminasm org article tree nestedset behavior extension for doctrine 2类别树的学说扩展并希望有如下路线 cat subcat1 s
  • 在 Symfony2 中测试 AJAX/XMLHttpRequest 页面功能

    是否可以在 symfony2 测试中模拟 发出 XMLHttpRequest 请求 ajax 使用 Problematic 答案搜索后 正确的语法是 crawler client gt request GET foo array array
  • Symfony2 - 操纵来自内核异常侦听器的请求/响应

    我正在为网站构建一个管理面板 我想更改发生 404 异常时调用的视图but only对于管理应用程序 path admin 我已经做过头了error404 html twig查看 在app Resources TwigBundle view
  • Symfony2将上传的文件分配到内存

    上传的文件大于帖子最大大小在 Symfony 中 上传的文件是在内存中分配的 致命错误 允许的内存大小 150994944 字节已耗尽 已尝试 分配 84627994 字节 Applications MAMP htdocs Symfony
  • 在 Symfony2 dev env 控制器中捕获 swiftmailer 异常

    我不知道为什么我没有在我的控制器中捕获 Swiftmailer 的异常 我做错了什么 或者错过了什么 在控制器中我有 try this gt get mailer gt send email catch Swift TransportExc
  • .net core nginx 托管套接字不允许 http post

    我正在尝试创建一个具有 http 功能 包括 http post 功能 以及 Web 套接字 例如 signalR 的网站 我正在尝试使用 nginx 在 ubuntu 服务器上托管此网站 一般来说 nginx 上的设置是这样的 serve
  • Symfony 权限被拒绝

    谁能帮我解决我收到的以下错误消息 我终于在虚拟机上安装了 Symfony 它似乎工作正常 除了我偶尔收到这样的消息 1 2 ContextErrorException Warning SessionHandler read open var
  • 注销不会在 FOSUserBundle 中正确销毁/清除会话

    我遇到了一些问题 不知道为什么 当我从由 FOSUserBundle 处理的应用程序注销时 因为当前会话永远不会被破坏 甚至不清楚当我重新登录时会导致问题 因为我在会话上存储了一些数据 这就是我的security yml好像 securit
  • Guzzle 获取文件并转发

    我有一个网络服务 可以获取文件并将其返回给用户 基于 Symfony 自从我使用curl 来做到这一点 我刚刚发现 guzzlehttp 看起来很棒 但是 我不知道如何使用 guzzle 执行此操作 而不将下载的文件 xml 或 txt 保
  • WebSocket 连接失败:一个或多个保留位打开:reserved1 = 0、reserved2 = 1、reserved3 = 1

    我正在尝试使用以下命令在我的 Javascript React 应用程序中设置 WebSocketsSocket io https github com socketio socket io 当使用polling从 Socket io 客户
  • Twig 渲染与包含 - 何时何地使用其中之一?

    我读了Twig 渲染与包含 https stackoverflow com questions 9077097 twig render vs include但这不是我要找的 我不确定应该在何时何地使用 render 以及何时应该使用 inc
  • lua找不到模块插座

    我正在尝试使用 lua 从 nginx 访问 redis 值 当我在命令行上执行 lua 文件时 一切正常 我可以读取值并将值写入 redis 但是当我尝试通过访问写入 access by lua 指令的位置来从 nginx 执行相同的文件
  • PSR-4 代码库中条令生成器的解决方法

    在 Windows 机器上使用 Symfony 2 和 Doctrine 我正在尝试 从现有模式生成实体 php app console doctrine mapping import force CoreBundle annotation
  • 无法使用 Symfony2 和 TinyMCE 提交表单

    我有一个带有由 TinyMCE Javascript 库丰富的文本区域的表单 当启用 Javascript 库时 如果我按下提交按钮 页面不会改变 如果我禁用该库 一切正常 人们可能会发现该库没有正确使用 我使用的是来自傻瓜教程 http

随机推荐