Nginx反向代理上的连接被拒绝



我有一台服务器机器,在那里我使用Nginx配置了一个反向代理。它被配置为缓存从CDN获得的文件并为其提供服务器。在服务器所属的网络中配置了防火墙和前向代理服务器。当我尝试连接到服务器机器时,它返回502。当我查看nginx错误日志时,它说它无法连接到上游(即CDN(。我希望nginx通过转发代理(已经在网络中配置(将它得到的请求转发到CDN。我需要做什么改变?

这是我的nginx.conf

worker_processes 1;
daemon on;
error_log /var/log/error.log;
pid /var/run/nginx.pid;
events
{
worker_connections 1024;
}
http
{
proxy_cache_path /path/to/the/cache/folder/1 levels=1:2 keys_zone=cache_common:512m max_size=128g inactive=7d use_temp_path=off;
proxy_cache_path /path/to/the/cache/folder/2 levels=1 keys_zone=cache_version:1m max_size=128M inactive=60s use_temp_path=off;
server
{
listen 8000 default;
access_log /var/log/access.log;
location /url1/ {
proxy_cache cache_version;
proxy_pass http://this-is-my-cdn-url.com; 
}
location /
{
proxy_cache cache_common;
proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
proxy_cache_valid 404 1d;
proxy_pass http://this-is-my-cdn-url.com;
}
}
}

我已经找到了问题的解决方案。我想设置的是一个nginx反向代理,这样:

  • 它将接收来自客户端的请求
  • 用我想访问的另一个CDN替换该URL中的主机部分
  • 通过转发代理将该请求转发到CDN

我必须通过nginx服务器访问CDN,因为我想缓存所提供的内容,从而减少CDN的点击次数。

我得到的解决方案是:

myconfig.conf

server {
listen 8000;
server_name my-domain-name.com;
location / {
rewrite ^(.*)$ "://the-cdn-domain-name.com$1";
rewrite ^(.*)$ "https$1" break;
proxy_pass http://X.X.X.X:1234; # this is my forward proxy IP
}
}

这是您必须包含在conf.d目录中的内容。我已经跳过了nginx.conf中默认情况下必须提供的内容

最新更新