반응형

[ 설치 환경 ]

OS Centos 7.6
Nginx 1.18
PHP 7.3.5
MySQL 5.7.26

 3. Nginx 설치

Nginx 설치 링크 : http://nginx.org/download/

 

Index of /download/

 

nginx.org

wget 뒤에 해당 링크 주소 복사하시면 됩니다.

해당 링크주소는 시간이 지나면 변하기 때문에 직접 들어가서 다운로드하시는 걸 추천드립니다.

mkdir /root/src/
cd /root/src
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar xvfz nginx-1.18.0.tar.gz
cd nginx-1.18.0

 3-1. Nginx 컴파일

./configure --prefix=/opt/nginx --conf-path=/opt/nginx/conf/nginx.conf --sbin-path=/opt/nginx/sbin/nginx --lock-path=/opt/nginx/nginx.lock --pid-path=/opt/nginx/nginx.pid --http-client-body-temp-path=/opt/nginx/tmp/body --http-proxy-temp-path=/optl/nginx/tmp/proxy --http-fastcgi-temp-path=/opt/nginx/tmp/fastcgi --http-uwsgi-temp-path=/optl/nginx/tmp/uwsgi --http-scgi-temp-path=/opt/nginx/tmp/scgi --http-log-path=/opt/nginx/logs/access.log --error-log-path=/opt/nginx/logs/error.log --with-http_addition_module --with-http_degradation_module --with-http_flv_module --with-http_image_filter_module --with-http_mp4_module --with-http_random_index_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_realip_module --with-http_xslt_module --with-http_dav_module --with-http_auth_request_module --user=nginx --group=nginx


 3-2. Nginx 설치

make -j `grep processor /proc/cpuinfo | wc -l`; make install

위에 내용은 아래의 내용 참고 부탁드립니다.
make는 소스를 컴파일하는 명령어입니다. 
컴파일이란 것은 소스파일을 사용자가 실행 가능한 파일로 만들어 주는 과정입니다.
make install은 make를 통해 만들어진 설치 파일(setup)을 설치를 하는 과정입니다.
빠른 설치를 위해, CPU 사용을 MySQL사용에 집중적으로 설치할수 있도록 해당 명령어를 이용했습니다. 
-j : 옵션의 경우 job을 분산시킨다 
CPU 코어가 4개라면 , 한 번에 수행할수 있는 명령을 -J4으로 지정하여, 프로세스가 4개가 생성되어 병렬로 수행합니다. 명령수는 프로세스수로 정의


 3-3. Nginix / start / stop /restart 스크립트 생성

nginx소스에는 시작,중지 등의 스크립트가 없다 

cd /opt/nginx
touch nginx
vim 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="/opt/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/opt/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:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   if [ -n "$user" ]; then
      if [ -z "`grep $user /etc/passwd`" ]; then
         useradd -M -s /bin/nologin $user
      fi
      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
    fi
}

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
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 $prog -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 +x nginx
/opt/nginx/nginx start

 3-4. 방화벽 설정

Centos 7 기본 방화벽은 firewall 입니다.

웹서버를 외부에서 웹브라우저로 접속하기 위해서는 TCP 80 포트를 방화벽에서 열어줘야만 한다.

# 추가
firewall-cmd --permanent --zone=public --add-port=80/tcp

# 적용
firewall-cmd --reload

# 확인
firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno1
  sources: 
  services: ssh dhcpv6-client
  ports: 80/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

 3-5. nginx 실행

/opt/nginx/nginx start
Starting nginx:                                            [  OK  ]

 3-6. nginx 버전 확인

/opt/nginx/sbin/nginx -v
nginx version: nginx/1.18.0

여기까지 설정했다면 Nginx 웹서버 설치가 완료되었습니다.

이제 브라우저를 실행해 주소창에 IP를 입력하시면 Welcome to nginx! 라는 텍스트 문구가 나올겁니다.
이로서, Nginx 설치 완료되었습니다.
다음장에는 이어서 PHP 설치 진행하겠습니다.

정리.txt
0.00MB

 

반응형

'IT > Linux' 카테고리의 다른 글

CentOS Ioncube 설치  (0) 2021.02.21
Nginx + PHP + MySQL 소스 설치 (3)  (0) 2021.02.13
Nginx + PHP + MySQL 소스 설치 (1)  (0) 2021.02.13
리눅스 CentOS 7 설치  (0) 2021.02.13
Ubuntu 18.04 LTS 서버버전 설치  (0) 2021.01.31
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
});