【发布时间】:2018-04-27 20:11:50
【问题描述】:
我正在部署一个使用create-react-app 创建的 React 前端和一个 Rails API 作为后端的应用程序。我对配置 Web 服务器和代理了解不多,所以我不确定如何让它在生产中工作。我正在将应用程序部署到 Amazon EC2 实例上的 Ubuntu。 Nginx 是网络服务器。我需要对其进行配置,以便 Nginx 提供来自 client/build 目录的静态文件,然后向 /api 发出的任何请求转到运行在端口 3001 上的 Rails 应用程序。现在 Nginx 正在为 index.html 提供服务,而 Javascript 是运行正常,但对/api 的请求没有到达正确的位置。关于如何配置 Nginx 来做到这一点的任何想法?这是我的/etc/nginx/sites-enabled/default 文件:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name mydomain.com;
passenger_enabled on;
rails_env staging;
root /home/ubuntu/app-name/current/client/build;
index index.html;
location /api {
proxy_pass http://127.0.0.1:3001;
}
}
我错过了什么?如何让 Rails 应用程序在端口 3001 上运行,并将所有对 /api 的请求都发送到那里?我是否需要在此配置中使用单独的 server 块?
【问题讨论】:
标签: ruby-on-rails reactjs nginx deployment http-proxy