엔진엑스의 default.conf 파일에 리버스 프록시 설정을 추가했지만, proxy_pass 가 적용되지 않는 문제점이 존재했다.
server {
listen 80;
listen [::]:80;
server_name dangil.store;
access_log off;
location /.well-known/acme-challenge/ {
allow all;
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl;
server_name dangil.store;
# include /etc/nginx/conf.d/service-url.inc;
# 서트봇이 볼륨으로 남겨두는 인증서를 가지고 이미지를 만들었고 엔진엑스 컨테이너에서 해당 인증서를 사용한다
ssl_certificate /etc/letsencrypt/live/dangil.store/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dangil.store/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
ignore_invalid_headers off;
# 디폴트로 IP는 프록시로 변경되고 난뒤에 (리버스 프록시 기능)
# 원래의 요청의 헤더에 설정을 수정 및 추가한다
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://localhost:8080;
proxy_set_header X-Forwarded-Host $server_name;
}
}
api/health url 검색해도 502 에러가 나왔다.


해당 사이트에서 Nginx의 default.conf 파일의 설정과 url 테스트를 통해서 api/ url이 동작하지 않는 것을 확인했다.
server {
listen 80;
listen [::]:80;
server_name dangil.store;
access_log off;
location /.well-known/acme-challenge/ {
allow all;
root /var/www/certbot;
}
location / {
return 301 https://dangil.store$request_uri;
}
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl;
server_name dangil.store;
# include /etc/nginx/conf.d/service-url.inc;
# 서트봇이 볼륨으로 남겨두는 인증서를 가지고 이미지를 만들었고 엔진엑스 컨테이너에서 해당 인증서를 사용한다
ssl_certificate /etc/letsencrypt/live/dangil.store/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dangil.store/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# 부적절한 헤더도 요청을 허용한다.
ignore_invalid_headers off;
location /api {
proxy_pass http://today_back:8080;
proxy_set_header X-Forwarded-Host $server_name;
# 디폴트로 IP는 프록시로 변경되고 난뒤에 (리버스 프록시 기능)
# 원래의 요청의 헤더에 설정을 수정 및 추가한다
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_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;
해당 코드가 안에 들어가서 정상적으로 작동했다 !
해당 설정이 전역으로 적용이 안되는거 같다...
왜? 그럴까?