Linux WEB

Nginx 설치

2012.08.31 18:59

호스트웨이 조회 수:14900

1. Source Download

· http://nginx.org/download/

설치전 라이브러리 install

· # yum -y install gcc pcre-devel bzip2-devel openssl-dev libxml2-devel gdbm-devel libjpeg-devel libpng-devel freetype-devel apr ncurses-devel

 

# cd /usr/local/src

# wget http://nginx.org/download/nginx-1.0.11.tar.gz

# tar xvfzp nginx-1.0.11.tar.gz

# cd /usr/local/src/nginx-1.0.11

# ./configure --prefix=/usr/local/nginx --with-http_ssl_module

# make

# make install 

 

 

· init.d 데몬 작성

· # vi /etc/rc.d/init.d/nginx

 

#!/bin/sh

#

# nginx - this script starts and stops the nginx daemon

#

# chkconfig:   - 85 15 

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \

#               proxy and IMAP/POP3 proxy server

# processname: nginx

# config:      /etc/nginx/nginx.conf

# config:      /etc/sysconfig/nginx

# pidfile:     /var/run/nginx.pid

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs() {

   # make required directories

   user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`

   options=`$nginx -V 2>&1 | grep 'configure arguments:'`

   for opt in $options; do

       if [ `echo $opt | grep '.*-temp-path'` ]; then

           value=`echo $opt | cut -d "=" -f 2`

           if [ ! -d "$value" ]; then

               # echo "creating" $value

               mkdir -p $value && chown -R $user $value

           fi

       fi

   done

}

start() {

    [ -x $nginx ] || exit 5

    [ -f $NGINX_CONF_FILE ] || exit 6

    make_dirs

    echo -n $"Starting $prog: "

    daemon $nginx -c $NGINX_CONF_FILE

    retval=$?

    echo

    [ $retval -eq 0 ] && touch $lockfile

    return $retval

}

stop() {

    echo -n $"Stopping $prog: "

    killproc $prog -QUIT

    retval=$?

    echo

    [ $retval -eq 0 ] && rm -f $lockfile

    return $retval

}

restart() {

    configtest || return $?

    stop

    sleep 1

    start

}

reload() {

    configtest || return $?

    echo -n $"Reloading $prog: "

    killproc $nginx -HUP

    RETVAL=$?

    echo

}

force_reload() {

    restart

}

configtest() {

  $nginx -t -c $NGINX_CONF_FILE

}

rh_status() {

    status $prog

}

rh_status_q() {

    rh_status >/dev/null 2>&1

}

case "$1" in

    start)

        rh_status_q && exit 0

        $1

        ;;

    stop)

        rh_status_q || exit 0

        $1

        ;;

    restart|configtest)

        $1

        ;;

    reload)

        rh_status_q || exit 7

        $1

        ;;

    force-reload)

        force_reload

        ;;

    status)

        rh_status

        ;;

    condrestart|try-restart)

        rh_status_q || exit 0

            ;;

    *)

        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

        exit 2

esac

 

스크립트 실행 권한 추가

· # chmod 755 /etc/rc.d/init.d/nginx

 

chkconfig 통한 시작 프로그램 추가 등록

# chkconfig --add level 35 nginx

# chkconfig --list | grep nginx

nginx           0:off   1:off   2:off   3:on    4:off   5:on    6:off

 

설정 파일 수정

# vi /usr/local/nginx/conf/nginx.conf

user  nginx nginx; 

error_log  /var/log/nginx/error.log;   # 에러로그 위치

events { 

    worker_connections  1024;     # 커넥션 임계치

http { 

    include       mime.types; 

    default_type  application/octet-stream; 

 

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' 

                      '$status $body_bytes_sent "$http_referer" ' 

                      '"$http_user_agent" "$http_x_forwarded_for"'; 

 

    access_log  /var/log/nginx/access.log  main; 

 

    sendfile       on; 

    tcp_nopush     on; 

    server { 

        listen       80; 

        server_name  localhost;   # 도메인 이름

        location / { 

            root   /var/www/html    # 홈디렉토리

            index  index.html index.htm;  #  index 형식 지정

        } 

        error_page   500 502 503 504  /50x.html; 

        location = /50x.html { 

            root   html; 

        } 

    } 

}

 

# /etc/rc.d/init.d/nginx start

        # ps -aux | grep nginx


번호 제목 글쓴이 날짜 조회 수
83 PHP 컴파일시 에러 메세지가 나오는 경우 조치방법-2 호스트웨이 2012.12.20 6132
82 Alternative PHP Cache 설치 & 설정 호스트웨이 2015.09.18 6520
81 apache 쓸모없는 로그 남기지 않는 방법. 호스트웨이 2012.12.28 6760
80 CentOS6 64bit openssl 설치시 에러 조치사항 호스트웨이 2012.11.02 7609
79 failed to open stream: Too many open files in 에러메시지 출력 시 해결방법 호스트웨이 2012.10.03 7626
78 Indexes 값 제거 호스트웨이 2015.09.18 7916
77 cronlog 설정 호스트웨이 2015.09.18 8050
76 아파치 특정폴더에 암호걸기 호스트웨이 2012.12.28 8167
75 Ubuntu 아파치 웹서버에서 index.php 다운로드 창이 뜰 경우 호스트웨이 2012.12.13 8245
74 외부 링크 도용을 막기 위한 아파치 설정 호스트웨이 2015.09.11 8426
73 64bit 에서 php 컴파일시 에러 메세지 발생 시 대처방법-3 호스트웨이 2012.12.28 8587
72 웹페이지에 사용자 인증 사용하기 호스트웨이 2012.05.18 8972
71 웹부하 테스트 - httperf 호스트웨이 2015.09.18 8994
70 Apache 동시접속자 수 알아내기 호스트웨이 2015.09.13 9315
69 apache 구동시 "파일 크기 제한을 초과함 $HTTPD -DSSL" 에러메시지 출력에 대한 해결방법 호스트웨이 2012.10.11 9405
68 SSL config error 조치사항 호스트웨이 2012.06.29 9632
67 [Apache] Image 관련 Log 남기지 않기 호스트웨이 2012.07.13 9705
66 PHP 업로드 파일 용량 제한 설정 호스트웨이 2012.07.06 10044
65 apache ssl 시작시 오류 메세지 호스트웨이 2012.05.11 10058
64 WEB에 특정 IP접근 차단 호스트웨이 2015.09.10 10082