2012-03-31 5 views
4

Я новичок в использовании nginx, ну, новичок в использовании чего-либо, что не является cpanel ... У меня проблемы с получением доменов для работы с использованием nginx, когда вы включаете www. в URL.www в домене не работает в nginx

www.mydomain.com > not work 404 
mydomain.com > works 

Я не уверен, что я допустил ошибку с именованными конфигурационными файлами или конфигурацией сервера для nginx. Я немного научусь торопиться, и я не удивлюсь, если я ошибся с базовой конфигурацией. Я запускаю последнюю версию nginx & php-fpm, кроме моей проблемы с доменом, она работает.

Я (пытаюсь?) Запустить поддомены, они работают, но с использованием www. приведет к 404. Я использую серверы имен и т. д. из моего основного домена .org. Я собираюсь опубликовать все, что уместно ниже, в надежде, что кто-то здесь сможет обнаружить ошибки, которые я делаю/или сделал.

etc/hosts 
# Do not remove the following line, or various programs 
# that require network functionality will fail. 
127.0.0.1  localhost.localdomain localhost 
::1    localhost6.localdomain6 localhost6 
184.xxx.xxx.146 server.servername.org servername.org 

named.conf

... 
    view "localhost_resolver" { 
/* This view sets up named to be a localhost resolver (caching only nameserver). 
* If all you want is a caching-only nameserver, then you need only define this view: 
*/ 
    # match-clients   { 127.0.0.0/24; }; 
    # match-destinations { localhost; }; 
    match-clients  { any; }; 
    match-destinations { any; }; 
    recursion no; 

     zone "servername.org" { 
       type master; 
       file "/var/named/servername.org.db"; 
     }; 

// optional - we act as the slave (secondary) for the delegated domain 
zone "mydomain.com" IN { 
    type slave; 
    file "/var/named/mydomain.com.db"; 
    masters {10.10.0.24;}; 
}; 
allow-notify { 184.xxx.xxx.146; }; 
}; 

mydomain.com.db

$TTL 86400 
mydomain.com. IN  SOA  ns1.servername.org.  server.servername.org.  (
           2002012013; Serial 
           1H  ; Refresh (change 1H to 6H in 3 days or so) 
           1800 ; Retry (change to 1H in 3 days) 
           2W  ; Expire 
           1D); Minimum 
mydomain.com.   IN  NS  ns1.servername.org. 
mydomain.com.   IN  NS  ns2.servername.org. 
ns1.servername.org.    IN  A  184.xxx.xxx.147 
ns2.servername.org.    IN  A  184.xxx.xxx.148 
mail.servername.org.    IN  A  184.xxx.xxx.146 
mydomain.com.   IN  A  184.xxx.xxx.146 
mydomain.com.   IN  MX  0  mail.servername.org. 
@        A  184.xxx.xxx.146 
www       A  184.xxx.xxx.146 

nginx.conf применения включают в себя/и т.д./Nginx/сайты с поддержкой/*; и Nginx «mydomain.com» конфигурации

server { 
    server_name www.mydomain.com; 
    rewrite ^(.*) http://mydomain.com$1 permanent; 
} 
server { 
listen 80; 
server_name mydomain.com www.mydomain.com; 

    # access_log /srv/www/mydomain.com/logs/access.log; 
    error_log /srv/www/mydomain.com/logs/error.log; 
    root /srv/www/mydomain.com/public_html; 
    set $noadmin 1; 

    location/{ 
     try_files $uri $uri/ /index.php?$args; 
     index index.html index.htm index.php; 
    } 

    # Add trailing slash to */wp-admin requests. 
    rewrite /wp-admin$ $scheme://$host$uri/ permanent; 

    location ~ \.flv$ { 
      flv; 
      root /srv/www/mydomain.com/public_html; 
    } 

    location ~ \.mp4$ { 
      root /srv/www/mydomain.com/public_html; 
      mp4; 
    } 

    # use fastcgi for all php files 
     location ~ \.php$ { 
     try_files $uri =404; 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME /srv/www/mydomain.com/public_html$fastcgi_script_name; 
     include fastcgi_params; 
    } 

# deny access to apache .htaccess files 
    location ~ /\.ht 
    { 
     deny all; 
    } 
} 

я могу получить доступ к подобласти, так что моя ужасная попытка это, кажется, вид работы, я застрял на том, почему www.mydomain.com не соединится, в то время как http://mydomain.com будет. Я читаю/изучаю больше, поскольку я иду, я не хочу вносить изменения, пока не пойму, что делают изменения. Я могу в итоге сломать больше URL.

ответ

5

Вы переписываете www.domain.com на первые несколько строк nginx.conf. Если я не ошибаюсь, переписывание и перенаправление - это разные вещи. Попробуйте это сначала server block;

server { 
    server_name www.mydomain.com; 
    return  301 http://mydomain.com$request_uri; 
} 

и изменить

server_name mydomain.com www.mydomain.com 

к

server_name mydomain.com 

во второй блок сервера.

+0

Спасибо :) удалил www со второго блока серверов, сделал трюк для меня, переписывание наверху - это тот, кто использует www. вместо этого отправляется на http //, и это тоже работает, хотя я нашел, что могу сделать это более эффективным. Спасибо за вашу помощь! http://wiki.nginx.org/Pitfalls#Taxing_Rewrites – DOA

+0

Иногда добавление дополнительных директив server_name может потребовать увеличения 'http {server_names_hash_bucket_size NN}', где NN - число> = 32 – nurettin

 Смежные вопросы

  • Нет связанных вопросов^_^