Nginx 공식 저장소를 사용하여 최신 안정(Stable) 버전을 설치하는 것을 기준으로 설명합니다.
1단계: 시스템 업데이트
먼저, 패키지 목록과 시스템을 최신 상태로 업데이트합니다.
sudo dnf update -y
2단계: Nginx 공식 저장소 설정 getRepository
Rocky Linux의 기본 저장소에도 Nginx가 포함되어 있을 수 있지만, 최신 버전을 사용하려면 Nginx 공식 저장소를 추가하는 것이 좋습니다.
- Nginx 저장소 파일 생성
vi
나nano
같은 텍스트 편집기를 사용하여/etc/yum.repos.d/nginx.repo
파일을 생성합니다.sudo vi /etc/yum.repos.d/nginx.repo
- 저장소 내용 추가
다음 내용을 파일에 붙여넣습니다. 이 설정은 Nginx 안정(Stable) 버전을 사용하도록 합니다. ($releasever
는 Rocky Linux 버전에 맞게 자동으로 대체됩니다.)[nginx-stable]
name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true - 파일 저장 및 종료
vi
:Esc
누르고:wq
입력 후Enter
.nano
:Ctrl + X
누르고Y
누르고Enter
.
- (선택 사항) 기본 Nginx 모듈 비활성화:
만약 Rocky Linux의 기본 저장소에nginx
모듈이 있고, Nginx 공식 저장소 버전과 충돌할 가능성이 있다면, 다음 명령어로 기본 모듈을 비활성화하는 것이 좋습니다.sudo dnf module disable nginx -y
3단계: Nginx 설치
이제 Nginx 저장소가 준비되었으므로, dnf
를 사용하여 Nginx를 설치합니다.
sudo dnf install nginx -y
설치가 완료되면 Nginx가 시스템에 설치됩니다.
4단계: Nginx 서비스 시작 및 활성화
Nginx를 설치한 후에는 서비스를 시작하고, 시스템 부팅 시 자동으로 시작되도록 활성화해야 합니다.
- Nginx 시작
sudo systemctl start nginx
- Nginx 부팅 시 자동 시작 활성화
sudo systemctl enable nginx
- Nginx 상태 확인
서비스가 정상적으로 실행 중인지 확인합니다.출력 결과에서Active: active (running)
이라는 메시지가 보이면 성공적으로 실행된 것입니다.sudo systemctl status nginx
5단계: 방화벽 설정
Rocky Linux는 기본적으로 firewalld
방화벽을 사용합니다. 웹 서버인 Nginx에 외부에서 접근할 수 있도록 HTTP(80번 포트)와 HTTPS(443번 포트)를 허용해야 합니다.
- HTTP 허용
sudo firewall-cmd --permanent --add-service=http
- HTTPS 허용 (SSL/TLS 사용할 경우)
sudo firewall-cmd --permanent --add-service=https
- 방화벽 설정 다시 로드
변경된 설정을 적용합니다.sudo firewall-cmd --reload
6단계: 설치 확인
모든 설정이 완료되었습니다. 이제 웹 브라우저를 열고 주소창에 서버의 IP 주소를 입력하여 Nginx 환영 페이지가 나타나는지 확인합니다.
- 서버의 IP 주소 확인 방법:
ip a
웹 브라우저에서 http://<서버_IP_주소>
로 접속했을 때 "Welcome to nginx!" 페이지가 보이면 성공적으로 설치 및 설정된 것입니다.
7단계: 도메인 셋팅 (lets.ai.kr)
가정
- Nginx가 이미 설치되어 있고 실행 중입니다.
lets.ai.kr
도메인의 DNS A 레코드가 이 서버의 공인 IP 주소를 가리키고 있습니다.- 웹사이트 파일은
/var/www/lets.ai.kr/html
디렉토리에 위치할 예정입니다. (이 경로는 필요에 따라 변경할 수 있습니다.)
웹사이트 디렉토리 생성 및 기본 페이지 추가
먼저 lets.ai.kr
도메인을 위한 파일을 저장할 디렉토리를 만들고, Nginx가 접근할 수 있도록 권한을 설정합니다. 테스트를 위해 간단한 index.html
파일도 생성합니다.
- 디렉토리 생성
sudo mkdir -p /var/www/lets.ai.kr/html
- 권한 설정
Nginx 프로세스(보통nginx
사용자)가 이 디렉토리를 읽을 수 있도록 소유권을 변경합니다.- (SELinux 사용 시): 만약 SELinux가 활성화되어 있다면, 웹 콘텐츠 컨텍스트를 설정해야 할 수도 있습니다.
sudo chcon -t httpd_sys_content_t /var/www/lets.ai.kr -R
sudo chown -R nginx:nginx /var/www/lets.ai.kr
- (SELinux 사용 시): 만약 SELinux가 활성화되어 있다면, 웹 콘텐츠 컨텍스트를 설정해야 할 수도 있습니다.
- 테스트용
index.html
생성sudo echo "<h1>Welcome to lets.ai.kr</h1>" > /var/www/lets.ai.kr/html/index.html
Nginx 설정 파일 생성
Rocky Linux에서는 /etc/nginx/conf.d/
디렉토리에 .conf
확장자를 가진 파일을 만들면 Nginx가 자동으로 로드합니다. 각 도메인마다 별도의 설정 파일을 만드는 것이 좋습니다.
sudo vi /etc/nginx/conf.d/lets.ai.kr.conf
서버 블록(Server Block) 설정 추가
위에서 생성한 lets.ai.kr.conf
파일에 다음 내용을 입력합니다. 이 설정은 HTTP (80번 포트) 요청을 처리합니다.
server {
# 80번 포트에서 IPv4 및 IPv6 요청 수신
listen 80;
listen [::]:80;
# 이 서버 블록이 처리할 도메인 이름 지정
# www.lets.ai.kr 로 접속해도 처리하도록 추가
server_name lets.ai.kr www.lets.ai.kr;
# 웹사이트 파일이 있는 루트 디렉토리 지정
root /var/www/lets.ai.kr/html;
# 기본으로 보여줄 파일 지정
index index.html index.htm;
# 모든 요청에 대한 기본 처리 방식
location / {
# 요청된 파일($uri)이나 디렉토리($uri/)가 있으면 보여주고, 없으면 404 오류 반환
try_files $uri $uri/ =404;
}
# 접근 로그와 오류 로그 파일 경로 지정 (선택 사항이지만 권장)
access_log /var/log/nginx/lets.ai.kr.access.log;
error_log /var/log/nginx/lets.ai.kr.error.log;
}
파일을 저장하고 종료합니다.
Nginx 설정 테스트
새로운 설정을 적용하기 전에, 문법적인 오류가 없는지 반드시 테스트합니다.
sudo nginx -t
다음과 같은 메시지가 나오면 성공입니다.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
만약 오류가 발생하면, 오류 메시지에 나온 파일과 줄 번호를 참고하여 lets.ai.kr.conf
파일을 수정하십시오.
Nginx 재시작
설정 테스트가 성공적으로 완료되면, Nginx를 재시작하여 변경된 설정을 적용합니다.
sudo systemctl restart nginx
웹브라우저 확인
이제 웹 브라우저에서 http://lets.ai.kr
또는 http://www.lets.ai.kr
로 접속하여 "Welcome to lets.ai.kr" 메시지가 보이는지 확인합니다.
⭐️ 최종 단계: HTTPS 설정 (강력 권장)
현재 설정은 HTTP(80번 포트)만 처리합니다. 보안을 위해 반드시 HTTPS(443번 포트)를 설정하는 것이 좋습니다.
Let's Encrypt를 사용하면 무료로 SSL/TLS 인증서를 발급받고 HTTPS를 설정할 수 있습니다.
Certbot 도구를 사용하면 Let's Encrypt 인증서 발급과 Nginx HTTPS 설정(HTTP를 HTTPS로 자동 리디렉션 포함)을 쉽게 자동화할 수 있습니다.
Certbot 설치 및 실행
- Certbot 설치
sudo dnf install certbot python3-certbot-nginx -y
- Certbot 실행 (Nginx 플러그인 사용)
sudo certbot --nginx -d lets.ai.kr -d www.lets.ai.kr
Certbot의 안내에 따라 이메일 주소를 입력하고 약관에 동의하면, 인증서 발급 및 Nginx 설정 업데이트가 자동으로 진행됩니다. Certbot은 위에서 만든 lets.ai.kr.conf
파일을 수정하여 HTTPS 설정을 추가하고, HTTP 요청을 HTTPS로 리디렉션하는 설정도 추가해 줍니다.
Certbot 설치시 오류 해결
만약 Error: Unable to find a match: certbot python3-certbot-nginx 오류가 발생한다면, dnf 패키지 관리자가 현재 설정된 저장소에서 certbot과 python3-certbot-nginx 패키지를 찾을 수 없다는 의미입니다. 이는 Rocky Linux의 기본 저장소에는 이 패키지들이 포함되어 있지 않기 때문입니다. Certbot을 설치하려면 보통 EPEL(Extra Packages for Enterprise Linux) 저장소를 추가해줍니다.
- EPEL 저장소 설치
sudo dnf install epel-release -y
- DNF 캐시 업데이트 (선택 사항이지만 권장)
sudo dnf clean all sudo dnf makecache
- Certbot 및 Nginx 플러그인 설치 (재시도)
이제 EPEL 저장소가 추가되었으므로, 다시 설치를 시도합니다.이제 패키지를 찾아서 설치가 진행되어야 합니다.sudo dnf install certbot python3-certbot-nginx -y
'Cook Server' 카테고리의 다른 글
Rocky 리눅스에 PostgreSQL을 설치하기 (0) | 2025.05.28 |
---|---|
Rocky 리눅스의 호스트 이름 변경하는 법 (0) | 2025.05.27 |
Rocky 리눅스 SSH 보안 강화: 포트 변경 및 Root 로그인 금지 방법 (0) | 2025.05.27 |