Nginx跨域配置

article/2025/9/19 10:32:22

随着越来越多的项目走向了前后端分离,前端服务,需要访问到不同的后端地址,经常遇到跨域问题。本文主要介绍使用Nginx解决跨域问题。

1.什么是跨域

由于浏览器的同源策略,用来限制从一个源加载的文档或脚本与来自另一个源的资源进行交互。那怎样判断是否是同源呢?如果协议,端口(如果指定了)和主机对于两个页面是相同的,则两个页面具有相同的源,也就是同源。也就是说,要同时满足以下3个条件,才能叫同源:

  • 协议相同
  • 端口相同
  • 主机相同

2.常见跨域情况

  • 网络协议不同,如http协议访问https协议 ;
  • 端口不同,如80端口访问8080端口 ;
  • 域名不同,如www.test1.com访问www.test2.com ;
  • 子域名不同,如abc.test1.com访问def.test1.com ;

3.跨域问题实例

这里通过子域名不同方式,设计一个跨域访问的示例
在这里插入图片描述

3.1环境准备

  • 一台服务器(搭建好Nginx环境);
  • 二级域名2个
    • test1.xqiangme.top
    • test2.xqiangme.top

3.2新建2个index.html

文件1, 示例目录:/home/nginx/static_html/index_test1.html

<html>
<head><title>test1 跨域测试</title>
</head>
<body style="padding: 20px;">
<br/>
<script type='text/javascript'> var xmlhttp = new XMLHttpRequest()xmlhttp.open("GET", "http://test2.xqiangme.top/index.html", true);xmlhttp.send();
</script>
<p>hello world ...... test1 子域名index.html </p>
</body>
</html>

文件2, 示例目录:/home/nginx/static_html/index_test2.html

<html>
<head><title>test2跨域测试</title>
</head>
<script type='text/javascript'> var xmlhttp = new XMLHttpRequest()xmlhttp.open("GET", "http://test1.xqiangme.top/index.html", true);xmlhttp.send();
</script>
<body style="padding: 20px;">
<br/>
<p>hello world ...... test2 子域名index.html </p>
</body>
</html>

3.3Nginx配置

配置目录示例:/home/nginx/conf/nginx_test1_and_test2.conf

user root;
events {worker_connections  1024;
}http {charset utf-8;server {listen 80;                         server_name test1.xqiangme.top;  location /index.html {alias /home/nginx/static_html/index_test1.html;}}server {listen 80;                         server_name test2.xqiangme.top;  location /index.html {alias /home/nginx/static_html/index_test2.html;}}
}

3.4启动Nginx

 # 切换到安装目录下
cd /usr/local/nginx/sbin./nginx -c /home/nginx/conf/nginx_test1_and_test2.conf

若环境变量已经配置好,可直接使用./nginx 无需切换到安装目录下启动

3.5访问测试

test1子域名

在这里插入图片描述
test2子域名示例
在这里插入图片描述

4.解决跨域问题

一般Nginx解决跨域问题有2种方式,一般用第一种,接下来也是主讲第一种。

  • 通过配置 header方式解决跨域 ;
  • 通过反向代理 ;


修改nginx server 配置,添加如下内容

#允许跨域请求的域,* 代表所有
add_header 'Access-Control-Allow-Origin' *;
#允许请求的header
add_header 'Access-Control-Allow-Headers' *;
#允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
#允许请求的方法,比如 GET,POST,PUT,DELETE
add_header 'Access-Control-Allow-Methods' *;

添加完成以上配置,重启Nginx就会发现,可以正常访问了


PS :若考虑到安全性,也可以指定访问来源请求的域,示例:

add_header 'Access-Control-Allow-Origin' 'http://test1.xqiangme.top';

在这里插入图片描述

5.附录

5.1示例中Nginx完整配置

user root;
events {worker_connections  1024;
}http {charset utf-8;server {listen 80;                         server_name test1.xqiangme.top;  #允许跨域请求的域,* 代表所有add_header 'Access-Control-Allow-Origin' *;#允许带上cookie请求add_header 'Access-Control-Allow-Credentials' 'true';#允许请求的方法,比如 GET/POST/PUT/DELETEadd_header 'Access-Control-Allow-Methods' *;#允许请求的headeradd_header 'Access-Control-Allow-Headers' *;location /index.html {alias /home/nginx/static_html/index_test1.html;}}server {listen 80;                         server_name test2.xqiangme.top;  #允许跨域请求的域,* 代表所有add_header 'Access-Control-Allow-Origin' *;#允许带上cookie请求add_header 'Access-Control-Allow-Credentials' 'true';#允许请求的方法,比如 GET/POST/PUT/DELETEadd_header 'Access-Control-Allow-Methods' *;#允许请求的headeradd_header 'Access-Control-Allow-Headers' *;location /index.html {alias /home/nginx/static_html/index_test2.html;}}
}

关注程序员小强公众号更多编程趣事,知识心得与您分享
在这里插入图片描述


http://chatgpt.dhexx.cn/article/5l41Sdr1.shtml

相关文章

flyai中的dataset对象

Help on Dataset in module flyai.dataset object:class Dataset(builtins.object) | Methods defined here: | | __init__(self, epochs5, batch32, val_batch32) | :param epochs: 训练的轮次&#xff0c;最大不超过100 | :param batch: 训练的批次大小&#xff…

FlyAI资讯:Uber正式开源分布式机器学习平台:Fiber

摘要&#xff1a;在过去的几年中&#xff0c;计算机不断增强的处理能力推动了机器学习的进步。算法越来越多地利用并行性&#xff0c;并依赖分布式训练来处理大量数据。然而&#xff0c;随之而来的是增加数据和训练的需求&#xff0c;这对管理和利用大规模计算资源的软件提出了…

FlyAI小课堂:Python机器学习笔记:Logistic Regression

Logistic回归公式推导和代码实现 1&#xff0c;引言 logistic回归是机器学习中最常用最经典的分类方法之一&#xff0c;有人称之为逻辑回归或者逻辑斯蒂回归。虽然他称为回归模型&#xff0c;但是却处理的是分类问题&#xff0c;这主要是因为它的本质是一个线性模型加上一个映…

FlyAI竞赛:图片颜值打分趣味赛

人工智能学习离不开实践的验证&#xff0c;推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛&#xff0c;以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例&#xff0c;支持算法能力变现以及快速的…

FlyAI小课堂:Tensorflow-分布式训练

人工智能学习离不开实践的验证&#xff0c;推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛&#xff0c;以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例&#xff0c;支持算法能力变现以及快速的…

FlyAI小课堂:【文本分类-中文】textRNN

摘要: 随着深度学习的快速发展&#xff0c;人们创建了一整套神经网络结构来解决各种各样的任务和问题。在英文分类基础上&#xff0c;中文文本分类的处理也同样重要... 人工智能学习离不开实践的验证&#xff0c;推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛&#x…

FlyAI小课堂:【文本分类-中文】textCNN

摘要: 随着深度学习的快速发展&#xff0c;人们创建了一整套神经网络结构来解决各种各样的任务和问题。在英文分类基础上&#xff0c;中文文本分类的处理也同样重要... 人工智能学习离不开实践的验证&#xff0c;推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛&#x…

FlyAI人工智能社区参赛指南—用户体验版

Fly-AI竞赛服务平台 flyai.com 在开始学习之前推荐大家可以多在 FlyAI竞赛服务平台多参加训练和竞赛&#xff0c;以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例&#xff0c;支持算法能力变现以…

FlyAI资讯:GPT-3的威力,助力AI领域

摘要&#xff1a;大概一个月之前&#xff0c;史上最巨无霸NLP模型GPT-3问世。当时它向世界展示的能力是&#xff0c;“不仅会写短文&#xff0c;而且写出来的作文挺逼真的&#xff0c;几乎可以骗过人类&#xff0c;可以说几乎通过了图灵测试。”可能是因为它的前一代模型GPT-2也…

FlyAI赛题预告:时间序列初学者指南

近期&#xff0c;FlyAI服务竞赛平台将上线时间序列相关赛题&#xff0c;看到此文的童鞋们可以多多关注下&#xff1b;推荐大家可以多在FlyAI竞赛服务平台多参加训练和竞赛&#xff0c;以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。…

FlyAI资讯:人工智能的前世今生

摘要: 现代电子产品和设备在诸如通信 、娱乐 、安全和医疗保健等许多方面改善了我们的生活质量 &#xff0c;这主要是因为现代微电子技术的发展极大地改变了人们的日常工作和互动方式。在过去几十年中&#xff0c;摩尔定律一直是通过不断缩小芯 … 人工智能学习离不开实践的验…

FlyAI小课堂:Tensorflow基操

人工智能学习离不开实践的验证&#xff0c;推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛&#xff0c;以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例&#xff0c;支持算法能力变现以及快速的…

FlyAI资讯:台积电布局新存储技术

摘要&#xff1a;近年来&#xff0c;在人工智能&#xff08;AI&#xff09;、5G等推动下&#xff0c;以MRAM&#xff08;磁阻式随机存取存储器&#xff09;、铁电随机存取存储器 (FRAM)、相变随机存取存储器&#xff08;PRAM&#xff09;&#xff0c;以及可变电阻式随机存取存储…

强烈推荐!FlyAI机器学习数据竞赛启动,丰厚奖金等你来拿

FlyAI 数据竞赛平台 FlyAI 是隶属于北京智能工场科技有限公司旗下&#xff0c;为AI开发者 &#xff08;深度学习&#xff09;提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例&#xff0c;样例所使用开发框架涉及TensorFlow、Keras、PyTorch. 支持…

FlyAI竞赛服务平台赛题上新——手写英文字体识别(名企内推)

人工智能学习离不开实践的验证&#xff0c;推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛&#xff0c;以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例&#xff0c;支持算法能力变现以及快速的…

万元大奖,FlyAI算法新赛事,心理卡牌目标检测

本文转自竞赛社区FlyAI最新上线算法赛。 “心理卡牌目标检测算法赛”由测测星座与趣鸭心理联合发起的线上竞赛项目。2020年新冠肺炎疫情打破了我们平静的生活&#xff0c;影响了我们的身体健康和精神健康。在国家发布的《“健康中国2030”规划纲要》中也提到&#xff0c;要加大…

百万现金奖励,FlyAI实时竞赛等你来战

点击我爱计算机视觉标星&#xff0c;更快获取CVML新技术 这是一种新的算法竞赛方式&#xff01; FlyAI是一个为算法工程师提供&#xff08;深度学习&#xff09;项目竞赛并支持GPU离线训练的网站。目前每周更新两个以上现金奖励的竞赛项目。项目涉及领域包括图像识别/分类/检测…

使用FlyAI进行科学数据竞赛

转自百度经验 https://jingyan.baidu.com/article/acf728fd9c3e6af8e510a392.html 工具/原料 python3 Windows命令行&#xff08;mac/Linux都可运行&#xff0c;此经验以Windows为例&#xff09; 百度经验:jingyan.baidu.com 注册账号 1 使用浏览器打开 www.flyai.com,并点击注…

FlyAI资讯:收藏!深度学习必读10篇经典算法论文总结!

前言 目录 前言 1998年&#xff1a;LeNet 2012年&#xff1a;AlexNet 2014年&#xff1a;VGG 2014年&#xff1a;GoogLeNet 2015年&#xff1a;Batch Normalization 2015年&#xff1a;ResNet 2016年&#xff1a;Xception 2017年&#xff1a;MobileNet 2017年&#…

FlyAi实战之MNIST手写数字识别练习赛(准确率99.55%)

欢迎关注WX公众号&#xff1a;【程序员管小亮】 文章目录 欢迎关注WX公众号&#xff1a;【程序员管小亮】一、介绍二、代码实现1_数据加载2_归一化3_定义网络结构4_设置优化器和退火函数5_数据增强6_拟合数据7_训练轮数和批大小8_准确率和损失 三、总结 一、介绍 最近发现了一…