$ sudo y nginx
$ sudo systemctl start nginx
새로운 인스턴스에 nignx를 설치하고 기동한다.
$ sudo vi /etc/nginx/nginx.conf
로드밸런싱을 위해 설정파일 연다.
upstream {그룹이름} {
server {IP:PORT};
server {IP:PORT};
}
server {
....
location / {
proxy_pass http://{그룹이름};
}
....
}
upstream에 로드 밸런싱할 서버 목록을 입력한다. 로드 밸런싱을 default로 라운드로빈으로 이루어진다.
작성이 완료되면 $ sudo systemctl reload nginx 명령어로 nginx를 재기동시킨다.
nginx 서버에 접속시 오류가 발생하면 $ sudo tail -f /var/log/nginx/error.log 명령어로 에러 로그를 확인할 수 있다.
$ setsebool -P httpd_can_network_connect 1
이후 서버가 정상적으로 동작하는 것을 확인할 수 있었다.
이제 가비아에서 구매한 도메인과 nginx가 설치된 서버의 IP주소를 연결시켜어야 한다.
gcp의 네트워크 서비스 -> Cloud DNS 탭 -> 레코드 모음 -> 표준 추가를 선택한다.
nignx가 작동중인 인스턴스의 외부 IP 주소를 입력하고 만들기를 클릭한 뒤, 해당 도메인으로 접속하면 이전에 외부IP로 접속할 때와 동일하게 잘 접속되는 것을 확인할 수 있다.
이제 https를 위한 ssl 인증서를 발급받아야 한다.
Let's Encrypt에서 인증서를 발급받기 위해서는 Certbot을 우선 설치해야 한다.
$ sudo yum install epel-release
$ sudo yum install certbot python2-certbot-nginx
certbot 설치를 위한 Extras 저장소와 cerbot을 설치
$ sudo systemctl stop nginx
인증서 발급을 위한 nginx 중단
$ sudo ls /etc/letsencrypt/live/studybread.shop
cert.pem chain.pem fullchain.pem privkey.pem README
해당 디렉터리에 인증서가 발급되었음을 확인할 수 있다.
이전에 로드밸런싱을 위해 수정했던 nginx 설정 파일을 열어준다.
http로 접근했을 경우 https로 redirect 시켜주고, 기존에 주석처리되어 있던 https 설정에 location과 ssl_certificate, certificate_key 부분을 발급받은 인증서의 경로로 수정하였다.
저장후 다시 nignx를 기동시켜 주면 https 경로로 정상 접속되는 것을 확인할 수 있다.