강력한 웹서버 NGINX 아파치

모든 엔진은 진화한다.
얼마전까지 Apache가 최고의 Web Server라는 인식이있었는데(나름), 이젠 NGINX라는 엔진이 슬슬 그 힘을 발휘하고있다.
우리나라에서도 naver.com가 외국에선 facebook.com, twitpic등이 사용 한다.

테스트 자료를 보면 부하가 높을 때 꾸준한 성능을 발휘한다니 참 맘에든다.

[ 제공 기능 ]
- handling of static files
- reverse proxy
- load balancing
- SSL support
- FastCGI
- Virtual Host
- FLV Streaming
- MP4 Streaming
- Web page access authentication
- gzip
- URL Rewriting
- Custom Logging
- SSI
- WebDAV

* 메일 프록시
- SMTP, POP3, IMAP 프록시
- STARTTLS 지원
- SSL 지원

[ 특징 ]
- Non blocking 네트워크 방식으로 동작한다.
- 아파치와는 다르게 설정된 개수의 스레드만을 사용하기 때문에 아파치에 비해 CPU, 메모리등 자원 사용률이 현저히 낮다.
- 시스템 함수 호출도 아파치 31개에 비하여 낮은 16개만을 호출한다.

[ 단점 ]
- 아직 문서화가 덜되어있다.
- 모듈을 포함하기 위해서는 재 컴파일이 필요하다.
- 아직 범용적(많이)으로 사용하지 않는다.

[ 설치 ]
기존에 설치되어있는 Tomcat이있다면 NGINX는 다른 포트로 설정하고 포트 포워딩을 이용한 서비스를 간단하게 구성할 수 있다.

http://nginx.org에서 rpm을 받아 설치하거나 소스를 받아 컴파일하여 설치한다.

- 소스 파일 설치
# tar -vxzf nginx-1.1.2.tar.gz
# ./configure --prefix=/usr/local/nginx --with-openssl=PATH/openssl --with-zlib=PATH/zlib 
   (필요한 모듈에 따라 옵션을 준다)
# make
# make install

- 톰캣과 연결을 위한 설정
  설명: 9090포트로 접속하면 로컬호스트 8989포트로 연결 한다.
  즉, http://domain.con:9090으로 서비스하면 내부적으로 8989 Tomcat으로 연결하여 사용한다는 말이다.
  AJP와는 달리 Tomcat 설정 옵션은 없고 8989의 포트로 맞추어주면 된다.

# cd /usr/local/nginx/conf
# vi nginx.conf
    server {
        listen       9090;
        server_name  localhost;

        location / {
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $remote_addr;

            proxy_pass http://localhost:8989;
            index index.jsp index.html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

- 엔진 실행
# /usr/local/nginx/sbin/nginx
# /usr/local/nginx/sbin/nginx -s stop
# /usr/local/nginx/sbin/nginx -s reload


- 접속
http://domain.com:9090

* 더욱 자세한 사항은 아래 사이트로...

덧글

  • 장땡 2018/01/24 14:04 # 답글

    [ 클라이언트 IP 로깅하기 ]

    컴파일 시 옵션 적용
    --with-http_realip_module

    vi nginx.conf

    http {
    set_real_ip_from 192.168.2.1; proxy or L4 스위치 IP
    real_ip_header X-Forwarded-For;

    vi conf.d/default.conf or nginx.conf

    location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
    proxy_pass http://tomcat_servers/

    }
댓글 입력 영역