728x90
반응형
사전 준비
소스 코드를 컴파일하려면 C 컴파일러와 Nginx 의존성 라이브러리가 필요합니다.
sudo dnf groupinstall "Development Tools" -y
sudo dnf install pcre-devel zlib-devel openssl-devel -y
1. Nginx 소스 다운로드 및 로컬 설치
설치하려는 디렉토리로 이동해서 Nginx 를 다운로드 받아 아래 절차에 따라 설치를 진행 합니다.
# 1. 홈 디렉토리로 이동
cd /home/qadoc/
# 2. Nginx 소스 다운로드 (최신 안정화 버전 1.24.0 기준, 필요시 버전 변경)
wget http://nginx.org/download/nginx-1.24.0.tar.gz
# 3. 압축 해제 및 폴더 이동
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0/
# 4. 설치 환경 설정 (configure)
# --prefix 옵션이 핵심입니다. 이 경로에 Nginx가 설치됩니다.
# 홈 디렉토리 아래의 nginx 이라는 폴더에 설치하도록 지정합니다.
./configure --prefix=$HOME/nginx --with-http_ssl_module
# 5. 컴파일 및 설치
make
make install
- 설치가 완료 되면 다운로드 받은 파일은 삭제 해도 됩니다.

2. Nginx 설정 변경 (포트 및 경로 설정)
일반 사용자는 1~1023번(Well-known ports, 예: 80, 443) 포트를 사용할 수 없습니다.
따라서 1024번 이상의 포트(예: 8080, 8888 등)로 설정해야 합니다.
로컬에 설치된 Nginx의 설정 파일을 엽니다.
vi ~/nginx/conf/nginx.conf
- nginx.conf
# worker 프로세스 설정 (로컬 계정이므로 user 지시어는 사용하지 않음)
worker_processes 1;
# 에러 로그 경로 (로컬 폴더 내에 저장됨)
error_log logs/error.log;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
# 접근 로그 경로
access_log logs/access.log;
sendfile on;
keepalive_timeout 65;
server {
# 일반 사용자가 열 수 있는 포트 (예: 8081)
listen 8081;
server_name localhost;
# MkDocs 빌드 파일이 위치할 절대 경로 지정
# (예: /home/myuser/mkdocs_site)
location / {
root /home/qadoc/mkdocs_site;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
- 파일 설정이 완료 되었다면 설정상 문제 가 없는지 아래 명령으로 확인 합니다.
$ ~/nginx/sbin/nginx -t
nginx: the configuration file /home/qadoc/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /home/qadoc/nginx/conf/nginx.conf test is successful
- 명령
# 설정 파일 문법 테스트
~/nginx/sbin/nginx -t
# Nginx 백그라운드 실행
~/nginx/sbin/nginx
# Nginx 프로세스 확인(정상 기동)
ps -ef | grep nginx
- Nginx 기동/중지 스크립트 작성
- 조작을 쉽게 하기위해 스크립트를 만듭니다.
- 사용 방법
- 시작: ./manage_nginx.sh start
- 중지: ./manage_nginx.sh stop
- 설정 재적용: ./manage_nginx.sh reload
- 재시작: ./manage_nginx.sh restart
- 상태 확인: ./manage_nginx.sh status
- 이제부터는 복잡한 경로를 입력할 필요 없이, 아래처럼 스크립트 하나로 Nginx를 쉽게 제어할 수 있습니다.
#!/bin/bash
# Nginx 실행 파일 경로를 변수로 지정합니다.
# 경로가 다르다면 이 부분을 수정해 주세요.
NGINX_BIN="$HOME/nginx/sbin/nginx"
# 실행 인자($1)가 없는 경우 안내 메시지를 출력합니다.
if [ -z "$1" ]; then
echo "사용법: $0 {start|stop|reload|restart|status}"
exit 1
fi
case "$1" in
start)
echo "Nginx를 시작합니다..."
$NGINX_BIN
echo "완료."
;;
stop)
echo "Nginx를 중지합니다..."
$NGINX_BIN -s stop
echo "완료."
;;
reload)
echo "Nginx 설정을 무중단으로 재적용합니다..."
$NGINX_BIN -s reload
echo "완료."
;;
restart)
echo "Nginx를 재시작합니다..."
$NGINX_BIN -s stop
sleep 2 # 프로세스가 완전히 죽을 때까지 2초 대기
$NGINX_BIN
echo "완료."
;;
status)
# 1. 현재 쉘을 실행 중인 사용자 이름 가져오기
CURRENT_USER=$(whoami)
# 2. 본인 계정($CURRENT_USER)으로 실행된 nginx 마스터 프로세스 찾기
# (grep "[n]ginx" 기법을 사용하여 grep 명령어 자체는 결과에서 제외)
NGINX_PS=$(ps -u "$CURRENT_USER" -o pid,user,args | grep "[n]ginx: master process")
# 3. 결과 문자열의 길이가 0이 아니면(-n) 실행 중인 것으로 판단
if [ -n "$NGINX_PS" ]; then
echo "현재 Nginx가 [실행 중]입니다."
echo "--- [프로세스 정보] ---"
echo " PID USER COMMAND"
# 본인 계정의 전체 nginx 프로세스(master + worker 등)를 깔끔하게 출력
ps -u "$CURRENT_USER" -o pid,user,args | grep "[n]ginx"
echo "-----------------------"
else
echo "현재 Nginx가 [중지] 상태입니다."
fi
;;
*)
echo "지원하지 않는 명령어입니다: $1"
echo "사용법: $0 {start|stop|reload|restart|status}"
exit 1
;;
esac

1. 기존 서비스 중지 및 삭제
sudo systemctl stop gitlab-runner
sudo gitlab-runner uninstall
2. 새로운 토큰으로 Runner 등록
올려주신 명령어에 sudo와 --executor shell 옵션을 추가하여 한 번에 등록을 끝냅니다.
sudo gitlab-runner register \
--url "http://192.168.11.11:9820" \
--token "glrt-xLXY_4xTc0Qafddpwuf" \
--executor "shell"
3. 계정으로 서비스 설치 및 시작
여기가 핵심입니다. 러너를 다시 시스템 서비스로 등록할 때, 실행 주체(--user)를 qadoc으로 지정하고 작업 폴더도 qadoc의 홈 디렉토리로 맞춰줍니다.
sudo gitlab-runner install --user qadoc --working-directory /home/qadoc
sudo systemctl start gitlab-runner
sudo systemctl enable gitlab-runner728x90
반응형
'04.DevTools' 카테고리의 다른 글
| [Jenkins] docker compose Jenkins Install 가이드 (1) | 2025.09.22 |
|---|---|
| [SVN] SVN 사용법 (0) | 2024.11.14 |
| [IntelliJ] Intellij Gitlab 연동 (0) | 2024.08.16 |
| [Nexus]Centos7 nexus 설치 및 이클립스 연동 (0) | 2022.04.21 |
