Backend Study/Server
AWS EC2에 서버 환경 구축 명령어 정리 (nginx, mysql, subdomain, https..)
gyu.ree
2023. 1. 15. 17:37
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;
}