Nginx 설치 및 설정 가이드
Nginx 설치 및 설정 가이드
Nginx는 고성능 웹 서버이자 리버스 프록시 서버입니다. 정적 파일 서빙과 로드 밸런싱에 뛰어난 성능을 보입니다.
설치
Amazon Linux / AWS에서 설치
sudo amazon-linux-extras install nginx1
sudo systemctl start nginx
CentOS/RHEL에서 설치
sudo yum install nginx -y
설정 파일 찾기
sudo find / -name 'nginx.conf'
sudo vi /etc/nginx/nginx.conf
서비스 관리
실행 상태 확인
ps -ef | grep nginx
nginx가 실행 중이 아니면 다음과 같은 결과만 출력됩니다:
devteam 8078 8013 0 05:57 pts/0 00:00:00 grep --color=auto nginx
서비스 시작
# 시스템에 따라 다른 방법 사용
/etc/init.d/nginx start
sudo service nginx start
systemctl start nginx # AWS Linux
서비스 재시작
/etc/init.d/nginx restart
sudo service nginx restart
systemctl restart nginx # AWS Linux
# Graceful reload (권장)
sudo systemctl reload nginx
설정 파일 구조
기본 구조
- Directive(지시문)는 항상
;로 끝납니다 - 설정 파일에서 access log와 error log 경로를 확인할 수 있습니다
Worker Process 설정
worker_processes auto; # 자동 설정
worker_processes 1; # 1개의 워커 프로세스
기본 HTML 파일 위치
server.root = /usr/share/nginx/html
로그 확인
sudo find / -name "access.log"
sudo tail -f /var/log/nginx/access.log
프록시 설정
기본 프록시 설정
기본 설정 파일에 proxy_pass 라인을 추가합니다:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
root /usr/share/nginx/html;
# 기본 서버 블록 설정 파일 로드
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
가상 호스트 (서브도메인) 프록시 설정
/etc/nginx/conf.d/virtual.conf 파일을 생성합니다:
server {
listen 80;
server_name jenkins.example.com;
location / {
proxy_pass http://127.0.0.1:9090;
}
}
설정 파일 분리 (Include)
다른 설정 파일을 포함할 수 있습니다:
include other_settings.conf;
활용 예시
여러 서비스를 하나의 서버에서 운영
# API 서버
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
# Admin 서버
server {
listen 80;
server_name admin.example.com;
location / {
proxy_pass http://127.0.0.1:9000;
}
}
# Jenkins
server {
listen 80;
server_name jenkins.example.com;
location / {
proxy_pass http://127.0.0.1:9090;
}
}
주의사항
- 설정 변경 후에는 반드시
reload또는restart를 해야 적용됩니다 reload는 graceful하게 설정을 적용하므로 서비스 중단 없이 변경 가능합니다- 문법 오류 검사:
nginx -t
Comments