我正在努力让我的网站使用www前缀。我只能在没有前缀的情况下访问该网站。我在digitalocean中使用Nginx + Django。这是我的站点配置文件:
的/ etc / nginx的/ / mysite的启用位点-
upstream app_server {
server 127.0.0.1:9000 fail_timeout=0;
}
server{
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name .example.com;
root /usr/share/nginx/html;
index index.html index.htm;
client_max_body_size 4G;
keepalive_timeout 5;
# Your Django project's media files - amend as required
location /media {
alias /home/django/proyect/media;
}
# your Django project's static files - amend as required
location /static {
alias /home/django/proyect/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;
}
}
我试过没试这些:
# rewrite ^ http://example.com$uri permanent;
# rewrite ^/(.*) http://example.com/$1 permanent;
# server_name example.com www.example.com;
我做错了什么?
答案 0 :(得分:1)
对于我的网站,我进行了设置,因此所有的www流量都通过两个服务器块发送到我网站的非www地址,一个用于将www流量重定向到非www地址,另一个用于处理非www交通。我认为相反的情况应该适合你的情况。
server {
listen 80;
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
server {
listen 80;
server_name www.example.com;
...
}
我不确定这是否是最好的解决方法,因为我对Nginx还不熟悉。
答案 1 :(得分:0)
$ host变量可用于检查" www"字首。您可以将其添加到配置的服务器部分以将其删除:
server {
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ https://$host_without_www$1 permanent;
}
....
答案 2 :(得分:0)
转到:DNS->选择域->添加记录->选择记录类型“ A”
主机名:www IP地址:您的液滴IP