it-swarm-eu.dev

Aktualizujte stav za proxy

Používám Drupal) v intranetu, který stojí za jednoduchým HTTP proxy. Chtěl bych, aby kontroly modulů a jádra skutečně fungovaly.

Zdá se, že si pamatuji, že na Drupal 6 = 6) byl hlavní hack, ale stránku už nemůžu najít.

Ví někdo, jak to dokážu?

9
Frederik

Jedna z našich podnikových instalací měla dopředný proxy, který znemožňoval přímý přístup k internetu, skončili jsme záplatovací jádro s „proxy záplatou“ (takto pojmenovanou, protože tento problém je otevřený od roku 2004 - http: // drupal.org/node/7881 ).

http://drupal.org/node/7881#comment-413424 - má opravu pro drupal 7 http://drupal.org/) uzel/7881 # comment-244628 - má opravu pro drupal 6

Po instalaci opravy budete moci změnit drupal_http_request () a odesílat všechny dotazy přes proxy.

Tímto způsobem budou všechny moduly, které vyžadují přístup k internetu, fungovat podle očekávání, např. aktualizovat sochu, agregátor, openID atd

[~ # ~] update [~ # ~] : Oprava je již sloučena do Drupal 7 kufru (- https://drupal.org/comment/6425278#comment-6425278 ), a doufejme, že bude venku s Drupal 7.16

6
wiifm

Pro informaci, toto je syntaxe, kterou nyní můžete použít v Drupal) pro konfiguraci, aby běžela za proxy serverem (od 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

Pro řešení staging pbs pracuji místně se skutečným názvem produkční domény, ale za proxy, takže drupal instalace a konfigurace webového serveru jsou striktně totožné (na některých serverech může poslouchat IP) být odlišný, v závislosti na poslechu ip ve výrobě).

Takže jsem měl proxy reagovat na http: //mydomain.local , proxy na http: // www .mydomain.tld , ale na místní IP.

Whith nginx, v místním vhost conf conf:

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;

Pro proxy proxy, stejně jako ve výrobě

server_name  www.mydomain.tld;

A v mém nastavení.php

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

S tímto conf, mohu synchronizovat všechny drupal soubory A databáze a server A konfigurace serveru mezi hodně drupal instalace (dev a produkce v mém případě, ale mohl by být cokoli) ty chceš).

1
dcaillibaud

K dispozici je modul

V současné době je to pouze Drupal 6), ale mělo by být dobrým výchozím bodem.

1
googletorp