这是我第一次尝试部署应用程序,并且我有一个运行Ubuntu 16.04的VPS服务器来部署我的React应用程序。我正在使用NGINX进行此操作,以下是我对可用站点的配置:>
server {
listen 80;
root </build directory>;
server_name <my server's IP>;
server_name <myserverdomain.com>;
index index.html;
location / {
try_files $uri /index.html =404;
}
location /backend {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:5000/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
前端与此兼容,但是我似乎无法使Express后端正常工作。最初,我的前端在localhost:5000(后端正在监听的位置)上使用fetch
命令调用后端。我刚刚进行了谷歌搜索,因此我决定给它一个/ backend路径来访问它,因此现在它在fetch
上调用<myserverdomain.com/backend/apicall>
。
但是,尽管我的后端在VPS服务器内部的localhost上运行,但api调用不会重定向到我的VPS服务器的localhost。相反,当从本地计算机上的VPS服务器外部访问webapp时,它会尝试在本地计算机上查找localhost:5000。因此,仅当我的本地计算机正在运行快速后端时,对后端的API调用才有效。但是,这是不希望的,因为其他用户将无法访问它。
对于实现此功能的正确方法,我确实感到困惑/如何正确“托管”我的快速后端服务器?