TIL - 2021.2.17

Wanna be __·2021년 2월 18일
0

TIL

목록 보기
16/45
post-thumbnail

Today, I Learned

  1. NGINX server block을 설정해서 www.domain.com 이든 domain.com이든 domain.com으로 redirect 되게 할 수 있다.
    위 설정을 하기 전에는, www.domain.com과 domain.com 페이지가 각각 다른 홈페이지에 들어가는 것 처럼(두개 로그인가능 등) 이용할 수 있었으나, 이를 해결

  2. proxy_pass 를 할때 host name을 부여하여 host_name을 django server 인 backend 가 아닌 domain.com으로 표시되도록 표시하였다.
    django의 allowed host 설정 때문에 host name이 어떻게 표시되는지가 중요했다!

  3. 현재 방법이 최선이 아닌거같지만... ACM을 통해 인증서를 달았다.
    NGINX 설정은 80번과 443번 포트를 개방하고 http protocol은 https로 redirect 해주었음
    -> 여러 시도중 ERR_TOO_MANY_REDIRECTS 에러가 났는데
    http -> https > http > https로 무한 redirect될 때 생기는 문제인듯...
    django setting 설정을 하는등의 참고자료가 있었지만 이 방법으로 해결하지 못하였음.

  4. html template를 이용하여 template email 전송을 하였음.
    이메일 템플릿을 간편하게 만들 수 있는 사이트에서 간편하게 htm파일을 만들 수 있었다.

    from django.template.loader import get_template
    from django.core.mail import EmailMessage
    
    vars = {"name": "MYNAME", "link" : "MYLINK"}
     message = get_template('MY_TEMPLATE.html').render(vars)
     mail_title = "이거는 메일 제목입니다."
     mail_to = "메일 수신 주소"
     email = EmailMessage(mail_title, message, to=[mail_to])
     email.content_subtype = "html"
     email.send()

    위와 같이 메일을 보내기 위하여, 우선 django내장 template.loader를 import했기 때문에, settings.py에서 template의 dir을 지정해준다.

    TEMPLATES = [
    {
       'BACKEND': 'django.template.backends.django.DjangoTemplates',
       'DIRS': [os.path.join(BASE_DIR, 'templates')],
    등등..
    }

    이후 root directory의 templates 폴더에 html, htm파일을 넣어주는데, .render() 작업을 통하여, 장고 html 문법을 사용하여 변수를 대입해 줄 수 있다. -> {{ 변수명 }}

Today, I Did

  1. 위 메일 작업을 정신없이 완료하고 commit을 하려다가 staging 되어있는 파일이 있는 것 같아 내린다음에 필요한 파일만 add한다는걸 전부 restore하였다... 1시간 30분 가량 작업하던 분량이 물거품이 되었다... git restore는 신중에 신중을 가하여 사용하자.. 더욱이 git restore . 은 앞으로 금지 명령어다.
  1. django 내장 email 보내는 함수를 사용하기 위하여 google의 앱 비밀번호를 발급 받았다. 원래는 기존 아이디 비밀번호를 통하여 접근했는데, 보안수준도 낮아지고 자꾸 다른데서 접속하다보니 접속 차단도 되어 앱 비밀번호를 사용해보았는데 아주 잘된다.
profile
성장하는 개발자

0개의 댓글