본문 바로가기
카테고리 없음

nginx 설치 및 https 설정(GCP)

by hseong 2023. 4. 1.

$ 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 경로로 정상 접속되는 것을 확인할 수 있다.