# nginx解决本地开发时调用远程AIP跨域问题
问题情境:
一般开发在本地,使用的是 Wampserver64,一般为了方便都是一个项目开一个虚拟主机,然后设置hos[Laravel](https://www.kancloud.cn/dapeng235/thinkphp5_swoole_timer/1.1Laravel.md)t,使用域名重[Laravel](https://www.kancloud.cn/dapeng235/thinkphp5_swoole_timer/1.1Laravel.md)定向,用一个“假域名”来开发调试项目,这样比较方便。
如果调试远程API时,是会有跨域问题的,那么此时可以使用 jsonp,或者设置远程web服务器的Access-Control-Allow-Origin: \*,但是这两种解决方案都是需要你有远程web服务器的掌控权才可以。
今天遇到一个问题,别人说他那边web服务器和接口不好改动。让我自己本地设置一个nginx的方向代理。
我本地是Apache,不过也是可以配置代理的,配置方法见参考文章。
于是一番倒腾,终于成功了。
其实原理就是:使用反向代理(对用户不可见,对服务器可见)。
利用反向代理,我们可以将 url/api,代理到 远程域名上去。
这样请求 url/api?a=1 时,实际上请求的是 远程域名?a=1
简单的说,我们通过这个代理配置欺骗了服务器,让它以为我们一直在相同域名下访问资源(请求API)。
代理配置:
~~~
文件:httpd-vhosts.conf
<VirtualHost *:80>
ServerName tang-h5.com
DocumentRoot d:/wamp64/www/tang-h5
# 设置允许跨域 参考:http://blog.csdn.net/linxiangyao/article/details/6107617
Header add Access-Control-Allow-Origin *
Header add Access-Control-Allow-Headers "Content-Type"
# 解决mod_rewrite时pathinfo url参数中不能带有特殊字符问题 参考:http://www.2cto.com/os/201409/338511.html
AllowEncodedSlashes On
<Directory "d:/wamp64/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /api http://www.xxx.com
</VirtualHost>
~~~
- GitHub-资源收集
- 【GitHub/Gitee】收录总榜单
- 【Office & Markdown & PDF】资源收集
- 【前端】资源收集
- 【开源项目】资源收集
- 【代码备份】资源收集
- 【代码加密】资源收集
- 【好文章推荐】资源收集
- Java大数据实践
- 基础实验操作
- 【一】基础操作实验
- HDFS
- 【二】部署HDFS
- 【三】读写HDFS文件
- YARN
- 【四】部署YARN集群
- MapReduce
- 【五】单词计数
- Hive
- 【十】部署Hive
- 【十一】新建Hive表
- 【十二】Hive分区
- ZooKeeper
- 【二十】部署ZooKeeper
- 【二十一】进程协作
- HBase
- 【二十二】部署HBase
- 【二十三】新建HBase表
- Storm
- 【二十四】部署Storm
- 【二十五】实时WordCountTopology
- Kafka
- 【二十七】Kafka订阅推送示例
- Redis
- 【二十九】Redis部署与简单使用
- 【三十】MapReduce与Spark读写Redis
- MongoDB
- 【三十一】读写MongoDB
- PHP实践
- 环境搭建
- PHP安装
- macOS搭建PHP开发环境
- laravel
- 【Laravel-admin】实践方案
- 技术选型
- 技术选型结果
- PHP开发流程
- Laravel自带异常
- 技术选型问题 & 解决方法
- 修改(Admin)文件夹路径
- 两个用户表合并
- 创建Token,获取接口数据
- CreateFreshApiToken中间件使用
- Generator从表生成文件,不包括迁移文件
- 添加用户的同时生产令牌
- 其它参考文章
- Laravel-admin常见问题
- form(),show()获取对象数据
- Form右上角按钮重写
- form回调中的错误提醒,回调传参
- 【小工具类】实践方案
- 字符串
- 数组
- 无限级分类递归
- 时间
- 正则表达式
- 文件
- 经纬度、时区
- DataEdit快捷操作类库
- 数据库表结构管理
- 【Guzzle】实践方案---工具类
- 【队列---Laravel-Horizon 】实践方案
- 【laravel-snappy】实践方案
- 【开发规范】实践方案
- PHP深入学习
- 缓存在高并发场景下的常见问题
- 一、缓存一致性问题
- 二、缓存并发问题
- 三、缓存穿透问题
- 四、缓存颠簸问题
- 五、缓存的雪崩现象
- 六、缓存无底洞现象
- Laravel源码解析(知识点)
- 闭包、IOC容器服务绑定延迟加载
- 延迟静态绑定基类
- 反射,依赖注入
- __callStatic 魔术方法,Facade 工作原理
- array_reduce,中间件解析
- Eloquent核心
- 线程、进程、协程
- Linux进程、线程、协程
- poll、epoll
- epoll原理
- Liunx线程调度算法
- 红黑树
- 同步/异步、阻塞/非阻塞
- PHP-FPM
- Nginx
- Git-PHPStorm-Composer工具使用
- git常用命令
- .gitignore忽略规则
- PHPStorm第一次使用
- PHPStorm关联gitlab
- 在Docker中使用Xdebug
- PHPStorm中使用Xdebug调试
- PHP Xdebug 远程调试
- Composer修改镜像源
- Swoole
- Go
- 惊群问题
- 线程模型比较
- 并发模型比较
- Lua
- OpenResty
- 数据一致性
- 悲观锁--VS--乐观锁
- 事务--mysql VS redis
- 事务嵌套--Doctrine VS Laravel
- 单体应用中执行顺序问题
- 数据一致性问题描述
- 分布式理论
- 数据一致性---接口幂等性
- 分布式事务---2PC VS 3PC
- 分布式事务---TCC
- 分布式事务---基于消息
- 接口安全性
- Nginx
- 优化常识
- nginx常用优化
- nginx解决本地开发时调用远程AIP跨域问题
- Nginx反向代理实现均衡负载
- 大型网站架构演变
- Keepalived+Nginx 高可用集群(主从模式)
- MySQL
- 关于最重要的参数选项调整建议
- 索引,Explain优化工具
- 事务级别
- sql好的书写习惯
- limit(分页)
- 赶集网Mysql36条军规
- 分库分表技术演进&最佳实践
- MariaDB 和 MySQL 全面对比
- 永远不要在 MySQL 中使用“utf8”
- 看云--推荐的Mysql优化
- 完整、详细的MySQL规范
- 慢查询日志
- pt-query-digest结果分析
- Oracle
- Oracle数据库备份/导出(exp/expd)、导入(imp/impd)
- [Oracle]EXPDP和IMPDP数据泵进行导出导入的方法
- 使用PLSQL进行Oracle数据导入导出
- Redis
- 看云-推荐的redis学习
- Memcache和Redis不同
- 阿里云Redis开发规范
- Centos7
- 虚拟机配置网络
- 硬盘挂载、分区、文件大小
- 防火墙(firewalld、firewalld-cmd、systemctl、iptables)
- 两个机器互相拷贝文件
- 查进程、查端口
- 压缩、解压
- 查看物理CPU个数、CPU内核数、线程数
- apt-get源--阿里
- Docker
- Dockerfile制作常用命令
- registry私有仓库
- PHP_7.2
- Dockerfile
- php.ini
- 使用说明
- Nginx_1.15
- Dockerfile
- nginx.conf
- prod_nginx.conf
- 使用说明
- MySql_5.7
- Dockerfile
- my.cnf
- 使用说明
- redmine_3.4
- Dockerfile
- 使用说明
- gitlab-ce_11.9.6-ce.0
- 使用说明
- Redis_5.0
- Dockerfile
- redis.conf
- 使用说明
- Jenkins
- Dockerfile
- 使用说明
- webssh--python3.7
- Dockerfile
- 使用说明
- 进阶使用
- 高阶使用
- minio
- 使用说明
- aws_cloud9_ide
- 使用说明-aws
- VNC
- 使用说明
- jdk1.8——yum安装
- tomcat9——安装
- guacamole——0.9.13
- libreoffice
- Dockerfile
- 使用说明
- Kubernetes
- kubectl常用命令
- 环境搭建(1.9.6)
- kubernetes1.9.6墙内离线部署
- kubernetes1.9.6单机器部署
- helm安装
- helm常用命令
- Laradock
- Swoole
- 环境的搭建
- swoole的简单实例
- 服务端的cli方式运行
- 客户端的运行方式
- 定时任务的入门
- 删除定时任务
- 初始化定时任务
- 日志管理
- 具体任务的异常捕获
- 手动重启shell脚本
- Elasticsearch
- Elasticsearch检索实践
- 读后感
- 【读书】登天的感觉——岳晓东
- 【读书】为何家会伤人——武志红
- 【读书】思考与致富——拿破仑-希尔
- 【感受】做事讲方法
- 【感受】未来畅想
- 【素材】智力问答
- 【百家】曾国藩家训
- 【百家】正说和珅
- 【感受】谈判小技巧
- 【读书】股票作手回忆录——利弗莫尔
- 【感受】最幸福的人——工匠
- 【收藏】土味情话大合集
- 【读书】解忧杂货店——东野圭吾
- 【读书】把时间当作朋友——李笑来
- 【感受】舆论和八卦
- 【读书】老人与海——海明威
- 【读书】必然——凯文凯利
- 【经典】逍遥游——庄周