反向代理时如何阻止Nginx将端口添加到外部URL

时间:2018-12-11 21:14:45

标签: ssl nginx cdn cloudinary

Nginx 在投放 Cloudinary 网址时遇到问题。

我已经建立了一个反向代理,该代理基本上将我的本地主机应用程序服务器公开,并强制使用https。

我正在使用Cloudinary作为图像服务。

问题是由于某种原因,Nginx向我的Cloudinary网址的主机部分添加了:80 ,并导致404错误。

例如,我所有的网址都变为 https://res.cloudinary.com:80/ ...

这是我的反向代理配置:

server {
listen 80;
server_name test.example.com;
return 301 https://$host$request_uri;
}

server {

    listen   443;
    server_name test.example.com;

    ssl on;
    ssl_certificate /etc/nginx/ssl/*.example.com/server.crt;
    ssl_certificate_key /etc/nginx/ssl/*.example.com/server.key;

    location / {
        proxy_pass         http://localhost:8080;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

我在做什么错了?

2 个答案:

答案 0 :(得分:2)

查看您的nginx配置,它将把/下的所有请求代理到http://localhost:8080。从上面的配置代码片段中我看不到它会被代理到https://res.cloudinary.com:80/

如果我不得不猜测,是在端口8080上的本地主机上运行的应用程序/服务对此负责。你检查是不是这种情况?

答案 1 :(得分:0)

问题出在我的React JS代码中,与Nginx无关。