www前缀不显示网站

时间:2015-02-27 13:11:36

标签: django nginx digital-ocean

我正在努力让我的网站使用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;

我做错了什么?

3 个答案:

答案 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