Nginx 설치하기

Sei Kim·2024년 1월 30일
0

AWS EC2

목록 보기
8/8
post-thumbnail

들어가며


현재 서버의 AWS EC2의 인스턴스는 2개가 실행중에 있습니다.
무료로 사용하고 있는 AWS EC2는 nginx를 사용하여 webserver로써 동작할 것 입니다.

이러한 상황에서 도커를 사용하여 nginx를 동작하는 것 보다 로컬 환경에서 nginx를 동작하는게 오버헤드가 더 적다고 판단하여 로컬로 설치를 해보도록 하겠습니다.

1. nginx 설치


sudo apt install nginx

해당 명령어를 통하여 nginx를 설치합니다.

sudo systemctl start nginx && \
sudo systemctl status nginx

systemctl 명령어를 사용하여 실행 및 동작 상태를 확인합니다.

2. SSL 인증서 발급받기


Certbot을 사용하여 SSL 인증서를 발급받아 보겠습니다.

sudo apt install letsencrypt -y

2.1. webroot 인증 방식을 이용한 인증서 발급


sudo certbot certonly \
--manual \
--preferred-challenges \
dns \
-d "${*.example.com}" \
-d "${example.com}"

위와 같은 명령어를 실행시키고 Y를 입력하며 진행합니다.

위 사진에 나오는 부분을 가비아 등 DNS 관리에서 등록해줍니다.

정상적으로 등록되었는지 확인하는 방법으로는 https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.${example.com}에 방문하여 복사한 값을 넣고 TXT로 변경한 후 확인합니다.

정상적으로 SSL 인증이 된 것을 확인할 수 있습니다!

3. Nginx 연결


이제 동작하고 있는 사이트와 연결을 해보도록 하겠습니다.

/etc/nginx/sites-available에 존재하는 default 파일을 수정하겠습니다.

# Default server configuration
#
server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /var/www/html;

	server_name ${example.com};

	location / {
		return 301 https://${example.com}$request_uri;
	}
}

# SSL 추가
server {
	listen 443 ssl;
	server_name ${example.com};

	ssl_certificate /etc/letsencrypt/live/${example.com}/fullchain.pem;  # SSL 인증서 파일
    	ssl_certificate_key /etc/letsencrypt/live/${example.com}/privkey.pem;  # SSL 키 파일

	location / {
		proxy_pass http://${example.com}:${port};
	}
}

위와 같이 파일을 수정합니다.

이후 아래의 명령어를 통해 문법 검사와 설정을 수정합니다.

sudo nginx -t

sudo service nginx reload

이후 사이트에 접속하면 정상적으로 접속이 가능한 것을 확인할 수 있습니다.

4. 서브도메인 연결하기


서브 도메인을 연결하는 법은 간단하게 할 수 있습니다.
/etc/nginx/sites-available로 다시 이동하여 설정파일을 작성합니다.

저는 sonarqube.conf 를 생성하겠습니다.

##
#${subdomain} SubDomain Conf
##

# SSL Server
server {
        listen 443 ssl;
        server_name ${example.com};

        location / {
                proxy_pass http://![](https://velog.velcdn.com/images/kimsei1124/post/afb2a6bc-c8a5-4fb4-8c9f-df032b8a523c/image.jpeg)
${example.com}:${port};
        }
}

# Redirect Server
server {
        listen 80;
        listen [::]:80;

        server_name ${example.com};

        location / {
                return 301 https://${subdomain name}.${example.com}$request_uri;
        }
}

위와 같이 작성한 후 해당 파일을 심볼릭 링크를 적용합니다.

sudo ln -s /etc/nginx/sites-available/${파일명} /etc/nginx/sites-enabled

해당 명령어를 사용하면 서브도메인도 SSL인증을 받을 수 있습니다.

정상적으로 심볼릭 링크 적용

이후 sudo service nginx reload를 적용합니다.

정리


간단하게 nginx 를 사용하여 SSL 인증과 서브도메인 환경을 구성해보았습니다.
처음에는 도커 환경으로 구성을 하려고 했지만 시간이 부족하여 로컬 환경으로 진행했습니다.

추후 시간의 여유가 남는다면 도커 환경으로도 작성해보도록 하겠습니다.

0개의 댓글