WEB Server NGINX 문자열 치환 - SUB_FILTER

     

     

     

    이번 포스팅에서는 NGINX에서 SUB_FILTER를 이용하여 문자열 치환하는 방법에 대해서 알아보도록 하겠습니다.

     

     

    관련 글

     

    [서버구축이야기] [부하분산/서비스] - CDN 서비스

     

     

     

     

     

     

     NGINX - SUB_FILTER 란?

     

     

    홈페이지를 운영하시다 보면 URL의 경로수정, 요청도메인 변경 등등 수정이 필요한 경우가 많이 있으며, 이러한 경우 rewrite를 사용하여 적용하면 되지만 sub_filter를 사용하면 보다 손쉽게 변경할 수 있습니다

     

     

     

     

     NGINX - SUB_FILTER 사용법

     

     

    NGINX에서 sub_filter를 사용하려면 ngx_http_sub_module 모듈이 설치되어 있어야 되며, 설치시 기본적으로 설치되지 않고 --with-http_sub_module을 지정해서 설치해야됩니다.

     

     

     

    1. NGINX - with-http_sub_module 모듈 설치 확인

     

    [root@nginx ~]# /usr/local/nginx/sbin/nginx -V 2>&1 | grep -o with-http_sub_module
    with-http_sub_module

     

     

    2. NGINX - sub_filter 적용

     

    사용법 : sub_filter '[변경 전 정보]' '[변경 후 정보]';

     

    vi /usr/local/nginx/conf/nginx.conf
    
    server {
    	listen	192.168.85.177:80;
           server_name	server-talk.com;
           root	/home/server_talk/public_html;
    
            access_log  /usr/local/nginx/logs/server-talk.com.access.log;
            error_log   /usr/local/nginx/logs/server-talk.com.error.log;      
    
    	sub_filter_once off;
    		sub_filter 'http://server-talk.com/data/' 'http://cdn.server-talk.com/data/img/';
    
    }

    위 내용과 같이 sub_filter를 이용하여 요청하게 특정디렉토리에 요청되게 되는 부분을 다른 도메인이나 경로를 조작할 수 있습니다.

     

     

    sub_filter_once 옵션에서 on | off 는 반복적으로 처리할지 한번만 조작할지의 대한 설정입니다 페이지의 전체 경로의 수정을 하시려면 off 를 한번만 수정할 경우에는 on으로 지정하시면 됩니다.

     

     

     

     

     

     NGINX - SUB_FILTER 적용사례

     

     

    홈페이지 운영시 접속자가 늘어 서버에 확장에 대한 고려를 많이 하십니다 그리고 서버 확장시 가장 먼저 고려되는것이 CDN으로 서버의 자원을 분산하여 서버 확장에 대한 비용절감을 구상하게 됩니다

    그러나 홈페이지에 CDN으로 서버의 트래픽을 분산 시킬경우 CDN과 연결된 도메인 정보 수정이나 경로 수정이 필요합니다 

    웹사이트 운영시 자체적으로 개발하셔서 사용하시는 분들도 있지만 XE, 그누보드와 같은 솔루션을 사용하여 홈페이지를 구죽하시는분들이 더 많아지는 추세입니다

    직접 개발하시는 분들은 CDN과 연결될 도메인 정보수정이 쉽게 수정이 가능하나 XE, 그누보드와 같은 솔루션을 이용하고 있는 홈페이지는 어느 부분의 수정이 필요한지와 잘못수정 했을때의 문제로 CDN의 연동이 어려움이 있습니다

    그러나 sub_filter를 이용하여 특정 이미지, 영상 등등의 파일이 있는곳을 지정하여 CDN으로 연결이 가능합니다.

    Posted by 서버이야기