Pregunta

Me estoy quedando Drupal en una intranet que está detrás de un simple proxy HTTP. Me gustaría que los módulos y el núcleo de actualización cheques a realidad el trabajo.

Me parece recordar que hubo un corte del núcleo de hacerlo en Drupal 6, pero no puedo encontrar la página más.

¿Alguien sabe cómo puedo conseguir este trabajo?

¿Fue útil?

Solución

Una de nuestras instalaciones corporativas tenían un proxy de reenvío que impedía el acceso directo a Internet, terminamos parches núcleo con 'el parche proxy' (de ahí el nombre de esta manera porque este tema ha estado abierto desde 2004 - http://drupal.org/node/7881 ).

http://drupal.org/node/7881#comment-4134240 - tiene un parche para drupal 7 http://drupal.org/node/7881#comment-2446280 - tiene un parche para drupal 6

Una vez instalado el parche, entonces usted será capaz de alterar drupal_http_request () para enviar todas las consultas a través del proxy.

De esta manera todos los módulos que requieren acceso a internet funcionarán como se espera, por ejemplo, estatua de actualización, agregador, etc openID

Actualizar : El parche ya se fusionó en Drupal 7 tronco ( https : //drupal.org/comment/6425278#comment-6425278 ), y se espera que sea a cabo con Drupal 7.16

Otros consejos

A modo de referencia, esto es la sintaxis ahora se puede utilizar en Drupal para configurar para que se ejecute detrás de un proxy (de 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');

Hay un módulo para que

Es actualmente sólo Drupal 6, sino que debe proporcionar un buen punto de partida.

Para resolver puesta en escena PBS, estoy trabajando localmente con el nombre de dominio de producción real, pero detrás de un proxy, por lo que la instalación de Drupal y la configuración del servidor web son estrictamente idénticos (en algunos conf la escucha IP podría ser diferente, dependiendo de la IP en la producción de escuchar).

Por lo tanto, yo tenía un proxy de responder durante http: //mydomain.local , hacer proxy a http:. //www.mydomain.tld , pero en una IP local

Poco Con nginx, en conf vHost locales:

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;

Para el host virtual con proxy, al igual que en la producción

server_name  www.mydomain.tld;

Y en mi settings.php

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

Con esta conf, que puede sincronizar todos los archivos de Drupal y la base de datos y la configuración del servidor entre un montón de instalación de Drupal (dev y la producción en mi caso, pero podría ser lo que quiera).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a drupal.stackexchange
scroll top