日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前后端完全分离出现跨域、无法访问后台解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? 系統為分布式,主體上分為三層,前端、服務消費端、服務提供端,前端代碼記錄后端服務器訪問地址,由于后端服務不提供外網服務,故用戶直接訪問出現無法訪問情況,但是前端服務器與后端服務器直接是互聯互通的,所以需要設置反向代理,主要步驟如下:

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在無外網的環境下比較困難。

主要步驟:

  • 安裝nginx-1.14.2。
  • 修改nginx配置文件,如圖:
  • 修改前端訪問后臺路徑配置為:配置文件中server中監聽的端口與Ip
  • 兩個方案都測試成功,方案1利用Apache服務器的反向代理,而方案2則使用專門的反向代理服務。由于出口IP數量限制,目前采用方案1

    總結

    以上是生活随笔為你收集整理的前后端完全分离出现跨域、无法访问后台解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。