Nginx에서 리버스 프록시 서버를 사용해보십시오. Apache -> Nginx (Apache2.4 용으로 재 편집)

Apache2.4용으로 재편집했습니다.



"mod_rpaf ⇒ mod_remoteip"

마침내 Nginx를 만져보세요.



Nginx 공부용으로 구입한 책이 묻혀 있었습니다. 그 중이라고 생각하고 있으면. 이미 2년이 지났다.

현재, 우리 집의 구성으로서 글로벌 IP 주소가 하나밖에 없기 때문에 복수의 도메인을 VirtualHost 로 운용하고 있는 상황. Nginx 로 모두 바꾸어도 좋지만 여기는 Nginx -> Apache 와 다단으로 해 보는 공부가 리버스 프록시 서버로서 설정해 본다 (원래 Nginx 가 경쾌하고 빠르다고 하는 이유는. 있을거야).

정적 콘텐츠를 빠르게 전달하는 설계 사상

역방향 프록시 서버 구성 정책



역방향 프록시 서버 역할을 하는 호스트에 Nginx를 설치합니다. 또 DNS설정이 끝난 상태에서 서브도메인이 당기고 있는 상태인 것, 기존 Apache의 설정은 변경하지 않고 등이 있지만 기본적으로는 문제가 있으면 즉시 되돌릴 수 있는 구성으로 해본다.



설치



우선 특별한 기능을 사용하는 용도가 없다면 패키지 버전을 설치하는 것이 가장 좋습니다. 당연하지만 패키지판의 Nginx 에서는, 디폴트의 기능 밖에 인스톨 되고 있기 때문에, 확장하고 싶은 경우는 소스로부터 컴파일 하는 것 (nginx -V 로 기능을 볼 수 있다).



설정 파일



/etc/nginx/conf.d 아래에 적절한 파일 이름으로 config 파일을 만듭니다.
server {
    listen 80;
    server_name バーチャルホスト名; ← 外部から引けること

    proxy_set_header    X-Real-IP       $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header    Host            $http_host;
    proxy_redirect      off;
    proxy_max_temp_file_size    0;

    location / {
        proxy_pass http://192.168.11.88;
    }
}

Nginx에서 버전 정보 숨기기



공개 서버는 다양한 정보를 공개해서는 안되므로 버전 정보를 숨겨 둡니다.
http {
  server_tokens off;
  ...

mod_remoteip 설정



후기의 mod_rpaf 는, Apache 2.4 로 사용에는 요령이 있으므로 Apache2.2 로부터 표준 모듈이 된 mod_remoteip 를 사용한다.

설정 방법은 RemoteIPHeader X-Forwarded-For/etc/httpd/conf/httpd.conf 의 마지막에라도 지정해 두면 된다.

액세스 로그 지정 LogFormat 부분의 정의를 다음과 같이 변경한다.
※%a를 지정하면 액세스원 IP가 출력됩니다.
LogFormat "%h ・・・・
↓
LogFormat "%a ・・・・

CentOS6.x에서 nginx의 최신 버전을 설치하는 단계

mod_rpaf 설치 (Apache2.4 사용되지 않음)



리버스 프록시 서버로부터 전송된 정보를 Apache측에서 수신하면 리버스 프록시 서버의 주소(192.168.11.88)가 기록되어 버리기 때문에 상태가 나쁘기 때문에, Apache측에 mod_rpaf 모듈을 인스톨 한다.
⇒ Apache 2.4에서 사용하는 경우 조금 요령이 있으므로 mod_remoteip 사용

mod_remoteip을 사용하여 LB 아래의 Apache도 액세스 IP를 올바르게 인식 할 수 있습니다.
역방향 프록시/로드 밸런서 및 mod_rpaf
nginx + apache로 조금 편안한 웹 서버를 목표로합니다.

Nginx를 만져보십시오.



Nginx 조금 털이 싫었던 느낌도 있지만 설정 파일은 직관적이고 알기 쉽기 때문에 좋을지도.
의외로 간단히 리버스 프록시 서버의 설정도 할 수 있는 것이라고 생각한 대로.

Rewrite



Apache이지만 매번 잊어 버리므로 Rewrite의 링크 메모

nginx에서 역방향 프록시 대상으로 호스트 이름을 상속받지 않음

참고 사이트



Apache Rewrite 학습
nginx에서 리버스 프록시 할 때 Tips
가상 CentOS nginx + Apache에서 역방향 프록시
nginx 연재 3번째: nginx 설정, 그 1

좋은 웹페이지 즐겨찾기