Оновлення статусу проксі-сервера


9

Я запускаю Drupal в інтрамережі, яка стоїть за простим HTTP-проксі. Я хотів би, щоб перевірки на оновлення модулів та ядер справді працювали.

Здається, я пам’ятаю, що на Drupal 6 це було зламано, але я більше не можу знайти сторінку.

Хтось знає, як я можу це зробити так?

Відповіді:


6

Один з наших корпоративних установок мав прямий проксі-сервер, який перешкоджав прямому доступу до Інтернету, і в кінцевому підсумку ядро ​​виправлене "проксі-патчем" (таким чином назвали цей шлях, оскільки ця проблема відкрита з 2004 року - http://drupal.org/ вузол / 7881 ).

http://drupal.org/node/7881#comment-4134240 - має патч для drupal 7 http://drupal.org/node/7881#comment-2446280 - має патч для drupal 6

Після встановлення виправлення ви зможете змінити drupal_http_request (), щоб надіслати всі запити через проксі.

Таким чином, всі модулі, які потребують доступу до Інтернету, будуть функціонувати, як очікувалося, наприклад статуя оновлення, агрегатор, openID тощо

ОНОВЛЕННЯ : Патч вже об'єднано в магістраль Drupal 7 ( https://drupal.org/comment/6425278#comment-6425278 ), і, сподіваємось, він вийде з Drupal 7.16


Ідеально - це була та сама сторінка, на яку я отримав патч проксі D6, але я, здається, пропустив її - дякую
Фредерік

2

Для довідки, це синтаксис, який ви тепер можете використовувати в Drupal, щоб налаштувати його на проксі-сервер (з default.settings.php / 7 ):

/**
 * External access proxy settings:
 *
 * If your site must access the Internet via a web proxy then you can enter
 * the proxy settings here. Currently only basic authentication is supported
 * by using the username and password variables. The proxy_user_agent variable
 * can be set to NULL for proxies that require no User-Agent header or to a
 * non-empty string for proxies that limit requests to a specific agent. The
 * proxy_exceptions variable is an array of host names to be accessed directly,
 * not via proxy.
 */
# $conf['proxy_server'] = '';
# $conf['proxy_port'] = 8080;
# $conf['proxy_username'] = '';
# $conf['proxy_password'] = '';
# $conf['proxy_user_agent'] = '';
# $conf['proxy_exceptions'] = array('127.0.0.1', 'localhost');

1

Для цьогоє модуль

Наразі це лише Drupal 6, але він повинен стати гарною відправною точкою.


Ви хочете створити версію Drupal 7? (Не можу повірити, що хтось досі розгортає нові сайти з Drupal 6.)
iconoclast

1

Для вирішення сценаріїв Pbs я працюю локально з реальним доменним іменем виробництва, але за проксі-сервером, щоб установка drupal та конфігурація веб-сервера були абсолютно однаковими (за деякими конфіденціями, прослуховування IP може бути різним, залежно від ip прослуховування в виробництво).

Отже, у мене з'явився проксі-сервер, який відповідав на http: //mydomain.local , наближаючись до http: //www.mydomain.tld , але на локальному IP- адресі .

Whith nginx, в локальному конфлікті vhost:

server_name  mydomain.local;
set $proxied_server_name www.mydomain.tld;
set $proxied_cookie_domain mydomain.tld;

# then generic proxy conf
proxy_set_header Host              $proxied_server_name;
proxy_set_header X-Real-IP         $remote_addr;
proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;

# My param added for drupal absolute url construction
proxy_set_header X-Proxy-Host      $host;               

# For headers rewriting (Location or Refresh)
proxy_redirect   http://$proxied_server_name/ http://$host/;

proxy_cookie_domain $proxied_server_name $host;  
# and for drupal auth, with cookies without sub-domain
proxy_cookie_domain $proxied_cookie_domain $host;

Для проксі-гріха, як і у виробництві

server_name  www.mydomain.tld;

І в моїх налаштуваннях.php

if (isset($_SERVER['HTTP_X_PROXY_HOST'])) {
  $base_url = 'http://' .$_SERVER['HTTP_X_PROXY_HOST'];
}

За допомогою цієї конфіденції я можу синхронізувати всі файли drupal та конфігурацію бази даних та сервера між великою кількістю інсталяції drupal (у моєму випадку розробник та виробництво, але може бути все, що завгодно).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.