Nginx 역방향 에이전트 및 교체 내용 모듈 ngxhttp_substitutions_filter_modu

7520 단어
======
예전 에 Nginx 역방향 에이전트 with - httpsub_module 과 substitutions4nginx 모듈 은 본문 내용 과 URL 을 바 꾸 고, 군용 lnmp 환경 에서 역방향 프 록 시 서버 를 설정 하 는 방법 튜 토리 얼 입 니 다.
본 튜 토리 얼 은 군형 lnmp 환경 을 바탕 으로 다른 Nginx 와 유사 합 니 다.nginx conf 의 위 치 는 일반적으로 / usr / local / nginx / conf / 에 컴 파일 되 어 있 으 며, 원본 에서 / etc / nginx 에 설치 되 어 있 습 니 다.
lnmp 의 설 치 는 여기 서 생략 합 니 다. 아래 강 좌 는 이미 설 치 된 lnmp 환경 에서 역방향 프 록 시 서버 를 설정 하고 내용 을 바 꾸 는 것 입 니 다.
1. 역방향 프 록 시 서버 로 cdn 가속 을 하고 내용 을 바 꾸 지 않 습 니 다.
1. 가상 호스트 설정 파일 을 새로 추가 하여 리 버스 에 사용 합 니 다.
nginx conf 가 있 는 위 치 를 찾 습 니 다. 일반적으로 컴 파일 된 것 은 / usr / local / nginx / conf / 입 니 다. 원본 에서 / etc / nginx 에 설치 되 어 있 습 니 다.
nginx. conf 의 http 층 에 다음 내용 을 추가 합 니 다:
proxy_connect_timeout    5;
proxy_read_timeout       60;
proxy_send_timeout       5;
proxy_buffer_size        16k;
proxy_buffers            4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_temp_path   /home/cache/temp;
#      
proxy_cache_path  /home/cache/path levels=1:2 keys_zone=cache_one:5m inactive=7d max_size=1g;
#5m     ,1g       ,cache_one      ,                。
mkdir /home/cache/path -p
mkdir /home/cache/temp
chmod 777 -R /home/cache

가상 호스트 설정 추가:
vi /usr/local/nginx/conf/vhost/xxorg.com.conf

\ # xxorg. com 은 연결 할 도 메 인 이름 입 니 다.
설정 파일 내용: {백 엔 드 (ip 1.2.3.4) 바 인 딩 도 메 인 xxorg. com, 전단 바 인 딩 도 메 인 xxorg. com, 도 메 인 이름 을 전단 으로 분석 하여 cdn 가속 을 실현 합 니 다.}
server{
listen 80;
server_name example.com www.example.com;    
#     

index index.php;      
#    

access_log off;        
#off     

location / {
proxy_cache_key "$scheme://$host$request_uri";
#  key  ,        。

proxy_cache cache_one;
#     ,        

proxy_cache_valid  200 304 3h;
proxy_cache_valid 301 3d;
proxy_cache_valid any 10s;
#200 304    3  
301    3 
      ( 502 404)10 

proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
#       ip

proxy_set_header   Referer http://example.com;    
#    Referer,         

proxy_set_header   Host $host;
#     

proxy_pass http://1.2.3.4;    
#    ip,     

#proxy_cache_use_stale invalid_header error timeout http_502;
#       、  、502         ,  。
      }
}

의외 의 일이 없 으 면 nginx 를 다시 시작 한 후 xxorg. com 을 전단 에 연결 하면 접근 할 수 있 습 니 다.
다음 방법 으로 프로필 이 올 바른 지 확인 할 수 있 습 니 다.
실행:
/usr/local/nginx/sbin/nginx -t

설정 이 정상 인지 확인 하 십시오. 표시 되면:
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok    
configuration file /usr/local/nginx/conf/nginx.conf test is successful

nginx 의 설정 파일 이 정상 이라는 것 을 설명 합 니 다. 그렇지 않 으 면 오류 알림 에 따라 설정 을 수정 합 니 다.
그리고 집행
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

설정 적용,
/etc/init.d/nginx restart

=========================
2. 다음은 Nginx 를 통 해 다른 사람의 사 이 트 를 대리 하고 관련 내용 을 교체 합 니 다.
1. nginX:
apt-get update#nginx-full                 。
cd /root
apt-get update
apt-get install -y git gcc g++ make automake
#     ,Centos apt-get   yum
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module
wget http://nginx.org/download/nginx-1.2.8.tar.gz
tar zxvf nginx-1.2.8.tar.gz
cd nginx-1.2.8
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --add-module=/root/ngx_http_substitutions_filter_module
make
make install
시스템 이 데 비 안 이 라면 컴 파일 할 필요 가 없습니다.
echo "deb http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
echo "deb-src http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
#  dotdeb ,     dotdeb    
apt-get update
apt-get install nginx-full
#nginx-full                 。
2. nginx. conf 를 수정 하고 역방향 프 록 시 설정 및 교체 내용 을 컴 파일 한 / usr / local / nginx / conf / nginx. conf, 소스 코드 는 / etc / nginx / nginx. conf 에서 xxorg. com 으로 www. baidu. com 을 대체 하고 내용 을 바 꾸 려 면:
user  www;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;
pid        logs/nginx.pid;

events {
              use epoll;
  worker_connections  1024;
}

http {
… #       
              proxy_connect_timeout    5;
              proxy_read_timeout       60;
              proxy_send_timeout       5;
              proxy_buffer_size        16k;
              proxy_buffers            4 64k;
              proxy_busy_buffers_size 128k;
              proxy_temp_file_write_size 128k;
              proxy_temp_path   /home/cache/temp;
              proxy_cache_path  /home/cache/one levels=1:2 keys_zone=cache_one:3m inactive=7d max_size=1g;

server {
 listen       80;
 server_name  xxorg.com;
 index index.php;      
      #    

location / {
  subs_filter_types text/html text/css text/xml;
  subs_filter www.baidu.com xxorg.com gi;
#    ,    。

  proxy_cache_key "$scheme://$host$request_uri";
#  key  ,        。

  proxy_cache cache_one;
#     ,          

  proxy_cache_valid  200 304 3h;
  proxy_cache_valid 301 3d;
  proxy_cache_valid any 10s;
#200 304    3  
#301    3 
#      ( 502 404)10 

  proxy_set_header   X-Real-IP  $remote_addr;
  proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
#       ip

  proxy_set_header   Referer http://www.baidu.com;    
#    Referer,         

  proxy_set_header   Host www.baidu.com;
#     

  proxy_pass http://1.2.3.4;    
#    ip

  proxy_set_header Accept-Encoding "";    
#    

 proxy_cache_use_stale invalid_header error timeout http_502;
#       、  、502         
      }
  }
}
주의: Nginx 의 nginx 를 통 해substitutions_filter 모듈 교체 내용 에 중국어 가 있 습 니 다. conf 파일 을 utf - 8 without BOM 인 코딩 으로 저장 하 십시오.
====================================
본 튜 토리 얼 은 모두 세 부분 이다.
Nginx 배합 ngxhttp_substitutions_filter_module 모듈 은 역방향 프 록 시 서버 를 구축 하고 목표 사이트 의 내용 을 교체 합 니 다 [하나]
Nginx 배합 ngxhttp_substitutions_filter_module 모듈 은 역방향 프 록 시 서버 를 구축 하고 목표 사이트 의 내용 을 교체 합 니 다 [의 2]
Nginx 역방향 에이전트 및 교체 내용 모듈 ngxhttp_substitutions_filter_module 사용 설명
Nginx 역방향 에이전트 및 교체 내용 모듈 ngxhttp_substitutions_filter_module 의 설명:
묘사 하 다. nginx_substitutions_filter 는 nginx 교체 모듈 로 apache 와 mod_substitute 모듈 처럼
사용 예시
location / {
subs_filter_types text/html text/css text/xml; 
subs_filter st(\d*).example.com $1.example.com ir;
 subs_filter a.example.com s.example.com;
}

Nginx 역방향 에이전트 및 내용 변경 명령: * subs_filter_types
* subs_filter
subs_filter_types 문법: * subsfilter_types mime-type [mime-types] *
기본 값: * subsfilter_types text/html*
내용: * http, server, location *
*subs_filter_types * 는 파일 형식 을 바 꾸 는 데 사 용 됩 니 다. 기본 값 은 text / html 형식의 파일 만 바 꿉 니 다.
* 만약 에 귀하 가 반대 하 는 포럼 에 로그 인 소스 사이트 와 같은 문제 가 발생 하면 이 항목 을 확인 하 십시오.
 
proxy_set_header Accept-Encoding “”;
subs_filter 문법: * subsfilter source_str destination_str [gior] *
기본 값: * none *
내용: * http, server, location *
*subs_filter * 텍스트 를 바 꾸 는 데 사용 되 며 정규 를 사용 할 수 있 습 니 다.
* * g * (기본 값): 일치 하 는 항목 을 바 꿉 니 다.
* * i *: 대소 문자 구분 일치
* * o *: 발 견 된 첫 번 째 것 만 일치 합 니 다.
* * r *: 정규.
 
 
* Nginx 리 버스 에이전트 및 교체 내용 참고 자료:
Nginx Wiki   http://wiki.nginx.org/HttpProxyModule
YaoWeibin Github    https://github.com/yaoweibin/ngx_http_substitutions_filter_module

좋은 웹페이지 즐겨찾기