快速API后端接收请求但没有响应,Nginx

快速API后端接收请求但没有响应,Nginx

问题描述:

我有一个由nginx服务的前端reactjs。如下所示:快速API后端接收请求但没有响应,Nginx

server { 
    listen 80 default_server; 
    server_name website.* www.website.*; 
    root /home/developer/website/frontend/build; 

    location/{ 
     try_files $uri /index.html; 
    } 

    location /api { 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_pass http://127.0.0.1:4000; 
    } 

} 

此外,我有第二个快速应用程序接收请求在127.0.0.1:4000。前端调用提取到'api/something',快速应用程序接收并处理它,但没有响应,客户端错误504(网关超时)。有任何想法吗?

您缺少上游服务器指令。试试这个

upstream api { 
    server 127.0.0.1:4000; 
} 

# remove www from the url 
server { 
    listen 80; 
    server_name www.website.com; 
    return 301 $scheme://website.com$request_uri; 
} 

server { 
    listen 0.0.0.0:80; 
    server_name website.com website; 
    error_log /var/log/nginx/website.com-error.log error; 
    access_log /var/log/nginx/website.log; 

    # pass the request to the node.js server with the correct headers 
    location /api/ { 
     proxy_pass http://api/; 
     proxy_ignore_headers X-Accel-Expires Expires Cache-Control; 
     proxy_ignore_headers Set-Cookie; 
     proxy_hide_header Set-Cookie; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     proxy_set_header X-NginX-Proxy true; 
    } 
} 
+0

我已经设置了上游指令,并用你提供的那个替换了我的位置API,但是我仍然有相同的结果。我可以使用JWT来影响它吗? – Athomas1

+0

可能是URL中的“www”问题。尝试更新的配置 –

+0

它得到它的工作!谢谢,我一直试图弄清楚这一点。 – Athomas1