Nginx和Django使用www前缀域

试图了解如何强制www。 在我的域名并redirect像ww.example.com或test.example.com – > www.example.com

一切正常,当我去www.example.com或example.com,我只是试图掩盖自己,如果人们尝试去错误的领域,我不应该添加任何比'www.example.com'和' example.com'在我的django ALLOWED_HOSTS

我把所有东西都按照:

如何使用Django的一键安装图像

upstream app_server { server 127.0.0.1:9000 fail_timeout=0; } server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html index.htm; client_max_body_size 4G; server_name _; keepalive_timeout 5; # Your Django project's media files - amend as required location /media { alias /home/django/django_project/django_project/media; } # your Django project's static files - amend as required location /static { alias /home/django/django_project/django_project/static; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } } 

您还没有在nginx中定义任何redirect指令。 这里适当的configuration。

 #here the redirect section. If server doesn't match www.example.com or example.com, it will redirected to http://www.example.com server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name _; return 301 http://www.example.com$request_uri; } #your main config files, handles request whenever Host header match www.example.com or example.com server { listen 80; listen [::]:80; root /usr/share/nginx/html; index index.html index.htm; client_max_body_size 4G; server_name www.example.com; keepalive_timeout 5; # Your Django project's media files - amend as required location /media { alias /home/django/django_project/django_project/media; } # your Django project's static files - amend as required location /static { alias /home/django/django_project/django_project/static; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } }