반응형
Nginx 설치
1. nginx 설치
설치 전 패키지 목록 업데이트
sudo apt update
sudo apt upgrade
nginx 설치
sudo apt install nginx
Do you want to continue? [Y/n] 문장이 보이면 'Y' 치고 Enter 키를 누르면 설치 완료
nginx 시작
sudo systemctl start nginx
nginx 상태 확인
sudo systemctl status nginx
2. 방화벽 설정
- Nginx Full - port 80, 443 허용
- Nginx HTTP - port 80 허용
- Nginx HTTPS - port 443 허용
# 방화벽 활성화
sudo ufw enable
# 원하는 애플리케이션 허용
sudo ufw allow 'Nginx Full'
sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'
# 방화벽 변경사항 리로드
sudo ufw reload
# 방화벽 상태 확인
sudo ufw status
nginx 설정 방법
Nginx 관련 설정 경로 /etc/nginx/sites-available 아래의 default.conf를 변경하면 된다.
nano /etc/nginx/sites-available/default
80 포트 기준 api와 swagger-ui를 사용하기 위한 nginx 설정
server {
listen 80;
server_name was 도메인 or ip 주소;
location / {
proxy_pass http://localhost:3000;
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;
}
location /api/ {
proxy_pass http://[web 내부 ip 주소]:포트/api/;
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;
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';
add_header 'Access-Control-Expose-Headers' 'Authorization, refreshToken';
if ($request_method = OPTIONS) {
return 204;
}
}
location /swagger-ui/ {
proxy_pass http://[web 내부 ip 주소]:포트/swagger-ui/;
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;
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';
}
location /v3/api-docs/ {
proxy_pass http://[web 내부 ip 주소]:포트/v3/api-docs;
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;
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';
}
}
테스트
nginx -t
변경 사항 적용
sudo systemctl restart nginx
반응형