要避免在使用Nginx反向代理+Docker设置的公共服务器上从Google OAuth重定向到本地主机,可以使用以下解决方法:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
docker run -d -p 8080:8080 your_image_name
在Google OAuth的配置中,将重定向URL设置为公共服务器的域名或IP地址,比如http://example.com/oauth/callback
。
更新公共服务器的DNS记录,将域名指向该服务器的IP地址。
在Nginx配置文件中添加用于处理Google OAuth回调的位置块。
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /oauth/callback {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
这样,当用户从Google OAuth重定向到http://example.com/oauth/callback
时,Nginx将会将请求转发到本地主机的相应端口上,从而实现了从Google OAuth重定向到本地主机的功能。