Ubuntu 16.04에 Nginx 설치하기
Ubuntu 16.04에 Nginx를 설치하는 방법은 매우 간단합니다. 바로 다음과 같은 명령어를 이용하면 됩니다.
sudo apt-get install nginx
nginx는 처음 설치했을 때 기본적인 환경 설정 파일의 경로가 /etc/nginx/sites-available/default입니다. 따라서 웹 서버의 루트 디렉토리 변경 등의 작업이 필요하다면, 이 경로에 들어가시면 됩니다. 저는 root 폴더의 디렉토리(Directory)를 변경해보겠습니다. 저는 /home/web으로 변경했습니다.
설정하실 때 세미콜론(;)을 넣는 것을 잊지 말아주세요!
이제 /home/web 디렉토리에 index.html라는 파일을 만들어서 Hello World라고 작성해보았습니다. 그리고 nginx를 재시작해주시면 됩니다.
sudo service nginx restart
접속 결과 매우 정상적으로 잘 동작합니다.
※ SSL 설치 ※
Nginx의 설정 파일은 /etc/nginx에 위치합니다. 여기에서 nginx.conf 파일을 열어 보시면 다음과 같이 conf.d 폴더 안에 있는 .conf 확장자를 모두 설정 파일로 설정하는 것을 확인할 수 있습니다. 따라서 conf.d 폴더 안에 server.conf와 같은 파일을 만들어서 설정하는 방식도 가능합니다.
하지만 우리는 아까 수정했던 /etc/nginx/sites-available/default 파일 하나만 작업하여, 모든 설정을 마치도록 할 것입니다. 일단 http로 접속한 경우 항상 https로 리다이렉트 될 수 있도록 할 것입니다. 또한 SSL 인증서의 공개키 및 개인키의 경로를 설정하여 (사전에 SSL 인증서를 발급 받아야 합니다.) 정상적으로 https로 접속했을 때 SSL이 적용된 페이지가 등장할 수 있도록 할 것입니다.
따라서 /etc/nginx/site-available/default의 server 항목을 다시 수정합니다. 총 2개의 server 항목이 존재할 수 있도록 만듭니다. 아래 코드와 같이 기본적으로 443 포트를 사용하도록 하고, 추가적으로 80번 포트로의 접속은 https로 리다이렉트 시키도록 작업하면 됩니다.
server {
listen 443;
server_name {도메인 주소 1} {도메인 주소 2};
ssl on;
ssl_certificate {공개키 경로};
ssl_certificate_key {개인키 경로};
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
root {웹 루트 경로};
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 80;
server_name {도메인 주소 1} {도메인 주소 2};
return 301 https://{도메인 주소};
}
저는 다음과 같이 /etc/nginx/sites-available/default 파일을 수정했습니다.
다시 Nginx 서버를 재구동 시켜 보니, 다음과 같이 정상적으로 동작하는 것을 확인할 수 있었습니다.
※ 인증서 갱신 관련 문제 ※
다만 Let's Encrypt 등의 서비스를 이용할 때 인증서를 갱신해야 한다면, 80번 포트를 무조건 HTTPS로 리다이렉트 하는 경우 인증서 갱신이 안 될 수도 있습니다. 인증서 갱신은 기본적으로 80번 포트로 Challenge를 수행하여 진행하기 때문입니다. 따라서 인증서 갱신을 해야 할 때는 다음과 같이 80번 포트 부분을 아래 코드처럼 일반적으로 사용이 가능하도록 할 수 있습니다. (사실은 인증을 위해 사용되는 .well-known 폴더만 80번 포트를 그대로 이용하도록 하고, 나머지 폴더에 대하여 443번 포트로 Redirection 하도록 처리하는 것이 가장 깔끔합니다.)
server {
listen 80;
server_name {도메인 주소 1} {도메인 주소 2};
root {웹 루트 경로};
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}
'기타' 카테고리의 다른 글
Ubuntu에 Python 2.7.16 버전 설치하는 방법 (0) | 2019.08.05 |
---|---|
이공계열 학생을 위한 Latex 작성 방법 Feat. Overleaf (4) | 2019.08.05 |
Ubuntu 16.04에 무료 SSL 인증서 설치하기 (Let's Encrypt) (1) | 2019.07.25 |
유용한 파이썬(Python) 온라인 개발환경 소개 (0) | 2019.07.15 |
소규모 1인 유튜브 크리에이터의 세금 납부 방법은? (0) | 2019.07.13 |