NGINX server block을 설정해서 www.domain.com 이든 domain.com이든 domain.com으로 redirect 되게 할 수 있다.
위 설정을 하기 전에는, www.domain.com과 domain.com 페이지가 각각 다른 홈페이지에 들어가는 것 처럼(두개 로그인가능 등) 이용할 수 있었으나, 이를 해결
proxy_pass 를 할때 host name을 부여하여 host_name을 django server 인 backend 가 아닌 domain.com으로 표시되도록 표시하였다.
django의 allowed host 설정 때문에 host name이 어떻게 표시되는지가 중요했다!
현재 방법이 최선이 아닌거같지만... ACM을 통해 인증서를 달았다.
NGINX 설정은 80번과 443번 포트를 개방하고 http protocol은 https로 redirect 해주었음
-> 여러 시도중 ERR_TOO_MANY_REDIRECTS 에러가 났는데
http -> https > http > https로 무한 redirect될 때 생기는 문제인듯...
django setting 설정을 하는등의 참고자료가 있었지만 이 방법으로 해결하지 못하였음.
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 문법을 사용하여 변수를 대입해 줄 수 있다. -> {{ 변수명 }}