| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 오블완
- chrome
- python
- 개발
- Express
- Next
- Android
- 광고 id
- docker
- EC2
- spring boots
- TypeScript
- 티스토리챌린지
- css
- NanoHttpd
- 파이썬
- JavaScript
- 오퍼월
- 코딩테스트
- nginx
- Jenkins
- react-native
- nuxt
- AWS
- React
- it
- toml
- 백준
- 코테
- kotlin
- Today
- Total
내맘대로 개발일지
[EC2] 안에서 nginx 사용하기 본문
[AWS] 아무것도 모르는데 EC2 + Docker + MariaDB + nginx
진짜 아무것도 모른다.개발만 해봤지 인프라 처음해본다.곁눈질도 안해봤고 해주는대로 떠먹어서 개발만 해봤다.근데 이번에 기회가 생겨서 처음부터 해보려고 하는데 진짜 아무것도 몰라서
8735.tistory.com
여기에 이어서 Nginx 를 추가적으로 설정해보려고 한다.
지금 내 EC2 안에는 프론트 + 백 + DB 가 같이있다. 테스트 서버라 다 뭉쳐있지만
원래는 이렇게 안한다는 점을 기억해두고 진행한다.
어제 nginx 백앤드 띄워놓고 오늘 다시하려고 하니 어디다가 만들어놨는지 기억이 안나더라.
그런 나를 위한 찾는 방법
sudo nginx -t
nginx: [warn] conflicting server name "_" on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
해당 명령어를 통해서 내가 만든 파일이 어디있는지 찾을 수 있다.
일단 저기서는 백앤드만 띄우는 연습을 했어서 새롭게 conf 를 작성해보려고 한다.
기존꺼는 지우거나 하나만 남겨놓는 방식으로 진행한다.
sudo vi /etc/nginx/conf.d/{파일명}.conf
# ===============================
# FRONT + BACKEND SERVER
# ===============================
server {
listen 80;
server_name _;
# -------------------------------
# FRONTEND (React/Vue/Next etc.)
# -------------------------------
# 빌드된 dist 경로 (Docker로 배포했을 경우 Nginx 루트 또는 /var/www)
root /var/www/{프로젝트명};
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# -------------------------------
# BACKEND (Spring Boot running in Docker)
# -------------------------------
location /api/ {
proxy_pass http://127.0.0.1:8080/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 안정성 향상용 옵션
proxy_connect_timeout 5s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
# -------------------------------
# GZIP (선택)
# -------------------------------
gzip on;
gzip_types text/plain text/css application/json application/javascript application/xml+rss;
gzip_min_length 256;
}
이후 :wq ( Write + Quit ) 하면 탈출할 수 있다.
만약 프론트 접근이안된다면 프로젝트에서 빌드는 했는지 확인해보자.
안했다면 npm install + npm build
내가 깜빡하고 안하고 빌드안돼서 놀랐기 때문이다 ㅎ
sudo mkdir -p /var/www/{프로젝트명}
sudo rsync -av --delete dist/ /var/www/{프로젝트명}/
파일을 nginx 루트로 복사하고
sudo nginx -t
sudo systemctl reload nginx
nginx 를 재시작해주면 된다.
curl 로도 확인해보고 실제 웹 도메인영역에 입력해서도 테스트해보면 된다.
이제 EC2 가 꺼지고 재기동되면 nginx, docker, mariadb 다 같이 죽어버리니까
sudo systemctl enable --now nginx
sudo systemctl enable --now docker
sudo systemctl enable --now mariadb
docker run 할때 --restart unless-stopped 추가해주자
+ 기본적인 명령어들을 적어두려고 한다.
필요해서 매번 찾아보는것도 귀찮고 이정돈 외워둬야할것같기도하다.
// nginx 파일 수정 할때 -> i 누르고 고치고, :wq 해서 저장
sudo vi /etc/nginx/conf.d/default.conf
// nginx 재실행
sudo systemctl reload nginx'IT' 카테고리의 다른 글
| [AWS] 고정 IP 할당받기 (0) | 2025.11.19 |
|---|---|
| [Jenkins] EC2 안에서 설치하고 실행하기 (0) | 2025.11.12 |
| [AWS] 아무것도 모르는데 EC2 + Docker + MariaDB + nginx (0) | 2025.11.11 |
| Android App Icon 생성 (0) | 2024.07.23 |
| [GIT] fatal: protocol error: bad pack header (1) | 2024.07.23 |