인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

박철현님의 프로필 이미지

작성한 질문수

포트폴리오 초간단 배포하기

HTTPS 적용하기

12:39초에 nginx.conf 파일에 어떤 정보들을 넣는다는 건가요??

작성

·

132

·

수정됨

1

12:39초에 nginx.conf 파일에 어떤 정보들을 넣는다는 건가요??

저는 현재 강사님꺼 무중단배포 버전이랑 해당 강의영상을 보면서 jenkins대신에 nginx와 github actions로 무중단 배포 환경을 만들었습니다.

https 설정을 적용하려고 하는데 해당 부분에서 어떤 부분들을 넣어줘야 하는지 감이 안잡히네요.

image.png


현재 nginx/conf파일입니다

 그리고 default.conf 부분엔 upstream blue 서버와 green 서버로 되어있고, AWS EC2에 443 포트도 열어준 상태입니다

답변 2

0

이준형(Foo)님의 프로필 이미지
이준형(Foo)
지식공유자

박철현님 안녕하세요!

제가 ChatGPT가 답변해준걸 그대로 붙여넣어둔 상태로 영상을 만들어서 어떤 부분이 바뀌었는지 확인이 어려우셨을 것 같습니다. 죄송합니다. (_ _)

11:30에 제가 드래그 하는 부분이 있는데요,

 

include /etc/nginx/conf.d/*.conf;

 

의 다음 줄에 아래와 같이 server를 추가해주시면 됩니다.

 

server {

          listen 443 ssl;

          server_name ...;

... 인증서, 개인키 등 정보 포함



        ssl_protocols TLSv1.2 TLSv1.3;



        location / {

        }

}


한번 따라해보시고, 잘 안되면 추가로 질문 남겨주세요!

감사합니다.

박철현님의 프로필 이미지
박철현
질문자

저 server 블록은 http 블록 내부에 있는게 맞나요?? location 블록에는 아무런 정보도 안들어가요? include /etc/nginx/conf.d/*.conf; 이게 있다면 http 블록이 호출되면서 default.conf에 있는 server블록을 호출하는것이라고 생각하면 맞을까용?? ㅠㅠ


이건 제 default.conf 파일 입니다

image.png


이준형(Foo)님의 프로필 이미지
이준형(Foo)
지식공유자

  • 저 server 블록은 http 블록 내부에 있는게 맞나요?? -> 넵 맞습니다.

  • location 블록에는 아무런 정보도 안들어가요? -> 넵 이것도 맞습니다!

  • include /etc/nginx/conf.d/*.conf; 이게 있다면 http 블록이 호출되면서 default.conf에 있는 server블록을 호출하는것이라고 생각하면 맞을까용?? ㅠㅠ -> 네네 이것도 맞습니다. ㅎㅎ /etc/nginx/conf.d/ 경로에 default.conf가 있다면 해당 include 문에 의해서 설정으로 추가되는겁니다!

 

일단 질문 주신 내용을 종합해봤을때, blue green 으로 설정하는거랑 https 설정을 한번에 같이 해보려고 하고 계신걸까요?! 만약 두개를 동시에 해보려고 하시는거라면 하나씩 해보시면 좋을 것 같습니다.

 

혹시 또 궁금한 내용 있으면 질문 마저 남겨주세요~

감사합니다.

박철현님의 프로필 이미지
박철현
질문자

제가 하고싶은건 이미 배포되어있는 green과 blue에 https를 적용하는 것입니다. ㅠㅠ 첫번째 답변주신것처럼 했는데도 안되네요... 혹시 default.conf 파일에서 건들게 있을까요?

 

이준형(Foo)님의 프로필 이미지
이준형(Foo)
지식공유자

원인은 복합적일 수 있어서 보내주신 내용만 보고서 제가 해결해드릴 순 없습니다. ㅠ

위에 이야기 드린 것처럼 블루그린으로 배포하는거랑 https 적용을 분리해서 하나씩 해결해보세요~

사실 지금 어떤게 안된다는건지에 대한 정보도 없어서 제가 도움을 드릴 순 없을 것 같습니다 ㅎ..

이준형(Foo)님의 프로필 이미지
이준형(Foo)
지식공유자

아니면 전체 conf 파일, 어떤게 안되는지, nginx 에러 로그 등 전달주시면 좀 더 확인해볼 수는 있겠습니다. :)

박철현님의 프로필 이미지
박철현
질문자

강사님 끝까지 신경써주셔서 감사합니다... ㅎㅎ 결국 성공했오용 역시 삽질해가면서 이것저것 해보는게 내것이 되는것 같습니다. 3일동안 이것만 붙잡고있었네요 ㅎㅎ

이준형(Foo)님의 프로필 이미지
이준형(Foo)
지식공유자

해결하셨다니 다행입니다. ㅎㅎㅎㅎ

늦은시간까지 고생 많으셨습니다~

또 궁금한 내용 있으면 질문 남겨주세요.

감사합니다. (_ _)

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

박철현님, Nginx 설정 파일 변경에 대한 문제를 가지고 계시는군요. 무중단 배포를 위해 Nginx 설정을 올바르게 작성하는 것이 중요합니다. 아래에 Nginx 설정 파일에 관련된 정보를 요약해 드리겠습니다.

Nginx 설정 팁

  1. nginx.conf 파일 구조:

    • nginx.conf 파일은 기본적으로 아래와 같은 구조를 가집니다.
    events {
        # Worker connections 설정
    }
    
    
    http {
        # 기본 설정
        include mime.types;
    
    
        server {
            listen 80;
            server_name your_domain.com;
    
    
            location / {
                proxy_pass http://backend_servers;
            }
        }
    }
    
    • http 블록 내에 여러 server 블록을 둘 수 있으며, 각 server 블록이 각기 다른 도메인이나 포트를 관리합니다.
  2. unknown 에러 해결:

    • nginx -t 명령어로 구성 검사 시 unknown이 발생하는 경우는 대개 설정 파일의 문법 오류 때문입니다. http 블록 안에 server 블록이 존재해야 함을 꼭 확인하세요. http 블록 외부에 server 설정을 넣지 않도록 주의하셔야 합니다.
  3. 무중단 배포 구성:

    • 기존 프로젝트에서 무중단 배포가 잘 되는 것을 확인하셨다면, upstream 설정을 그대로 유지하고 nginx.conf에 필요한 추가 설정만 하는 것이 좋습니다. http 블록 내부의 include 구문을 이용해 default.conf 파일이 포함되도록 하세요:
    http {
        include mime.types;
        include /etc/nginx/conf.d/*.conf;  # 여기에서 default.conf도 포함
        ...
    }
    

참고 링크

Nginx 설정 및 무중단 배포에 대한 유사한 문제 해결 사례를 찾아보았습니다:
- 무중단 배포시 질문

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.