NginX 설치전 준비사항
pcre 라이브러리 설치
# yum install pcre*
gzip 압축을 사용하기 위해서 설치
# yum install zlib zlib-devel
open ssl 설치
# yum iunstall openssl openssl-devel
NginX 다운 및 설치
NginX 다운받을 폴더로 이동
# cd /usr/local/src
NginX 다운로드
# wget http://nginx.org/download/nginx-1.6.2.tar.gz
다운받은 NginX 파일 압축풀기
# tar zxf nginx-1.6.2.tar.gz
압축을 푼 폴더로 이동
# cd nginx-1.6.2
NginX 폴더안에 있는 내용 컴파일
# ./configure --prefix=/usr/local/nginx-1.6.2 --user=daemon --group=daemon --with-http_realip_module --with-http_stub_status_module
[ex] ./configure --prefix=/applications/nginx-1.9.15 --user=service --group=wheel --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module
컴파일 옵션 설명
--prefix=경로 //컴파일후 설치되는 경로
--user=사용자계정 //엔진엑스 작업자 프로세스를 실행하기 위한 기본 사용자 계정 (이설정은 환경설정 파일에 user 지시어를 생략했을 경우에만 적용된다.)
--group=그룹 //엔진엑스 작업자 프로세스를 실행하기 위한 기본 사용자 그룹 (이설정은 환경설정 파일에 group 지시어를 생략했을 경우에만 적용된다.)
--width-http_realip_module // 요청 헤데 데이터로부터 실제 IP 주소를 읽어 내는 Real IP 모듈
--with-http_stub_status_module // 서버 통계와 정보페이지를 생성하는 스터브 상태
* 기타 컴파일시 옵션 추가 할 수 있음 더많은 옵션 설명 -> http://webdir.tistory.com/238
NginX 컴파일 설치
# make
# make install
NginX 환경설정 파일이 있는 폴더로 이동
# cd /usr/local/nginx-1.6.7/conf
NginX 환경설정 파일 vim editor 로 열기 *vim Editor 단축키 모음 -> http://mintnlatte.tistory.com/170
# vi nginx.conf
NginX 환경설정 파일 설정 설명
http://ohgyun.com/479
http://ohgyun.com/480
http://ohgyun.com/481
시스템 방화벽 오픈
# sudo fuser -k 80/tcp
NginX 컴파일된 폴더 바로가기 생성 (운용시 가동중인 웹 서버 위치로 바로 이동할 수 있도록 심볼릭 링크 생성)
# cd /usr/local
#ln -s./nginx-1.6.2 nginx
NginX 실행스크립트 등록
# vi /etc/init.d/nginx
변경후 저장
# chmod +x /etc/init.d/nginx
# chkconfig nginx on
# chkconfig --list nginx
NginX 설정 검사
# /etc/init.d/nginx configtest
NginX 실행
# /etc/init.d/nginx start
NginX 중지
# /etc/init.d/nginx stop
* 등록후 NginX 실행시 오류 가 생길경우 실행스크립트 가 깨져서 ^M 이 들어가 있을 수있다.
이경우 # vi /etc/init.d/nginx 로 vim etidor 를 연후 :%s^M$//g 를 입력 해주면 ^M 를 제거할 수 있다.
단 ^M 을 그대로 입력하는것이 아니라 Ctrl+V 와 Ctrl+M 키를 눌러 입력 해야한다
=====================================================================================================
Nginx 설치하기
웹에서 접속하기 위해서 Web Server와 Web Application Server를 설치해 주어야 한다. 사용자의 요청에 대해서 Web Server는 정적 파일(HTML, CSS, Javascript, Image)에 대한 처리를 담당하고, Web Application Server는 동적인 처리에 대한 담담을 한다. 하지만 요즘은 Web Application Server에서 Web Server에 대한 처리가 모두 가능하고, 성능도 많이 개선되어서 구성의 주체가 효율적인 판단을 하면 된다.
필자는 Web Server로 많이 사용하는 Nginx를 설치할 것이다. Apache와 비교했을 때 여러 지표에서 뛰어난 성능을 보이고 있는데, Nginx는 비동기 이벤트 기반으로 만들어 져서, 더 적은 자원으로 더 많은 트래픽 처리를 감당할 수 있어서, Apache에 비해서 더 좋은 성능을 발휘하고 있는 부분들이 많다.
Nginx를 사용하는 유명한 곳으로는 Facebook, Netflix, Github, WordPress, Zynga, Sourceforge 등이 있다. 그 만큼 성능이 입증된 믿을 만한 Web Server란 이야기라고 생각하면 되겠다..
그럼 이제부터 설치 및 설정을 시작해 보자.
우선 Nginx를 설치하기 위해서는 Nginx의 의존성을 해결하기 위해서 먼저 설치해 주어야 하는 패키지들이 존재하기에 먼저 필요한 의존성 패키지부터 설치를 시작할 것이다. 그리고 실제 Nginx를 간단하게 설치해서 웹으로 접속해 볼 것이다. 더불어 Nginx에 대한 필요한 설정들도 알아볼 것이다.
NginX 의존성 lib 설치
A. gcc 설치
$ yum install gcc g++ cpp gcc-c++
B. PCRE (Perl Compatible Regular Expressions) 설치
Nginx를 컴파일, 설치하려면 펄 호환 정규표현식이 필요한데, rewirte와 HTTP Core Module이 PCRE 구문 정규 표현식을 사용하기 때문이다. pcre, pcre-devel 두 개의 lib 설치가 필요한다. PCRE는 Compile 버전의 라이브러리고, pcre-devel은 프로젝트를 Compile하기 위한 개발용 헤더와 소스다.
$ yum install pcre pcre-devel
C. zlib 설치
모듈에서 gzip 압축을 사용하기 위해 zlib가 필요한데, zlib와 zlib-devel 두개 모두 필요하다.
$ yum install zlib zlib-devel
D. OpenSSL 설치
OpenSSL은 범용 암호화 라이브러리다. 이미 설치되어 있을수도 있는데, 설치가 되어 있지 않다면 아래 명령어를 따라 설치하면 된다.
$ yum install openssl openssl-devel
Nginx 설치
Nginx를 yum을 통해서도 설치가 가능하지만 필자는 Nginx에 대해 좀 더 상세한 분석을 위해서 직접 파을을 다운 받아서 설정하도록 하겠다.
A. 파일 Download 및 압축해제
$ wget http://nginx.org/download/nginx-1.9.4.tar.gz
$ tar xzf nginx-1.9.4.tar.gz
$ cd nginx-1.9.4
B. 설정
Nginx 설정은 configure를 통해서 진행한다.
$ ./configure
아래 명령은 별도 다시 실행하지 않으도 무관하다. 필자가 필요한 설정들을 정의해서 했던 부분인데, 기본적으로 아래처럼 하지 않아도 "/usr/local/nginx"이 디폴트로 설정되어 있기 때문에 디폴트 하위로 필요한 것들이 만들어지게 되어 있다.
$ ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/usr/local/nginx/log/error.log --http-log-path=/usr/local/nginx/log/access.log --pid-path=/usr/local/nginx/run/nginx.pid --lock-path=/usr/local/nginx/run/nginx.lock --http-client-body-temp-path=/usr/local/nginx/cache/client_body_temp --http-proxy-temp-path=/usr/local/nginx/cache/proxy-temp --http-fastcgi-temp-path=/usr/local/nginx/cache/fastcgi-temp --http-uwsgi-temp-path=/usr/local/nginx/cache/uwsgi-temp --http-scgi-temp-path=/usr/local/nginx/cache/scgi-temp --user=ec2-user --group=ec2-user
디폴트로 제공하는 옵션에서 제거하고 싶은 것은 --without 으로 제거하고, 기본 외에 추가로 필요한 것은 --with 옵션으로 지정해 주면 된다. 그 외 서드파티 모듈들은 서드파티 모듈을 다운로드 받아서 컴파일할 때 --add-module 옵션을 사용해서 같이 컴파일하면 된다. "./configure –help" 명령어로 다양한 옵션을 확인할 수 있다.
주요 옵션 설명
--prefix : Nginx 가 설치되는 기본 디렉토리 (/usr/local/nginx)
--sbin-path : 엔진엑스의 바이너리 파일이 설치되는 경로 (/sbin)
--conf-path : 주 환경 설정 파일의 경로 (/conf/nginx.conf)
--error-log-path : 에러 로그 파일 (/log/error.log)
--http-log-path : http 접근 로그의 위치 (/log/access.log)
--pid-path : 엔진엑스 pid 파일 경로 (/run/nginx.pid)
--lock-path : Nginx lock 경로 (/run/nginx.lock)
--with-per_modules_path : 펄 모듈의 경로
--http-client-body-temp-path : 클라이언트 요청에 의한 임시 파일의 저장에 사용되는 디렉토리 (/cache/client_body_temp)
--http-proxy-temp-path: 프록시가 사용하는 임시 파일 위치 (/cache/proxy-temp)
--http-fastcgi-temp-path: (/cache/fastcgi-temp)
--http-uwsgi-temp-path: (/cache/uwsgi-temp)
--http-scgi-temp-path: (/cache/scgi-temp)
--user: Nginx 사용자 (nginx), 지정하지 않으면 nobody
--group: Nginx 그룹 (nginx), 지정하지 않으면 nobody
C. 빌드
$ make
D. 인스톨
$ make install
컴파일된 리소스를 인스톨 디렉토리로 복사한다. 위에서 설정한 prefix 하위로 복사된다.
F. Start
인스톨까지 완료되면, "/usr/local/nginx/" 하위에 필요한 파일들이 만들어지고, Nginx가 실행될 준비가 완료된 것이다. /usr/local/nginx/sbin으로 이동한 후에 nginx를 실행하면 서버가 구동이 된다. EC2의 Public IP로 접속하면 아래와 같은 화면을 볼 수 있을 것이다.
$ cd /usr/local/nginx/sbin
$ ./nginx
댓글 없음:
댓글 쓰기