Nginx 컴파일 설치 - download 와 build script
- CentOS 6,7 버젼을 기준으로 작성되었습니다.
- yum install 이 아닌 Nginx build 설치 방법에 대해서 작성합니다.
- root 계정이 아닌 일반 계정으로 설치하는 방법에 대해서 정리한다.
- 일반 사용자 계정이기 때문에 configure 파일을 다르게하여 여러개의 인스턴스를 올릴 수 있다는 장점이 있다.
Nginx 및 필수파일 다운로드
- Nginx
$> wget http://nginx.org/download/nginx-1.14.0.tar.gz - zlib
$> wget http://zlib.net/zlib-1.2.11.tar.gz - pcre
$> wget http://downloads.sourceforge.net/project/pcre/pcre/8.41/pcre-8.41.tar.gz - openssl
* $> wget http://www.openssl.org/source/openssl-1.0.2f.tar.gz
- 각 파일을 같은 폴더에 풀어준다.
Ngins 및 필수파일 Download script
- 어차피 위에서 긁어서 사용하는거 shell script 파일로 제공해준다.
- download.nginx.build.files.sh
#!/usr/bin/env bash
NGINX_ROOT_PATH=~/nginx
NGINX_LIBS_PATH=$NGINX_ROOT_PATH/libs
-f $NGINX_LIBS_PATH || mkdir -p $NGINX_LIBS_PATH
(cd $NGINX_LIBS_PATH &&
wget http://nginx.org/download/nginx-1.14.0.tar.gz
tar -xvf nginx-1.14.0.tar.gz &
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -xvf zlib-1.2.11.tar.gz &
wget http://downloads.sourceforge.net/project/pcre/pcre/8.41/pcre-8.41.tar.gz
tar -xvf pcre-8.41.tar.gz &
wget http://www.openssl.org/source/openssl-1.0.2f.tar.gz
tar -xvf openssl-1.0.2f.tar.gz
)
Nginx 빌드하기
- 다운로드한 nginx 파일을 압축풀면 configure 파일이 생긴다. 해당 파일로 설정을 한 뒤 빌드를 진행 할 수 있다.
- 예제 build.nginx.sh
#!/usr/bin/env bash
NGINX_ROOT_PATH=~/nginx
NGINX_CONF_PATH=$NGINX_ROOT_PATH/conf
NGINX_PID_PATH=$NGINX_ROOT_PATH/pid
NGINX_ACCESS_LOG_PATH=$NGINX_ROOT_PATH/log
NGINX_ERROR_LOG_PATH=$NGINX_ROOT_PATH/log
NGINX_LIBS_PATH=$NGINX_ROOT_PATH/libs
NGINX_ADDITIONAL_MODULE_PATH=$NGINX_ROOT_PATH
-f $NGINX_ROOT_PATH || mkdir -p $NGINX_ROOT_PATH
-f $NGINX_CONF_PATH || mkdir -p $NGINX_CONF_PATH
-f $NGINX_PID_PATH || mkdir -p $NGINX_PID_PATH
-f $NGINX_ACCESS_LOG_PATH || mkdir -p $NGINX_ACCESS_LOG_PATH
-f $NGINX_ERROR_LOG_PATH || mkdir -p $NGINX_ERROR_LOG_PATH
-f $NGINX_LIBS_PATH || mkdir -p $NGINX_LIBS_PATH
-f $NGINX_ADDITIONAL_MODULE_PATH || mkdir -p $NGINX_ADDITIONAL_MODULE_PATH
(cd $NGINX_LIBS_PATH/nginx-1.14.0 &&
./configure \
--sbin-path=$NGINX_ROOT_PATH/ \
--conf-path=$NGINX_CONF_PATH/nginx.conf \
--pid-path=$NGINX_PID_PATH/nginx.pid \
--error-log-path=$NGINX_ERROR_LOG_PATH/error.log \
--http-log-path=$NGINX_ACCESS_LOG_PATH/access.log \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-stream=dynamic \
--with-pcre=$NGINX_LIBS_PATH/pcre-8.41 \
--with-zlib=$NGINX_LIBS_PATH/zlib-1.2.11 \
--with-openssl=$NGINX_LIBS_PATH/openssl-1.0.2f \
--prefix=$NGINX_ADDITIONAL_MODULE_PATH && # module 위치 설정.
make install)
- 만약 80 port 를 사용하고 싶다면 빌드 결과물인 nginx 파일을 root 권한으로 변경해줘야 한다.
Nginx start & shutdown 실행파일
- 여러개의 nginx 인스턴스를 올릴수 있는데, conf 파일을 조정하고 중복되는 port 가 없어야 한다.
- startup.nginx.sh
#!/usr/bin/env bash
NGINX_ROOT_PATH=~/nginx
NGINX_CONF_PATH=$NGINX_ROOT_PATH/conf
NGINX_PID_PATH=$NGINX_ROOT_PATH/pid
NGINX="$NGINX_ROOT_PATH/nginx"
CONF="$NGINX_CONF_PATH/nginx.conf"
PID_FILE="$NGINX_PID_PATH/nginx.pid"
PID=`cat $PID_FILE`
nginx_pnum=`pgrep -f nginx | grep $PID | wc -l`
if [ $nginx_pnum -gt 0 ] ; then
$NGINX -s reload -c $CONF
else
$NGINX -c $CONF
fi
#!/usr/bin/env bash
NGINX_ROOT_PATH=~/nginx
NGINX_CONF_PATH=$NGINX_ROOT_PATH/conf
NGINX="$NGINX_ROOT_PATH/nginx"
CONF="$NGINX_CONF_PATH/nginx.conf"
$NGINX -c $CONF -s stop
- 참조 : https:/bkim.tistory.com/12
- 참조 : http:/nginx.org/en/docs/configure.html
'환경' 카테고리의 다른 글
[Nginx] 설정 Cache (12) | 2019.01.09 |
---|---|
[Nginx] 설정 log (12) | 2019.01.09 |
docker compose 사용법 간단 정리. (13) | 2018.02.23 |
Jenkins 배포시 broken pipe 문제 (13) | 2016.12.15 |
Spring Boot 에서 내장 톰켓이 아닌 외장 톰켓 사용하기 (12) | 2016.11.15 |
댓글