글 작성자: drizzle_
728x90

이전 글에 이어 이번 글에선 Nginx의 라우팅을 설정하고, 도메인을 연결하고, SSL 인증서를 발급해볼 것이다. 이번 글의 내용을 응용만 한다면 자신이 원하는 주소로 오는 이용자에게 자신이 원하는 페이지를 보여줄 수도 있을 것이고, 더 간다면 서버 한 개에 워드프레스 2개, 혹은 무한개를 돌릴 수도 있을 것이다.

엔진엑스 라우팅, 도메인 설정하기

. kr도메인 같은 경우 호스팅 케이알(호 스팅어 아님)이 저렴하고, 다른 도메인들은 Namecheap이 상대적으로 저렴하다.

URL라우팅?

도메인이 마련되고 DNS에서 도메인을 자신의 서버로 연결시켰다면 이제 웹서버에서 사이트마다 보여줄 페이지를 나누어줘야 한다. 라우팅을 사용하지 않을 경우, 2개의 사이트를 만들려면 서버가 2개가 필요하지만 라우팅을 이용할 경우 서버가 1개만 있으면 된다. 예를 몇 개 들어보자면 아래와 같다.

  • yoru.pe.kr => /var/www/wordpress_1 로 연결(워드프레스가 설치되어있는 폴더)
  • b2.yoru.pe.kr => /var/www/wordpress_2 로 연결(2번째 워드프레스가 설치되어있는 폴더)
  • static.yoru.pe.kr => /var/www/static 으로 연결(정적 파일들이 들어있는 폴더)
  • http를 https로 리다이렉트
  • 특정 중요 파일에 대해선 응답 거부

/etc/nginx/sites-available/default파일을 수정하여 라우팅 설정을 해야 한다. 저번 글에서 PHP연결까지 마쳤으니 아래 라인을 root /var/www/html 설정문 아래에 써야 한다.

server_name 구매한 도메인;

저번 글부터 지금까지 잘 따라왔다면 설정 내용은 다음과 같을 것이다.

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 
    root /var/www/html; 
    server_name 구매한 도메인;
    index index.php index.html index.htm index.nginx-debian.html; 

    location / { 
        try_files $uri $uri/ =404; 
       if (!-e $request_filename) { 
         rewrite ^.*$ /index.php last; 
       }
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params; 
        fastcgi_read_timeout 300;
    }

    location ~ /\.ht {
        deny all;
   }
}

위 내용을 엔직엑스에 적용하려면 엔진엑스를 재시작해야 한다. 재시작 전에 설정 파일이 이상한지 체크한다.

sudo nginx -t

이상이 없다 하면 엔진엑스를 재시작한다.

sudo service nginx restart

이제 콘솔에서의 작업은 SSL설치 빼곤 끝난 거나 다름없다. 이제 도메인을 이용하여 자신의 사이트에 접속하고, 설정 => 일반으로 이동한다. 아래 값을 잘못 바꾸면 자신의 Wordpress를 초기화해야 하거나 귀찮아지니 연두색으로 테두리 친 곳 안의 값만 잘 바꿔야 한다. URL을 입력할 때는 자신의 도메인을 입력하고, 아직 SSL 인증서를 설치하지 않았으니 https대신 http를 입력해야 한다.

이제 엔진엑스 설정은 모두 끝났다. 

SSL 설치하기

보자마자 어지러워지는 이상한 문법의 설정 파일, 이젠 볼 필요 없다. 이 글에서는 certbot이라는 멋진 소프트웨어를 사용해서 5초 만에 SSL설치를 끝내볼것이다. 타자만 빠르다면 5초만에 설치할 수 있다. 먼저, 아래 커맨드를한 줄 한줄 실행하여 certbot을 설치하기 위해 준비해주어야 한다.

sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install certbot python3-certbot-nginx

지금부터는 아래의 커맨드를 입력하여 쉽게 SSL 인증서를 설치하실 수 있다. 초기 설정 시 이메일, 뉴스레터 수신 여부, 약관 동의 여부를 물어본다. 초기 설정이 끝났다면 자신이 해당하는 도메인을 선택하시면 된다. 도메인을 선택하면, 5초 안에 인증서 발급 및 설정이 끝나게 된다. 설치하다가 Redirect여부를 물어볼 수 있는데, Redirect 하는 것을 추천한다.

sudo certbot --nginx

사이트에 접속해 보았을 때 안전하지 않음 대신 자물쇠 모양이 표시된다면 끝이다. 귀찮음을 극복하고 워드프레스를 혼자 힘으로 우분투 VPS에 설치한 것이다.

떠나가기 전에, 이 연재작을 하나하나 다시 짚어 보는 것도 나쁘지는 않을 거 같다.

728x90
Email: b1@yeonw.me / 여기를 눌러 다른 연락 수단들 알아보기