前端和后端有两个不同的端口? (使用Strapi)-配置nginx

时间:2019-06-11 07:45:36

标签: node.js nginx deployment strapi

我想这是一个非常基本的问题,但这仍然使我感到困惑。在开发阶段,当使用“ npm start”启动反应时,我使用的是端口3000。此外,当启动Stradi(后端cms)时,它会自动使用端口1337。

这实际上意味着我的应用程序正在使用两个不同的端口吗?

我之所以这样问,是因为我想配置nginx,以便可以在同一台服务器上运行两个不同的bandi应用程序(附加到两个不同的react应用程序)。

我希望nginx从特定位置重定向到第二个网站。我可以在网站可用文件中写东西:

server {
    listen 80;
    location / {
      proxy_pass "http://mysite:3000";
    }

    location /mysecondsite {
      rewrite ^/mysecondsite(.*) $1 break;
      proxy pass "http://mysite:??????? WHAT SHOULD I WRITE HERE?"
    }
}

但是我应该将输入第二站点URL的用户重定向到哪个端口?

在trapi文档中,它们指向一个名为server.json的文件,您可以在其中更改trapi使用的端口,并创建一个代理(我不明白为什么您只想从中重定向,为什么会这样做nginx?),例如:

{
  "host": "localhost",
  "port": 1337,
  "proxy": {
    "enabled": true,
    "ssl": true,
    "host": "example.com",
    "port": 8443
  },
  "autoReload": {
    "enabled": true
  },
  "cron": {
    "enabled": true
  }
}

但是更改第二个项目的端口将仅影响stradi后端,不是吗? 如何为第二个项目的前端创建另一个端口?

很抱歉,如果我误解了这里的条款 预先感谢

1 个答案:

答案 0 :(得分:0)

更新2019-06-29:(一个应用程序-前端和皮带)

我之所以回来,是因为我发现有人解决了您的案件,并使用stradi部署了一个应用程序。

  

How to integrate Strapi API and Admin Panel with another node app (that consumes Strapi API)?

     

因此,您将必须构建自己的网站应用程序。并将构建内容推送到Strapi应用程序的./public文件夹中。

enter image description here

  

然后,在您的api/.../config/routes.json文件中,您必须在每个路由的prefix键和所有API中添加一个选项config

{
   "routes": [
     {
       "method": "POST",
       "path": "/restaurants",
       "handler": "Restaurant.create",
       "config": {
         "policies": [],
         "prefix": "/api"
       }
     }
   ]
 }
     
      
  • 因此,最后您将在/admin上拥有管理员
  •   
  • /api为前缀的API端点
  •   
  • 还有您在/上的网站/资产
  •   

并且您不必为第二个应用程序配置nginx,因为只有一个。


2019-06-11:(两个单独的申请)

您要在端口3000上拥有主React应用程序,并在1337上拥有用于后端API的CMS,供主React应用程序使用?您可以像下面这样使用配置。

nginx.conf

server {
  listen 80;
  server_name mywebsite.pl www.mywebsite.pl;

  location / {
    proxy_pass http://mysite:3000/;
  }

  location /admin/
  {
    proxy_pass http://mysite:1337/admin/;
  }

  location /strapi/
  {
    proxy_pass http://mysite:1337/;
  }
}

server.json

{
  "host": "localhost",
  "port": 1337,
  "proxy": {
     "enabled": false
  },
  "autoReload": {
    "enabled": true
  },
  "cron": {
    "enabled": false
  },
  "admin": {
    "path": "/admin",
    "build": {
      "host": "/admin",
      "backend": "http://mywebsite/strapi",
      "plugins": {
        "source": "backend",
        "folder": "/strapi"
      }
    }
  }
}

记住:

  1.   

    ⚠️如果您更改了访问管理的路径,请执行步骤#2 is required   ->您必须重设管理员以安装依赖关系并构建项目

  2. 将生产环境NODE_ENV标志更改为productionRun the server with the production settings.

资源:

  1. Deploy the administration panel on another server then API
  2. Deployment