通过Nginx的Express API请求不起作用

xdnvmnnf  于 2023-08-03  发布在  Nginx
关注(0)|答案(1)|浏览(119)

我有一个全栈应用程序(前端是Vue,后端是Node.js),它在AWS EC2示例上运行。
为了运行前端,我使用npm run build构建Vue应用程序,然后将构建的dist文件夹复制到/var/www/html
对于后端,我使用pm2
继续在后台运行Node.js服务。
我还安装了nginx来服务前端和后端。下面是nginx的配置。

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                root /var/www/html;
                try_files $uri /index.html;
        }

        location /v1 {
                proxy_pass http://localhost:6200/v1;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Host $host;
                proxy_set_header content-type "application/json";
                proxy_cache_bypass $http_upgrade;
                proxy_set_header Connection 'upgrade';
        }
}

字符串
后端的反向代理应该传递给http://localhost:6200/v1。它有v1,它在Node.js后端被前缀使用。

app.use('/v1', apiRouter)


前端和后端工作正常。我可以通过使用pm2 log和nginx日志来实现这一点。
我要做的是直接使用反向代理服务器作为后端。
我的前端有一个这样的API请求。

axios.get('http://localhost/v1/test')


前端请求该API失败。我可以使用像https://mytestdomain.com/v1/test这样的域请求API,但是我需要直接在本地示例上请求API,因为这样会更快,并且可以避免一些问题。
我不知道我做错了什么。我试着像127.0.0.1而不是localhost一样更新URL,也使用了像/v1/ => proxy_pass http://localhost:6200/v1/这样的尾随斜杠,但它们不起作用。


的数据

r6vfmomb

r6vfmomb1#

尝试使用尾随斜杠:

...
location /v1/ { 
  proxy_pass http://localhost:6200/v1/;
...

字符串
评论后更新…
尝试使用以下通用服务器块:

location /v1/ {
    proxy_pass http://localhost:6200/v1/;
    proxy_http_version 1.1;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header x-real-ip $remote_addr;
    proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host  $host;
    proxy_set_header X-Forwarded-Port  $server_port;
    proxy_set_header Referer           $http_referer;
  }

相关问题