Nginx 공식 다운로드 페이지: https://nginx.org/en/download.html
- 필수 의존성 설치
yum install gcc-c++ # C++ 컴파일러 설치
yum -y install pcre-devel openssl-devel # 정규식 및 SSL 라이브러리
yum -y install wget net-tools zlib-devel # 보조 도구 설치
- Nginx 소스 아카이브 다운로드
cd /usr/local/
wget https://nginx.org/download/nginx-1.28.3.tar.gz
- 압축 해제 및 디렉터리 이동
tar -zxvf nginx-1.28.3.tar.gz
cd nginx-1.28.3
- 설치 경로 설정 및 컴파일
./configure --prefix=/usr/local/nginx # 설치 위치 지정
make && make install # 빌드 및 설치
- 서비스 실행 및 확인
cd /usr/local/nginx/sbin
./nginx # 서비스 시작
ps -ef | grep nginx # 프로세스 확인
- 방화벽 설정
firewall-cmd --permanent --add-port=80-81/tcp
systemctl restart firewalld # 설정 적용
- 시스템 부팅 시 자동 실행 구성 7.1. init.d 스크립트 생성
cd /etc/init.d/
touch nginx # 초기화 스크립트 생성
다음 내용을 nginx 파일에 입력:
#!/bin/sh
#
# 웹 서버 관리 스크립트
#
# chkconfig: - 85 15
# description: HTTP(S) 서버 및 프록시 관리
# processname: web_server
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
[ "$NETWORKING" = "no" ] && exit 0
web_server="/usr/local/nginx/sbin/nginx"
service_name=$(basename $web_server)
CONFIG_FILE="/usr/local/nginx/conf/nginx.conf"
LOCK_FILE="/var/lock/subsys/nginx"
start() {
[ -x $web_server ] || exit 5
[ -f $CONFIG_FILE ] || exit 6
echo -n $"Starting $service_name: "
daemon $web_server -c $CONFIG_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $LOCK_FILE
return $retval
}
stop() {
echo -n $"Stopping $service_name: "
killproc $service_name -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $LOCK_FILE
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $service_name: "
killproc $web_server -HUP
RETVAL=$?
echo
}
configtest() {
$web_server -t -c $CONFIG_FILE
}
rh_status() {
status $service_name
}
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)
restart
;;
status)
rh_status
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload|configtest}"
exit 2
esac
7.2. 권한 설정 및 서비스 등록
chmod +x /etc/init.d/nginx # 실행 권한 부여
chkconfig --add nginx # 서비스 등록
chkconfig --level 345 nginx on # 부팅 시 자동 시작
- 경로 설정 변경 방법
cd /usr/local/nginx/conf
vi nginx.conf # 설정 파일 편집
서버 루트 경로 수정 예시:
server {
listen 80;
server_name example.com;
location / {
root /path/to/your/upload/directory;
index index.html;
}
}