프록시 뒤의 상태 업데이트


9

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

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

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

답변:


6

회사 설치 중 하나에 인터넷에 대한 직접 액세스를 방해하는 포워드 프록시가 있었으므로 '프록시 패치'로 코어를 패치했습니다. (이 문제는 2004 년 이후 공개되었으므로 이런 방식으로 명명되었습니다-http: //drupal.org/ node / 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 프록시 패치를 얻은 것과 같은 페이지이지만, 나는 그것을 놓친 것 같습니다-감사합니다
Frederik

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

스테이징 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와 프로덕션이지만 원하는대로 할 수 있습니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.