출처 - http://webdir.tistory.com/233
NGINX는 근래에 경량화 웹서버로서 부각 받고 있는 웹서버입니다. 아래에서 apt-get을 이용한 패키지 설치와 소스 컴파일 설치 방법을 알아봅니다.
유행에 따라 엔진엑스를 설치하겠다고 마음 먹었다면 한번쯤은 고사해보길 권한다. 엔진엑스는 현재까지는 실시간 환경 설정 변경이 안되고 .htaccess 파일이나 그와 유사한 기능을 지원하지 않는다. 엔진엑스가 가진 제약점을 잘 파악하고 그를 대체할수 있을지도 의문을 가져보아야 한다는 소리다. 하지만 동접수가 많은 사이트를 운영중이라면 아파치보다 더 나은 성능을 발휘한다는 것은 틀림없다.
- HOME
- http://nginx.org/
NGINX 패키지 설치
우분투에서 패키지를 이용해 설치하는 방법을 알아보자.
패키지 저장소 추가
버전별 알맞은 내용을 /etc/apt/sources.list의 하단에 추가한다.
Ubuntu 10.04 (Lucid)
deb http://nginx.org/packages/ubuntu/ lucid nginx
deb-src http://nginx.org/packages/ubuntu/ lucid nginx
Ubuntu 11.10 (Oneiric)
deb http://nginx.org/packages/ubuntu/ oneiric nginx
deb-src http://nginx.org/packages/ubuntu/ oneiric nginx
Ubuntu 12.04 (Percise)
deb http://nginx.org/packages/ubuntu/ precise nginx
deb-src http://nginx.org/packages/ubuntu/ precise nginx
ex)
sudo vi /etc/apt/sources.list
deb http://nginx.org/packages/ubuntu/ precise nginx
deb-src http://nginx.org/packages/ubuntu/ precise nginx
인증키 등록
Bashwget http://nginx.org/keys/nginx_signing.key
cat nginx_signing.key | sudo apt-key add -
저장소 업데이트
Bashsudo apt-get update;
NGINX 설치
Bashsudo apt-get install nginx
NGINX 소스 컴파일 설치
주요 컴파일 옵션들을 다양하게 설정할 필요로 인해 소스 컴파일 설치를 하곤 한다. NGINX는 안타깝게도 Apache처럼 DSO로 작동하지 않기 때문에...;;
공식 문서 : http://nginx.org/en/docs/configure.html
오픈 튜토리얼에 동영상 강좌 : http://opentutorials.org/module/384/4511
의존성 패키지 설치
컴파일러들 설치
Bashsudo apt-get install gcc g++ make
GCC는 C, C++, 자바, 에이다, 포트란 등과 같은 다양한 언어의 무료 오픈소스 컴파일러를 모아 놓은 컴파일러 모음이다.
PCRE : Perl 호환 정규표현식
Bashsudo apt-get install libpcre3 libpcre3-dev
엔진엑스의 rewrite 모듈과 HTTP 코어 모듈은 PCRE 구문에 따르는 정규표현식을 사용한다.
zlib : 압축 알고리즘
Bashsudo apt-get install zlib1g zlib1g-dev
zlib 라이브러리는 개발자에게 압축 알고리즘을 제공한다. 엔진엑스 모듈에서 gzip 압축을 사용하려면 zlib 라이브러리가 필요하다.
openssl : 암호 해독 라이브러리
Bashsudo apt-get install openssl libssl-dev
엔진엑스는 OpenSSL 라이브러리를 이용해 보안 웹페이지를 서비스한다.
-- 이하는 컴파일할때 포함할 모듈의 선택에 따라 --
[GD]
Bashsudo apt-get install libgd2-xpm-dev
[xslt]
Bashsudo apt-get install libxslt1-dev libxml2 libxml2-dev
[GeoIP]
Bashsudo apt-get install libgeoip1 libgeoip-dev
NGINX 다운로드
아래에 이어지는 설명은 리눅스 버전의 stable 버전을 이용한 설치방법을 설명할 것이다. NGINX의 다운로드 페이지에서 링크주소를 복사한다.
http://nginx.org/en/download.html (2013/09/12 기준 1.4.2 가 최신 안정화버전임)
다운로드 받을 디렉토리로 이동
Bashcd /usr/local/src
wget을 이용해 다운로드 받는다.
Bashsudo wget http://nginx.org/download/nginx-1.4.2.tar.gz
압축 해제
Bashsudo tar -xzvf nginx-1.4.2.tar.gz
추가 모듈 다운로드
추가로 컴파일시 포함할 모듈을 다운로드 받는다.
외부모듈 -> http://wiki.nginx.org/3rdPartyModules
[ FancyIndex ]
모듈 다운로드
Bashsudo wget https://gitorious.org/ngx-fancyindex/ngx-fancyindex/archive/2034d0ad35298dabf20772c85293c16f67647bce.tar.gz
모듈 압축해제 ( ngx-fancyindex-ngx-fancyindex 라는 이름으로 해제됨 )
Bashsudo tar -xzvf 2034d0ad35298dabf20772c85293c16f67647bce.tar.gz
이름을 간단하게 변경
Bashsudo mv ngx-fancyindex-ngx-fancyindex ngx-fancyindex
[ Static etags ] - 현재 make 단계에서 에러가 발생한다.
모듈 다운로드
Bashsudo wget https://github.com/mikewest/nginx-static-etags
모듈 압축해제 ( nginx-static-etags-master 라는 이름으로 압축해제됨 )
Bashsudo unzip master
이름을 간단하게 변경
Bashsudo mv nginx-static-etags-master nginx-static-etags
사용자 설정
우분투에 기본적으로 추가되어 있는 www-data 사용자를 이용할 것인데 이 사용자가 존재하지 않는다면 새로이 추가한다.
(www-data가 기타 다른 애플리케이션에서 관례적으로 많이 쓰이기 때문에 추후에 문제를 일으키지 않을 것이다.)
Bashsudo useradd --shell /usr/sbin/nologin www-data
우분투에 추가되어 있는 www-data 사용자가 로그인이 가능하게 되어 있으니 이를 불가능하게 변경하자.
Bashsudo usermod -s /usr/sbin/nologin www-data
configure
configure를 통하여 필요한 모듈을 추가하거나 제거할 수 있고 디렉토리와 파일의 경로를 지정할 수 있다.
configure 공식 문서 : http://nginx.org/en/docs/configure.html
configure 옵션 정리 : http://webdir.tistory.com/238
디렉토리 이동
Bashcd nginx-1.4.2
sudo ./configure --prefix=/usr/local/nginx --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_image_filter_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_secure_link_module --with-http_stub_status_module --with-http_xslt_module --with-http_perl_module --add-module=../ngx-fancyindex
(--add-module=../nginx-static-etags : make 시 에러나서 뺏다.)
환경설정 파일들의 경로들을 변경하고자 한다면 아래의 내용처럼 추가해주면 된다.
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/tmp/nginx/fastcgi_temp \
--http-scgi-temp-path=/var/tmp/nginx/fastcgi_temp \
Bashsudo make
($ sudo apt-get install libperl-dev : 에러가 나서 설치했다.)
Bashsudo make install
INIT 스크립트 추가
레포지토리를 이용한 설치의 경우 init 스크립트가 자동으로 등록되나 소스 컴파일 설치의 경우 이를 직접 등록해야 한다.
https://github.com/JasonGiedymin/nginx-init-ubuntu 에서 제공하는 것을 이용했다.
Bashsudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
실행 권한 추가
Bashsudo chmod +x /etc/init.d/nginx
부팅시 자동 실행 등록
Bashsudo update-rc.d -f nginx defaults
이후 부터는 아래의 명령어 사용가능
Bashsudo service start | stop | restart | reload | status
심볼릭 링크 (PATH)
Bashsudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin
출처: http://webdir.tistory.com/233 [WEBDIR]
'개발 > 리눅스' 카테고리의 다른 글
[우분투]ssh 포트 변경하기 (0) | 2020.01.31 |
---|---|
[우분투] 각종 로그 기록 확인 (0) | 2020.01.31 |
Let's Encrypt 무료 SSL 인증서 (0) | 2017.04.12 |
우분투 jdk(자바) 설치 (0) | 2017.03.03 |
우분투에 vim 설치 (0) | 2017.03.03 |
댓글