it-swarm.asia

تحديث الحالة خلف الوكيل

أنا أعمل Drupal في إنترانت خلف وكيل HTTP بسيط. أود أن تعمل الوحدة والتحقق من التحديث الأساسي في الواقع.

يبدو أنني أتذكر أن هناك اختراقًا أساسيًا للقيام بذلك على Drupal 6 ، لكنني لم أتمكن من العثور على الصفحة بعد الآن.

لا أحد يعرف كيف يمكنني الحصول على هذا العمل؟

9
Frederik

كان لدى أحد منشآت الشركة وكيل أمامي منع الوصول المباشر إلى الإنترنت ، وانتهى بنا الأمر إلى التصحيح الأساسي بـ "تصحيح الوكيل" (وبالتالي سميت بهذه الطريقة لأن هذه المشكلة كانت مفتوحة منذ 2004 - http: // drupal.org/node/7881 ).

http://drupal.org/node/7881#comment-413424 - يحتوي على تصحيح لـ drupal 7 http://drupal.org/ عقدة/7881 # comment-244628 - تحتوي على تصحيح لـ drupal 6

بمجرد تثبيت التصحيح ، ستتمكن من تغيير drupal_http_request () لإرسال جميع الاستعلامات عبر الوكيل.

بهذه الطريقة ستعمل جميع الوحدات التي تتطلب الوصول إلى الإنترنت كما هو متوقع ، على سبيل المثال تحديث تمثال ، مجمع ، openID الخ

[~ # ~] تحديث [~ # ~] : تم دمج التصحيح بالفعل في Drupal 7 trunk (- https://drupal.org/comment/6425278#comment-6425278 ) ، ونأمل أن تكون مع Drupal 7.16

6
wiifm

كمرجع ، هذه هي الصيغة التي يمكنك استخدامها الآن في 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');
2
Andy Jackson

لحل مراحل التدريج ، أعمل محليًا مع اسم مجال الإنتاج الحقيقي ، ولكن خلف وكيل ، بحيث يكون drupal وتكوين خادم الويب متطابقين تمامًا (في بعض الحالات ، يمكن الاستماع IP تكون مختلفة ، اعتمادًا على IP الاستماع في الإنتاج).

لذا ، كان لدي وكيل يستجيب لـ http: //mydomain.local ، بالبروكسي إلى http: // www .mydomain.tld ، ولكن على عنوان IP محلي.

مع nginx ، في Conf 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;

بالنسبة إلى vhost الوكيل ، تمامًا كما هو الحال في الإنتاج

server_name  www.mydomain.tld;

وفي الإعدادات الخاصة بي. php

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

باستخدام هذا conf ، يمكنني مزامنة جميع drupal وملفات قاعدة البيانات وتكوين الخادم بين الكثير من drupal (dev والإنتاج في حالتي ولكن يمكن أن يكون أي شيء انت تريد).

1
dcaillibaud

هناك وحدة لذلك

حاليًا فقط Drupal 6 ، ولكن يجب أن توفر نقطة بداية جيدة.

1
googletorp