后端部署的服务有跨域,可以通过Nginx反向代理解决

  1. nginx配置

将example.com:8888代理到example.com:8088

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       8888;
        server_name  example.com;

        location / {
            add_header 'Access-Control-Allow-Origin' "$http_origin";
            add_header 'Access-Control-Allow-Credentials' "true";

            if ($request_method = "OPTIONS") {
              add_header 'Access-Control-Max-Age' 86400;
              add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE';
              add_header 'Access-Control-Allow-Headers' 'reqid, nid, host, x-real-ip, x-forwarded-ip, event-type, event-id, accept, content-type';
              add_header 'Content-Length' 0;
              add_header 'Content-Type' 'text/plain, charset=utf-8';
              return 204;
            }

            root   /usr/share/nginx/html;
            index  index.html index.htm;
            proxy_pass http://example.com:8088;
        }

   }
}

  1. Dockerfile
FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf

3.启动镜像

docker run -d --name nginx-reverse-8088 -p 8888:8888 nginx-image