系统为分布式,主体上分为三层,前端、服务消费端、服务提供端,前端代码记录后端服务器访问地址,由于后端服务不提供外网服务,故用户直接访问出现无法访问情况,但是前端服务器与后端服务器直接是互联互通的,所以需要设置反向代理,主要步骤如下:

1、安装httpserver服务器,目前使用的是Apache httpd服务。

安装命令:yum -y install httpd

2、网络不通:由于用户访问的是前端部分,前端服务器具备外网访问权限,但是当前端访问后台接口服务时,这时候为浏览器直接访问后台消费者端。故网络无法正常互通。

解决方案1:设置Apache服务器反向代理:将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端。(经测试设置反向代理还可避免跨域问题)

方案来自:http://www.cnblogs.com/skyfeng/articles/6628903.html

改造步骤:

1)首先确保Apache有这些模块,在Apache根目录下确认有这些模块,主要包含以下模块:

      mod_proxy.so

    mod_proxy_ajp.so

    mod_proxy_balancer.so

    mod_proxy_connect.so

    mod_proxy_http.so

 打开配置conf/httpd.conf文件,将这些模块的注释去除,如下图所示:

2)修改配置文件,打开文件  conf/httpd.conf ,增加以下内容:

ProxyRequests Off

#代理设置

ProxyPass "/innermanage_proxy/" "http://XXX:8080/"

ProxyPassReverse "/innermanage_proxy/" "http://XXX:8080/"

<proxy  http://XXX:XX>

AllowOverride None

Order Deny,Allow

Allow from all

</proxy>

3)在工程中修改前端代码

将访问后台服务地址改为:"/innermanage_proxy/";

注意:此时的地址应与conf/httpd中保持一致。

在设置完成后,日志中若出现:

Permission denied: AH00957: HTTP: attempt to connect to XXX:8080 (XXX) failed错误提示,则使用以下命令修改:

/usr/sbin/setsebool httpd_can_network_connect 1

/usr/sbin/setsebool -P httpd_can_network_connect 1 (使其永久生效)

解决方案2:使用nginx反向代理服务器,使用代理服务器进行访问后端接口。该方法代码改动量小,但是需要增加出口IP,且安装nginx在无外网的环境下比较困难。

主要步骤:

  1. 安装nginx-1.14.2。
  2. 修改nginx配置文件,如图:

  1. 修改前端访问后台路径配置为:配置文件中server中监听的端口与Ip。

两个方案都测试成功,方案1利用Apache服务器的反向代理,而方案2则使用专门的反向代理服务。由于出口IP数量限制,目前采用方案1。

前后端完全分离出现跨域、无法访问后台解决方案相关推荐

  1. Vue+Flask前后端分离 Vue3跨域配置

    Vue+Flask前后端分离 Vue3跨域配置 前端端口号为8080 后端端口号为5000 问题描述 问题解决 接口路径映射 前端端口号为8080 后端端口号为5000 后端端口API 代码片. @a ...

  2. 解决java前后端分离端口跨域问题

    解决java前后端分离端口跨域问题 参考文章: (1)解决java前后端分离端口跨域问题 (2)https://www.cnblogs.com/mollie-x/p/10449686.html 备忘一 ...

  3. Vue flask前后端分离解决跨域

    Vue flask前后端分离解决跨域 安装axios 在项目目录下输入:npm install axios--save-dev 配置axios 在main.js中引入axios import axio ...

  4. 06-若依前后端分离项目跨域问题解决方式

    什么是跨域 跨域就是前后端分离项目前端无法把session等信息传递给后端服务器.跨域源自浏览器同源策略.同源策略是一种约定,同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互. ...

  5. cors 前后端分离跨域问题_SpringBoot 实现前后端分离的跨域访问(CORS)

    序言:跨域资源共享向来都是热门的需求,使用CORS可以帮助我们快速实现跨域访问,只需在服务端进行授权即可,无需在前端添加额外设置,比传统的JSONP跨域更安全和便捷. 一.基本介绍 简单来说,CORS ...

  6. Spring Boot2.x-13前后端分离的跨域问题解决方法之Nginx

    文章目录 概述 浏览器同源策略 后台搭建 pom.xml interceptor 配置 Controller 启动测试 浏览器和session 后端工程发布到服务器上 问题复现 通过Nginx反向代理 ...

  7. 前后端分离的跨域解决方案

    声明: 在以往的开发中,前后端分离也不是像现在这么热门,所谓的前端工程师也只不过是写好静态页面由Java工程师或者php工程师嵌入到页面中进行开发,这或许加重了这些工程师的工作量,而且在样式调试上由纯 ...

  8. 前后端分离与跨域的解决方案(CORS的原理)

    前后端分离 前后端分离的好处 最大的好处就是前端JS可以做很大部分的数据处理工作,对服务器的压力减小到最小. 后台错误不会直接反映到前台,错误接秒较为友好. 由于后台是很难去探知前台页面的分布情况,而 ...

  9. 跨域详解!前后端分离解决跨域问题

    文章目录 一.为什么会出现跨域问题 二.什么是跨域 三.非同源限制 四.跨域问题的解决方式 Jsonp前后端配合 前端修改 后端修改 CORS 详解响应头 5. SpringBoot解决 [方式一]全 ...

最新文章

  1. JavaScript基础(一) 数据类型
  2. 接口测试 2021 接口测试白皮书 欢迎下载阅读
  3. java 自定义http头_HttpClient自定义HTTP头
  4. poj 1061 青蛙的约会
  5. 求整数的位数及各位数字之和_如何判断正整数能否被7、4、8整除?(20年1月24日)...
  6. php广告任务网源码_THINKPHP仿我爱广告任务网|任务网站源码下载基于PHP+MYSQL的在线广告打码任务网站源码...
  7. 后退返回命令数量_Redis | Redis 有序集合相关命令
  8. linux 去掉 ^M 的方法
  9. ASP.NET Core 沉思录 - 结构化日志
  10. python如何创建excel文件_Python xlrd/xlwt 创建excel文件及常用操作
  11. css实现div内一段文本的两端对齐
  12. python和pycharm怎么安装_Python3和PyCharm安装与环境配置【图文教程】
  13. Ubuntu系统下安装rust
  14. geforce experience出现错误尝试重启PC
  15. android获取ssid,有关WiFi SSID的获取
  16. 阿里巴巴JAVA代码规范一【Block】
  17. Delphi Sender对象的使用
  18. 零基础开发WIFI设备(esp8266)
  19. 运营——线上引流9大方法
  20. matlab如何表示三峰正态分布,正态分布及常用分布的matlab编程实现

热门文章

  1. SAP:查找某个请求号的传输者是谁
  2. 数据数组赋值_嵌入式-数组赋值
  3. win2003能装mysql_Windows2003系统安装mysql小结
  4. java使用druid maven_SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置...
  5. pythongif字符动图,利用Python如何制作好玩的GIF动图详解
  6. mysql表一对多关系,mysql表与表之间的关系(多对多,一对多)
  7. git linux 登陆_Git安装及基础命令
  8. c语言若对函数未加,【单选题】C 语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为A. void B. double C. int D. char...
  9. python爬虫 -- 正则表达式 与 Re模块的介绍
  10. Python中两种文件修改的方式