【问题标题】:Configuring apache mod_proxy for cross-domain ajax calls为跨域 ajax 调用配置 apache mod_proxy
【发布时间】:2013-03-29 08:56:51
【问题描述】:

我今天开始开发一个使用 Clipped API (http://clipped.me/api.html) 的小型 JavaScript 应用程序,但了解到存在跨域 AJAX 调用问题,并且 API 的开发人员没有添加对 JSONP 的支持。这是应用程序本身:

var clippedAPI = "http://clipped.me/algorithm/clippedapi.php";

    $.ajax({
        url: clippedAPI,
        type: "GET",
        dataType: "JSONP",
        data: {
        url: "http://pandodaily.com/2013/03/26/y-combinator-demo-day-2013-still-looking-for- the-next-airbnb-or-dropbox/"}
    }).done(function(json) {
        console.log("JSON Data: " + json.title );
    }).fail(function(jqxhr, textStatus, error){
        var err = textStatus + ', ' + error;
        console.log("Request Failed: " + err);
});

我在我的 Ubuntu 机器上设置了一个 Apache 服务器,并被建议使用 mod_proxy 来设置反向代理。问题是我只是不知道该怎么做——这是我第一次使用 Apache。我知道所有基础知识,例如在终端中访问我的主要 Apache 配置文件。任何人都可以告诉菜鸟如何做到这一点吗?

【问题讨论】:

    标签: javascript apache api mod-proxy


    【解决方案1】:

    Ubuntu 中的 Apache mod_proxy

    ​​>

    在 Ubuntu 中使用 Apache 设置反向代理:

    1.安装 reverse_proxy 模块

    sudo apt-get install libapache2-mod-proxy-html
    

    2。如果尚未安装 libxml,请安装它。

    apt-get install libxml2-dev
    

    3。加载 apache2.conf 文件中的模块

    LoadModule  proxy_module         /usr/lib/apache2/modules/mod_proxy.so
    LoadModule  proxy_http_module    /usr/lib/apache2/modules/mod_proxy_http.so
    LoadModule  headers_module       /usr/lib/apache2/modules/mod_headers.so
    LoadModule  deflate_module       /usr/lib/apache2/modules/mod_deflate.so
    LoadFile    /usr/lib/libxml2.so
    

    4.假设您要将所有请求转发到 internal.server 然后将以下内容添加到您的 apache2.conf 文件中

    # Disable proxy requests, using ProxyPass in vhost
    ProxyRequests Off
    
    # Block all requests
    <Proxy *>
      Order deny,allow
      Deny from all
    </Proxy>
    
    
    <Proxy balancer://cluster>
            BalancerMember http://internal.server:802
            BalancerMember http://internal.server:801
            #below is to transfer sessions
            #ProxySet lbmethod=bytraffic
    
    </Proxy>
    
    
    <Location /balancer-manager>
        SetHandler balancer-manager
        Order Deny,Allow
    #   Deny from all
        Allow from all
    </Location>
    

    5.祝你一切顺利!

    更新:

    sudo  aptitude download libxml2
    sudo  ar -xf libxml2_2.7.8.dfsg-5.1ubuntu4_amd64.deb
    

    以下文件将从 ubuntu 包中提取。
    control.tar.gz data.tar.gz debian-binary libxml2_2.7.8.dfsg-5.1ubuntu4_amd64.deb

    # rm libxml2_2.7.8.dfsg-5.1ubuntu4_amd64.deb control.tar.gz
    # tar xf data.tar.gz
    # cd usr/lib/x86_64-linux-gnu/
    # ls
    

    以下文件将在那里
    libxml2.so.2 libxml2.so.2.7.8

    # mv * /usr/lib/x86_64-linux-gnu/
    # cp /usr/lib/x86_64-linux-gnu/libxml2.so.2* /usr/lib/
    # /etc/init.d/apache2 start
    
    • 正在启动 Web 服务器 apache2 [确定]

    【讨论】:

    • 我认为 libxml 有问题。我尝试重新启动服务器,但出现错误“无法将 /usr/lib/libxml2.so 加载到服务器中:/usr/lib/libxml2.so:无法打开共享对象文件:没有这样的文件或目录”.. .我检查了那个目录,确实,我找不到libxml。我试过安装两次。有什么想法吗?
    猜你喜欢
    • 2011-12-10
    • 1970-01-01
    • 2012-09-06
    • 2015-10-30
    • 2011-02-03
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多