django-allauth: ¿cómo modificar la url de confirmación de correo electrónico?

Estoy ejecutando django en el puerto 8001, mientras que nginx está manejando las tareas del servidor web en el puerto 80. nginx proxies vistas y algunas llamadas de la API REST a Django. Estoy usando django-allauth para el registro / autenticación de usuarios.

Cuando un nuevo usuario se registra, django-allauth envía al usuario un correo electrónico con un enlace para hacer clic. Debido a que django se está ejecutando en el puerto 8001, el enlace parece http://machine-hostname:8001/accounts/confirm-email/xxxxxxxxxxxxxx

¿Cómo puedo hacer que la url se vea como http://www.example.com/accounts/confirm-email/xxxxxxxx ?

¡Gracias!

Django obtiene el nombre de host y el puerto de los encabezados HTTP. Añadir proxy_set_header Host $http_host; en su configuración nginx antes de las opciones proxy_pass .

Tuve el mismo problema, y ​​también encontré que la solución de ferrangb no tuvo ningún efecto en los correos electrónicos salientes de Allauth. La respuesta de mr_tron me llevó a la mitad, pero tuve que hacer un poco más:

1) En la configuración nginx, poner

 proxy_set_header Host $http_host 

ante las opciones proxy_pass.

2) En settings.py , agregue el nombre de dominio a ALLOWED_HOSTS . También agregué la versión www de mi nombre de dominio, ya que recibo tráfico a ambas direcciones.

 ALLOWED_HOSTS = ['127.0.0.1', 'example.com', 'www.example.com'] 

Y, por supuesto, reinicia nginx y gunicorn o lo que sea que esté sirviendo a tu Django. Con el primer paso, pero no el segundo, todos los accesos al sitio fueron errores instantáneos 400 (a menos que DEBUG = True in settings.py .)