본문 바로가기

Backend Study/Server

AWS EC2에 서버 환경 구축 명령어 정리 (nginx, mysql, subdomain, https..)

nginx 설치

sudo apt update
sudo apt install nginx
nginx -v # nginx 버전 확인

 

mysql 설치

sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation
sudo mysql -u root -p

 

index 파일 생성

projectName = 원하는 프로젝트 이름 ex. santa

cd /var/www
sudo mkdir -p projectName/html 
sudo chmod -R 755 /var/www/projectName/html
sudo vi /var/www/projectName/html/index.html

 

서버 블록 생성

cd /etc/nginx/sites-available
sudo vi projectName

서버 블록

server {
				listen 80;
				listen [::]:80;

				root /var/www/projectName/html;
				index index.html index.htm index.nginx-debian.html;

				server_name // 연결할 url //
	
				location / {
								try_files $uri $uri/ =404;
				}
}

 

심볼릭 링크

파일 및 디렉토리에 대한 링크를 만들어준다.

sudo ln -s /etc/nginx/sites-available/projectName /etc/nginx/sites-enabled/

#sites-available: 설정을 저장하는 곳
#sites-enabled: 설정을 적용하는 곳

 

nginx.conf 수정

cd /etc/nginx
sudo vi nginx.conf

server_names_hash_bucket_size 64; # 주석해제

다시 start

sudo nginx -t
sudo service nginx restart (sudo systemctl restart nginx)

 

서브도메인 (dev, prod)

sudo nginx -t
sudo service nginx restart (sudo systemctl restart nginx)
server {
        listen 80;
        listen [::]:80;

        root /var/www/projectName/html/dev;
        index index.html index.htm index.nginx-debian.html;

        server_name // 연결할 url //

        location / {
                try_files $uri $uri/ =404;
        }
}

서브 도메인 별 루트 폴더 생성

cd var/www/projectName/html
sudo mkdir dev
cd dev
sudo vi index.html

 

HTTPS 적용 (Let's Encrypt)

certbot 설치

cd var/www/projectName/html
sudo mkdir dev
cd dev
sudo vi index.html

 

redirection

cd /etc/nginx/sites-available
sudo vi projectName
server {
			listen 80;
			server_name ip주소;
			return 301 https://url$request_uri;
}