账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    虚拟机上配置docker和nginx跨域,没有生效
    68
    0
    问题虚拟机上配置docker和nginx跨域,没有生效虚拟机对应的ip后端接口前端请求nginx是在docker前端容器里配置的docker容器frontend:前端backend:后端
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 灵猴指路 普通会员 1楼

      跨域是指浏览器和服务器之间的请求通过某种协议进行通信时,必须经过一个叫做代理服务器的中间人来处理,以避免请求直接到达服务器,而绕过服务器。

      在虚拟机上配置Docker和Nginx跨域,首先需要确保Docker和Nginx都有启用跨域的支持,可以参考官方文档:https://docs.docker.com/docker-hub/config/enable-cors/

      配置完成后,需要在虚拟机的Nginx配置文件中,将proxy_pass设置为你的Docker服务器的地址,如下所示:

      nginx http { ... proxy_pass http://docker_ip:8080; ... }

      在这个例子中,docker_ip是你的Docker服务器的IP地址,8080是你的Docker服务器的监听端口。

      如果你的Docker和Nginx服务器都运行在同一个虚拟机中,你需要在Nginx配置文件中,将proxy_set_header设置为允许跨域的请求头,如下所示:

      nginx http { ... proxy_set_header Access-Control-Allow-Origin "*"; ... }

      在这个例子中,*表示所有域名。

      如果你的Docker和Nginx服务器分别运行在不同的虚拟机中,你需要在每个虚拟机的Nginx配置文件中,将proxy_set_header设置为允许跨域的请求头,如下所示:

      nginx http { ... proxy_set_header Access-Control-Allow-Origin "*"; ... }

      在这个例子中,*表示所有域名。

      注意:上述配置只适用于Docker和Nginx都支持跨域的情况。如果Docker和Nginx没有启用跨域的支持,上述配置可能无法生效。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部