加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

外部托管的Nginx代理图像/ javascript

发布时间:2020-12-13 21:08:20 所属栏目:Nginx 来源:网络整理
导读:我正在尝试使用nginx代理由外部方托管的javascript和图像 我在https上运行我的网站,他们只通过http提供文件,我已经与他们联系过这个问题,但是当他们解决这个问题时无法给出时间表. 所以,我没有尝试在我的nginx配置中使用proxy_pass这些文件,我有以下位置块 l

我正在尝试使用nginx代理由外部方托管的javascript和图像

我在https上运行我的网站,他们只通过http提供文件,我已经与他们联系过这个问题,但是当他们解决这个问题时无法给出时间表.

所以,我没有尝试在我的nginx配置中使用proxy_pass这些文件,我有以下位置块

location /blogcounter/image {
        #rewrite ^/blogcounter(.*) /$1 break;
        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_pass http://widget.external-domain.tld/$uri$is_args?$args;
}
location /blogcounter.js {
        #rewrite ^/blogcounter(.*) /$1 break;
        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_pass http://widget.external-domain.tld/$uri$is_args?$args;
}

我想要在我的页面上的小部件是.

所以我希望客户端请求通过我的服务器,该服务器具有https,这使我的服务器从外部服务器请求文件并将其服务器返回给客户端.目前这还没有工作,是在访问日志中看到请求,该请求还显示状态代码200但是图像或javascript文件都没有被发回.任何人都可以帮我解决我做错的事吗?

最佳答案
映射客户端URL,如:

https://my-domain.tld/blogcounter/image?image=red_s&blog_id=random_id

到上游URL,如:

http://widget.external-domain.tld/blogcounter/image?image=red_s&blog_id=random_??id

不需要魔术URI转换,因此只需要最简单的proxy_pass表单:

location /blogcounter {
    proxy_pass http://widget.external-domain.tld;
    proxy_set_header ...;
    ...
}

请注意,没有尾随/因为请求URI未经修改地向上游传递.

我已将位置设置为/ blogcounter,因为我不知道您的服务器托管的其他位置(如果有).

您没有提到blogcounter.js的上游URL.上面的位置块也将映射:

https://my-domain.tld/blogcounter.js

到上游网址:

http://widget.external-domain.tld/blogcounter.js

有关详情,请参见this document.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读