1. 程式人生 > >服務端(apache)解決Javascript跨域問題

服務端(apache)解決Javascript跨域問題

用 apache 的 mod_proxy 模組開啟反向代理功能來實現:

1 修改 apache 配置檔案 httpd.conf ,去掉以下兩行前面 # 號

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so

2 在 server config 或 virtual host 中增加:

    ProxyRequests Off

    <Proxy *>
      Order deny,allow
      Allow from all
    </Proxy>

    ProxyPass /folder http://****.com/floder

重啟 apache.

註釋:

  • ProxyRequests Off 指令是指採用反向(reverse)代理,對於客戶端而言它就像是原始伺服器,並且客戶端不需要進行任何特別的設定;而正向代理允許客戶端通過它訪問任意網站並且隱藏客戶端自身,因此必須採取安全措施以確保僅為經過授權的客戶端提供服務。
  • ProxyPass 指令允許將一個遠端伺服器對映到本地伺服器的 URL 空間中,此時本地伺服器並不充當代理角色,而是充當遠端伺服器的一個映象。/folder 是一個本地虛擬路徑,http://****.com/floder 是一個指向遠端伺服器的部分 URL

如果不想對某個子目錄進行反向代理時,可以用"!"指令。比如說:

    ProxyPass /folder/exception !
    ProxyPass /folder http://****.com/floder

將會代理除 /folder/exception 之外的所有對 http://****.com/floder 的請求。