为了解决一些CORS问题,我想配置我现有的nginx服务器来代理请求。例如,如果我的服务器是https://proxy.example.com
,我希望能够使用像https://proxy.example.com/google.com
这样的URL来获取页面和/或内容。
我遇到的问题是Nginx似乎给了我301
重定向,而不是真正代理请求。这不会做,因为它受到与我开始时完全相同的CORS限制。我需要内容通过我的代理,而不是重定向客户端。
这是我目前正在使用的配置。我的Nginx知识非常有限,所以除了我眼前的问题之外,肯定有一些奇怪/不正确的东西:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name proxy.example.com;
# Strips leading / from request path
location ~ ^/(.*)$ {
# Needs to come first
add_header Access-Control-Allow-Origin *;
resolver 8.8.8.8;
proxy_pass http://$1$is_args$args;
}
}
我已经做了相当多的阅读,有各种各样的建议选项和标题(proxy_redirect
,Host
,X-Forwarded-For
等),但它们似乎都没有任何积极的影响(一对夫妇似乎导致Cloudflare的问题,当代理网站使用它时)。
1条答案
按热度按时间bwntbbo31#
所以问题是传入的请求是
https
,但proxy_pass
只是http
。我这样做是因为我遇到了SSL错误,并认为这是一个快速解决方案,但事实证明有一个选项可以解决这个问题:一旦我添加了这个,我就可以改变
proxy_pass
的值来使用https
,然后客户端就不再被重定向了。完整配置: