it-swarm-ko.tech

프록시 뒤의 상태 업데이트

간단한 HTTP 프록시 뒤에있는 인트라넷에서 Drupal)을 실행하고 있습니다. 모듈 및 핵심 업데이트 검사가 실제로 작동하고 싶습니다.

Drupal 6) 에이 작업을 수행하는 핵심 핵이 있었음을 기억하지만 더 이상 페이지를 찾을 수 없습니다.

누구든지 내가 어떻게 작동하는지 알고 있습니까?

9
Frederik

회사 설치 중 하나에는 인터넷에 직접 액세스하지 못하게하는 포워드 프록시가 있었고, 우리는 '프록시 패치'로 코어를 패치했습니다. (이 문제는 2004 년 이후이 문제가 공개되었으므로 이런 방식으로 명명되었습니다.- http : // drupal.org/node/7881 ).

http://drupal.org/node/7881#comment-413424 -drupal 7 http://drupal.org/)에 대한 패치가 있습니다. node/7881 # comment-244628 -drupal 6에 대한 패치가 있습니다.

패치가 설치되면 drupal_http_request ()를 변경하여 프록시를 통해 모든 쿼리를 보낼 수 있습니다.

이렇게하면 인터넷에 액세스해야하는 모든 모듈이 예상대로 작동합니다 (예 : 조각상, 애그리 게이터, openID 등 업데이트

[~ # ~] update [~ # ~] : 패치가 이미 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

준비 pbs를 해결하기 위해 실제 프로덕션 도메인 이름으로 로컬에서 작업하고 있지만 프록시 뒤에 있으므로 drupal 설치 및 웹 서버 구성이 완전히 동일합니다 (일부 conf에서 IP 수신이 가능할 수 있음) 프로덕션 환경의 청취 IP에 따라 다름).

따라서 http : //mydomain.local 에 대한 프록시가 http : // www에 대한 프록시로 응답했습니다. .mydomain.tld 이지만 로컬 IP에 있습니다.

로컬 호스트 conf의 Whith nginx :

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;

그리고 내 settings.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