Настройка apache mod_proxy для междоменных вызовов ajax

Сегодня я начал работать над небольшим приложением JavaScript, в котором используется Clipped API (http://clipped.me/api.html), но узнал, что существуют проблемы с междоменными вызовами 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);
});

Я настроил сервер Apache на своем компьютере с Ubuntu, и мне предложили использовать mod_proxy для настройки обратного прокси. Проблема в том, что я просто не знаю, как это сделать - я впервые использую Apache. Я знаю все основы, такие как доступ к моим основным файлам конфигурации Apache в терминале. Может ли кто-нибудь объяснить нубу, как это сделать?


person Jake Stevens    schedule 28.03.2013    source источник


Ответы (1)


Apache mod_proxy в Ubuntu

Настройка обратного прокси с помощью Apache в Ubuntu:

<сильный>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
  • Запуск веб-сервера apache2 [ ОК ]
person internals-in    schedule 28.03.2013
comment
Я думаю, что что-то не так с libxml. Я пытался перезапустить сервер и получаю сообщение об ошибке Невозможно загрузить /usr/lib/libxml2.so на сервер: /usr/lib/libxml2.so: невозможно открыть общий объектный файл: Нет такого файла или каталога... I проверил этот каталог, и это правда, я не могу найти libxml. Я пытался установить дважды. Есть идеи? - person Jake Stevens; 28.03.2013