Nginx 설치
우분투(Debian 계열)에서
sudo apt install nginx
Amazon Linux(RHEL 계열)에서
sudo yum install nginx
실행
일반실행으로 실행
nginx 실행파일을 실행.
이후 명령은 이걸 실행한 사용자와 같은 사용자로 실행한다.(그런데 권한 때문에 귀찮아서 그냥 sudo로만 하게 된다….)
nginx
nginx -s stop
— 즉시 종료nginx -s quit
— 현재 처리중인 요청들이 끝난 뒤 종료nginx -s reload
— 설정파일 다시 가져오기nginx -s reopen
— 로그파일 다시열기
서비스로 시작
sudo systemctl start nginx
- 자동으로 시작되도록 설정:
sudo systemctl enable nginx
- 재시작:
sudo systemctl restart nginx
- 종료:
nginx -s quit
로그파일
실행 후 /var/log/nginx
경로에 access.log
, error.log
파일이 생기는군요.
설정
설정파일
apt, yum 등의 패키지 관리자를 통해 설치한 경우 /etc/nginx/nginx.conf
위치에 메인 설정파일이 있다.
/etc/nginx/sites-available/default
: 서버블록 설정파일이다. 우분투에서 Nginx를 설치해보니 기본적으로 메인 설정파일에서 분리되어 있다. 조금 찾아보니 각 server 블록을 분리해서 별도 디렉토리에 보관하는 게 일반적인 관습인 듯하다. 그런데 Amazon Linux에서도 깔아봤는데 이거 없던데. 왜 다른지 모름.
vi, nano 등의 편집기로 설정파일을 편집하자.
예시
정적 콘텐츠 제공 서버
특정 디렉토리 하위의 파일들을 제공하도록 설정
디렉토리
/data/www
경로에 예를 들어 HTML 파일들을 배치/data/images
경로에 예를 들어 이미지 파일들을 배치
설정파일
설정 파일 안의 server
블록 안에 아래와 같이 location
블록 추가
server {
...
location / { # 1
root /data/www;
}
location /images/ { # 2
root /data;
}
}
이제 /images/
로 시작하는 경로의 요청은 #2에 매칭, 그밖의 요청들은 #1에 매칭된다.
Hello World
루트 페이지에서 index.html
파일을 불러오도록 설정한다.
index.html
/var/www/html
경로에 index.html
파일을 만든다. 간단히 Hello World라고만 적힌 문서이다.
sudo mkdir -p /var/www/html
echo '<!DOCTYPE html><html><head><title>Hello World</title></head><body><h1>Hello, World!</h1></body></html>' | sudo tee /var/www/html/index.html
설정파일
설정 파일 안의 location /
블록 안을 아래와 같이 수정
server {
...
location / {
root /var/www/html;
index index.html;
}
}
확인
실행 후 브라우저로 해당 주소에 접근한다.