如何代理从url路径传递到不同dns服务器上的不同子域



假设我的主域在一台服务器上,其中一个子域到另一台服务器。

这两个地址都使用Cloudflare DNS到不同的ip地址,因此:

CCD_ 1=>ip1

CCD_ 3=>ip2

现在我想在不更改url的情况下,将example.com上的某个路径代理传递给new.example.com,所以:

example.com/something应显示new.example.com/somethingElse的内容

这些是我的nginx配置文件,问题是如果我将example.com/something指向google.com,甚至指向我托管的用于测试的example.com0服务器,一切都很好,但当我将其指向new.example.com/something时,它会给我502个错误,所以我猜测我的new.example.com配置有问题。

example.com配置:

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl     on;
ssl_certificate         /etc/letsencrypt/live/cert.pem;
ssl_certificate_key     /etc/letsencrypt/live/key.pem;
server_name example.com www.example.com;
resolver 8.8.8.8;
location = /something {
proxy_set_header X-Forwarded-Host  new.example.com;
proxy_set_header Host              new.example.com;
proxy_pass https://new.example.com/somethingElse;
}
}

new.example.com配置:

server {
listen 443;
server_name www.new.example.com new.example.com;
ssl_certificate         /etc/ssl/private/cert.pem;
ssl_certificate_key     /etc/ssl/private/key.pem;
location / {
proxy_pass         http://container-name:80;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

请测试服务器之间的连接。登录example.com服务器并向new.example.com服务发送CURL请求。example.com服务器似乎无法访问新的example.com服务器。请查看nginx服务日志。

实现您需求的另一个选择是cloudflare工人服务。

最新更新