云轩网络

  • 首页
  • 经验分享
  • 网站与服务器
  • 工具软件
云轩网络
专注于编程技术分享
  1. 首页
  2. 网站与服务器
  3. 正文

配置 Nginx 和 Apache 的CORS跨域访问

2023年9月14日 797点热度 0人点赞 0条评论
配置 Nginx 和 Apache 的CORS跨域访问

很多时候需要跨域访问时需要配置 CORS,本文就来讨论一下 Nginx 和 Apache 的 CORS 跨域访问设置。

跨域访问是可以使用程序实现的,只要在入口文件中加上一句 header("Access-Control-Allow-Origin: *");即可允许跨站访问,当然这里也可以将 * 替换成指定域名,那么就是允许指定域名访问。

本文主要介绍 Nginx 和 Apache 的配置。

Nginx 配置

server
{
# 允许指定域名跨域访问
# 此处不要用 TAB 键代替空格
    set $cors_origin "";
    if ($http_origin ~* "^https://abc.example.com$") {
        set $cors_origin $http_origin;
    }
#允许本地 vue 项目跨域访问
    if ($http_origin ~* "^http://localhost:8080$") {
        set $cors_origin $http_origin;
    }
    add_header Access-Control-Allow-Origin $cors_origin;

    listen 80;
    listen 443 ssl http2;
...
}

PHP

任意跨域请求都支持:

server {
        listen      8080;
        server_name  localhost;
        
        add_header Access-Control-Allow-Origin '*';  
        add_header Access-Control-Allow-Credentials "true";
	add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
	add_header Access-Control-Allow-Headers  'token,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,XRequested-With';
	if ($request_method = 'OPTIONS') {
		return 200;
	}
	
	location /appmains {
            proxy_pass http://appmainsserver;
        }

    }

PHP

指定格式的请求地址:

server {
        listen      8080;
        server_name  localhost;
        #设置变量 $cors_origin
        set $cors_origin "";
	#请求地址匹配格式  用来控制http请求地址 设置跨域白名单
        if ($http_origin ~ "http://(.*).baidu.com$") {
            set $cors_origin $http_origin;              
        }	

        add_header Access-Control-Allow-Origin '$cors_origin';  
        add_header Access-Control-Allow-Credentials "true";
	add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
	add_header Access-Control-Allow-Headers  'token,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,XRequested-With';
	if ($request_method = 'OPTIONS') {
		return 200;
	}
	
	location /appmains {
            proxy_pass http://appmainsserver;
        }

    }

PHP

多个请求地址配置:

server {
        listen      8080;
        server_name  localhost;
	#设置变量 $cors_origin
        set $cors_origin "";
	#请求地址匹配格式  用来控制http请求地址 设置跨域白名单
	if ($http_origin ~ "www.aa.com") {
            set $cors_origin $http_origin;              
        }
	if ($http_origin ~ "www.bb.com") {
            set $cors_origin $http_origin;              
        }		
        add_header Access-Control-Allow-Origin '$cors_origin';  
        add_header Access-Control-Allow-Credentials "true";
	add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
	add_header Access-Control-Allow-Headers  'token,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,XRequested-With';
	if ($request_method = 'OPTIONS') {
		return 200;
	}
	
	location /appmains {
            proxy_pass http://appmainsserver;
        }

    }

PHP

Apache 配置

<VirtualHost *:80>
    ServerName test.c.com
    DocumentRoot "D:/projects/c/www/public"
    <Directory  "D:/projects/c/www/public/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
#添加下面这行允许跨域访问
        Header set Access-Control-Allow-Origin *
    </Directory>
</VirtualHost>

PHP

更多精彩内容:各种技能学习课程、黑科技软件、网站小程序源码、副业小项目、电商课程、推广引流课程等,尽在 天边资源网 。
标签: 暂无
最后更新:2023年11月29日

云轩

码农+互联网创业者。 本站所有文章均为云轩原创,转载请注明出处。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

云轩

码农+互联网创业者。
本站所有文章均为云轩原创,转载请注明出处。

  • AI
  • Github
  • Python
  • Termius
  • WordPress
  • 其他平台
  • 工具软件
  • 操作系统
  • 数据库
  • 电商平台
  • 精品系列课程
  • 素材资料
  • 经验分享
  • 网站与服务器
最近评论
归档
  • 2025 年 5 月
  • 2024 年 12 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 1 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 7 月

天边资源网 慕容技术资料

COPYRIGHT © 2024 云轩网络. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

吉ICP备18000222号-2

吉公网安备22010202001072