0


通过nginx解决跨域问题,并测试

*表示所有域名

    # 测试域名
    server {
        listen 80;
        server_name chat.test.com;
        #配置根目录
        location / {
            proxy_pass http://127.0.0.1:3000;
        }

        location /api/ {

            # 设置允许跨域的域,* 表示允许任何域,也可以设置特定的域
            add_header 'Access-Control-Allow-Origin' '*';
            # 允许的方法
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            # 允许的头信息字段
            add_header 'Access-Control-Allow-Headers' 'User-Agent,Keep-Alive,Content-Type';
            # 缓存时间
            add_header 'Access-Control-Max-Age' 1728000;

            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-NginX-Proxy true;

            proxy_set_header Connection '';
            proxy_http_version 1.1;
            chunked_transfer_encoding off;
            proxy_buffering off;
            proxy_cache off;

            proxy_pass http://127.0.0.1:85;
        }

        location /socket.io/ {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-NginX-Proxy true;
            proxy_pass http://localhost:84;
        }
    }  

单个域名白名单

  # 测试域名
    server {
        listen 80;
        server_name chat.test.com;
        #配置根目录
        location / {
            proxy_pass http://127.0.0.1:3000;
        }

        location /api/ {

            # 设置允许跨域的域,* 表示允许任何域,也可以设置特定的域
            add_header 'Access-Control-Allow-Origin' 'http://localhost:3000';
            # 允许的方法
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            # 允许的头信息字段
            add_header 'Access-Control-Allow-Headers' 'User-Agent,Keep-Alive,Content-Type';
            # 缓存时间
            add_header 'Access-Control-Max-Age' 1728000;

            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-NginX-Proxy true;

            proxy_set_header Connection '';
            proxy_http_version 1.1;
            chunked_transfer_encoding off;
            proxy_buffering off;
            proxy_cache off;

            proxy_pass http://127.0.0.1:85;
        }

        location /socket.io/ {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-NginX-Proxy true;
            proxy_pass http://localhost:84;
        }
    }  

同时配置多个域名:

    # 测试域名
    server {
        listen 80;
        server_name chat.test.com;
        #配置根目录
        location / {
            proxy_pass http://127.0.0.1:3000;
        }

        location /api/ {
            if ($http_origin ~* (https?://(localhost|example2.com)(:[\d]+)?$)) {
                # 设置允许跨域的域,* 表示允许任何域,也可以设置特定的域
                add_header 'Access-Control-Allow-Origin' $http_origin;
                # 允许的方法
                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
                # 允许的头信息字段
                add_header 'Access-Control-Allow-Headers' 'User-Agent,Keep-Alive,Content-Type';
                # 缓存时间
                add_header 'Access-Control-Max-Age' 1728000;
            }

            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-NginX-Proxy true;

            proxy_set_header Connection '';
            proxy_http_version 1.1;
            chunked_transfer_encoding off;
            proxy_buffering off;
            proxy_cache off;

            proxy_pass http://127.0.0.1:85;
        }

        location /socket.io/ {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-NginX-Proxy true;
            proxy_pass http://localhost:84;
        }
    }  

解决跨域前:

解决跨域后:

人工智能学习网站

https://chat.xutongbao.top

标签: nginx 运维

本文转载自: https://blog.csdn.net/xutongbao/article/details/139319239
版权归原作者 徐同保 所有, 如有侵权,请联系我们删除。

“通过nginx解决跨域问题,并测试”的评论:

还没有评论