nginx를 사용하여 도메인, https를 구성

도메인 발급

도메인 발급 업체를 통해 도메인을 발급합니다.

Nginx 설치

Nginx 설치하기
NginxNginx [https://www.nginx.com/]엔진엑스(Nginx)는 Igor Sysoev라는 러시아 개발자가 동시접속 특화 웹 서버 프로그램입니다.동시 접속자가 많은 서버에서는, 아파치보다 더 뛰어난 성능을 보인다고 합니다. Nginx의 역할1. 정적 파일을 제공하는 HTTP서버 역할2. 다른 HTTP서버에 요청을 전달하는 리버스 프록시 역할3. 메일서버에 요청을 전달하는 메일 프록시 역할이 외에도 캐싱, 로드 밸런싱, FLV, MP4 스트리밍, SSL, 로깅등의 기능을 지원합니다. Nginx 설치…

위 링크를 참고하여 Nginx를 설치합니다.

Nginx 설정

nginx 기본 설정을 제거합니다.

cd /etc/nginx
sudo rm ./sites-enabled/default
sudo rm ./sites-avilable/default

code server를 위한 설정을 만듭니다.

sudo vim ./sites-available/code-server.conf

다음을 입력 합니다.

server {
    listen 80;
    listen [::]:80;
    server_name mydomain.com; # 발급받은 도메인

    location / {
      proxy_pass http://localhost:8080/; # config.yaml로 설정한 서버의 주소
      proxy_set_header Host $host;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection upgrade;
      proxy_set_header Accept-Encoding gzip;
    }
}

방금 작성한 설정을 활성화 합니다.

cd /etc/nginx
sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf

nginx 설정을 로드합니다.

sudo service nginx reload

브라우저를 통해 자신의 도메인에 접속하면 code server를 사용할 수 있습니다.

인증서 발급

다음 링크를 참고해서 인증서를 발급받습니다.

Certbot으로 무료 HTTPS 인증서 발급받기
Let’s Encrypt - Free SSL/TLS CertificatesLet’s Encrypt is a free, automated,andopen certificate authority brought to you by the nonprofit Internet SecurityResearch Group (ISRG).Free SSL/TLS Certificates [https://letsencrypt.org/]Let’sEncrypt라는 비영리 기관을 통해 무료로 TLS인증서를 발급받을수 있습니다. 루트 도매인, 서브 도매인, …

Https 설정

/etc/nginx/sites-enabled/code-server.conf/ 를 다음처럼 변경합니다.

server {
    listen [::]:443 ssl;
    listen 443 ssl;
    ssl_certificate  인증서 경로;
    ssl_certificate_key 인증서 키 경로;
    server_name mydomain.com; # 발급받은 도메인

    location / {
      proxy_pass http://localhost:8080/; # config.yaml로 설정한 서버의 주소
      proxy_set_header Host $host;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection upgrade;
      proxy_set_header Accept-Encoding gzip;
    }
}
server {
        if ($host = mydomain.com) { # 발급받은 도메인
            return 301 https://$host$request_uri;
        }
    listen 80;
	listen [::]:80;
	server_name mydomain.com; # 발급받은 도메인
    return 404;
}
Nginx Https 사용
Https 인증서 발급Let’s Encrypt를 사용하면 무료로 발급이 가능합니다. Certbot으로 무료 HTTPS 인증서 발급받기Let’s Encrypt - Free SSL/TLS CertificatesLet’sEncrypt is a free, automated,andopen certificate authority brought to you bythenonprofit Internet SecurityResearch Group (ISRG).Free SSL/TLS Certificates[https://letsencrypt.org/…
참고

nginx 설정을 로드합니다.

sudo service nginx reload