如何解决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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。