터미널에서 저장소의 GPG 키를 설치하겠냐는 메시지가 표시됩니다. 필요하므로 Y를 선택하세요.
설치가 완료되면, 다음 명령을 사용하여 nginx 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정합니다:
sudosystemctlenable--nownginx
최신 버전의 Nginx가 설치되었는지 확인하려면 다음 명령을 실행하세요:
nginx-v
그런 다음, 간단한 정적 웹 사이트를 구축하기 위해 HTML 파일을 /usr/share/nginx/html/ 디렉토리에 넣을 수 있습니다. 기본 웹사이트/가상 호스트의 설정 파일은 "nginx.conf"로, /etc/nginx/에 있습니다. 이 파일에는 기본 Nginx 서버 설정 외에도 다른 여러 가지 설정이 포함되어 있습니다. 실제 웹 사이트 설정을 다른 파일로 이동하더라도 "nginx.conf"의 나머지 부분은 그대로 두는 것이 좋습니다.
LXD/LXC 또는 Docker와 같은 컨테이너에 Nginx를 설치하는 경우, 일단이 부분은 건너뛰어도 됩니다. 방화벽은 호스트 운영 체제에서 처리해야 합니다.
다른 컴퓨터에서 해당 장치의 IP 주소 또는 도메인 이름으로 웹 페이지를 보려고 시도하면 아무것도 표시되지 않을 것입니다. 왜냐하면 방화벽이 실행 중이기 때문입니다.
실제로 웹 페이지를 "보기" 위해 필요한 포트를 열기 위해 Rocky Linux의 내장 방화벽인 firewalld를 사용할 것입니다. 이를 수행하는 firewalld 명령은 firewall-cmd입니다. 두 가지 방법이 있습니다: 공식 방법과 메뉴얼 방법. 이 경우에는 공식 방법이 가장 좋지만, 차후 참고를 위해 두 가지 방법을 알아두는 것이 좋습니다.
공식 방법은 방화벽을 http 서비스에 개방하며, 당연히 웹 페이지를 처리하는 서비스입니다. 다음 명령을 실행하세요:
기본 디렉토리에 웹 사이트 파일을 놓고 가는 것도 가능하지만 (이는 컨테이너 내에서 실행되거나 테스트/개발 서버에서 실행될 때 Nginx에 대해서는 괜찮을 수 있습니다), 이는 우리가 베스트 프랙티스라고 부르지 않습니다. 대신, 웹 사이트를 위해 시스템에 특정한 Linux 사용자를 생성하고 해당 사용자를 위해 디렉토리를 만드는 것이 좋습니다.
여러 웹 사이트를 구축하려는 경우 조직화 및 보안을 위해 여러 사용자 및 루트 디렉토리를 생성하는 것이 좋습니다.
이 가이드에서는 "www"라는 멋진 사용자 하나만 만들 것입니다. 웹 사이트 파일을 어디에 둘지 결정하는 것은 더 복잡해집니다.
서버 설정에 따라 웹 사이트 파일을 여러 가지 위치에 둘 수 있습니다. 물리적인 서버 (bare-metal)에 있거나 VPS에 직접 nginx를 설치하는 경우 보안 강화된 Linux (SELinux)가 실행 중인 경우가 있습니다. SELinux는 기계를 보호하기 위해 많은 작업을 수행하지만 웹 페이지와 같은 특정 항목을 둘 수 있는 위치를 결정하기도 합니다.
따라서 기계에 직접 nginx를 설치하는 경우 웹 사이트를 기본 루트 폴더의 하위 디렉토리에 두는 것이 좋습니다. 이 경우 기본 루트는 /usr/share/nginx/html이므로 "www" 사용자의 웹 사이트는 /usr/share/nginx/html/www로 들어갈 수 있습니다.
그러나 LXD/LXC와 같은 컨테이너에서 nginx를 실행하는 경우 SELinux가 설치되지 않을 가능성이 높으며 파일을 원하는 위치에 둘 수 있습니다. 이 경우 일반적인 홈 폴더의 디렉토리 아래에 사용자의 모든 웹 사이트 파일을 두는 것이 좋습니다. 예를 들어 /home/www/와 같이 하위 디렉토리에 사용자의 웹 사이트 파일을 모두 두는 방식입니다.
하지만 이 가이드에서는 SELinux가 설치된 것으로 가정하고 진행하겠습니다. 사용 사례에 따라 필요한 부분을 변경하십시오. SELinux의 작동 방식에 대한 자세한 내용은 SELinux 학습 가이드에서 자세히 알아볼 수 있습니다.
새로운 멋진 사용자 계정을 갖게 되었으므로 nginx가 해당 폴더에서 웹 사이트 파일을 찾도록 설정해야 합니다. 즐겨 사용하는 텍스트 편집기를 다시 사용하십시오.
지금은 다음 명령을 실행하십시오:
sudonano/etc/nginx/conf.d/default.conf
파일이 열리면 root /usr/share/nginx/html;과 비슷한 라인을 찾으세요. 이를 원하는 웹사이트 루트 폴더로 변경합니다. 예를 들어, root /usr/share/nginx/html/www; 로 변경하거나 (또는 저처럼 nginx를 컨테이너에서 실행 중인 경우 /home/www로 변경합니다.) 파일을 저장하고 닫은 다음 nginx 구성을 테스트하여 세미콜론을 누락하지 않았는지 등을 확인합니다.
nginx-t
다음과 같은 성공 메시지가 표시되면 모든 것이 올바르게 진행된 것입니다:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
그런 다음 다음 명령으로 서버에 소프트 재시작을 수행하십시오:
sudosystemctlreloadnginx
참고 사항
소프트 재시작이 작동하지 않을 경우 다음 명령으로 nginx를 강제로 재시작할 수 있습니다: