LinuxForum.Fans
Тема

У всех сайтов грузится robots.txt главного сайта.

Автор: Informatikum 2 сообщений 2137 просмотров
#353704

Здравствуйте.

На сервере поставил Debian. Каждый сайт хранится в:
/var/www/site1.ru
/var/www/site2.ru
и т.д.

Добавил в каждую папку сайта свой robots.txt:
/var/www/site1.ru/robots.txt -> site1.ru/robots.txt
/var/www/site2.ru/robots.txt -> site2.ru/robots.txt

Выдает ошибку:
404 Not Found
nginx/1.1.14

Перелазил форумы, хабр, тостер. Находил много советов, ни один не помог. Посоветуйте, как правильно должно быть все разрулено, чтобы заработало.

То же самое с sitemap.xml...

Главный nginx.conf

Показать
text

user www-data;
worker_processes  4;
worker_rlimit_nofile 8192;

error_log /var/log/nginx/error.log; pid /var/run/nginx.pid;

events { worker_connections 2048; }

http { include /etc/nginx/mime.types; default_type application/octet-stream;

access_log /var/log/nginx/access.log;

sendfile on; tcp_nopush on; tcp_nodelay on;

keepalive_timeout 65;

gzip on; gzip_http_version 1.0; gzip_comp_level 5; gzip_proxied any; gzip_types text/plain text/css application/x-javascript application/xhtml+xml text/xml application/xml application/xml+rss text/javascript application/javascript; gzip_disable "MSIE [1-6]\.";

server_names_hash_bucket_size 128;

include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }

Конфиг главного сайта и пока единственный файл. /etc/nginx/sites-enabled
Название site.ru указано как пример.

Показать
text

gzip_static                     on;
gzip_buffers 16 8k;

directio 4m; max_ranges 4;

open_file_cache max=60000 inactive=60s; open_file_cache_valid 60s; open_file_cache_min_uses 2; open_file_cache_errors on;

postpone_output 512; reset_timedout_connection on;

sendfile_max_chunk 2M; underscores_in_headers on;

server { listen 80 default_server backlog=1024 deferred ; root /var/www/site.ru; index index.php; server_name _ 2057.hoster.ru site.ru www.site.ru ; server_name_in_redirect off; charset utf-8;

proxy_redirect http://127.0.0.1:8080 http://$host;

client_max_body_size 1024m; client_body_buffer_size 4m;

proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 64k; proxy_buffers 8 256k; proxy_busy_buffers_size 256k; proxy_temp_file_write_size 10m;

proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

location ~* ^.+\.(jpg|txt|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ { try_files $uri @backend; expires max; }

location / { try_files $uri @backend; }

location ~ \.php$ { try_files $uri @backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_pass http://127.0.0.1:8080; }

location @backend { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_pass http://127.0.0.1:8080; } location ~ ^/server-status$ { proxy_pass http://127.0.0.1:8080; }

location ~ ^/nginx-status$ { stub_status on; allow 127.0.0.0/24; deny all; }

location = /favicon.ico { log_not_found off; } location = /robots.txt { allow all; log_not_found off; access_log off; }

location ~ (/\.ht|\.git|\.svn|\.hg) { deny all; }

}

Пробовал еще варианты:

Показать
text

server {
  listen   8000 backlog=1024 deferred ;
  root /var/www/site2.ru;
text

  location / {
    try_files $uri @backend;
    if ($http_host ~* "^site2.ru"){
    rewrite ^/robots.txt?$ /robots.txt break;
    }

Хоть в /etc/nginx/sites-enabled только один конфиг главного сайта, других конфигов нет, все сайты работают. Как только делаю копию конфига, меняю внутри все имена на любой другой домен, появляется море ошибок о дубликатах строк.

Пример ошибки, если делаю копию конфига другого сайта.

text

Starting nginx: nginx: [emerg] duplicate listen options for 0.0.0.0:80 in /etc/nginx/sites-enabled/site2.ru:18
nginx: configuration file /etc/nginx/nginx.conf test failed

Прошу помочь разобраться.

#353711

До конца не разобрался, но проблему решил.

Раньше у каждого домена был свой конфиг файл. Ничего не работало. Удалил все конфиги, создал конфиг с именем default и без расширения.

В нем перечислил все сайты. И все заработало.

Показать
text

server {

listen 80 default;

server_name site.ru;

location / {

proxy_pass http://127.0.0.1:8080;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Host $http_host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

location ~*^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ {

root /var/www/site.ru/;

}

}

server {

listen 80 default;

server_name site2.ru;

location / {

proxy_pass http://127.0.0.1:8080;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Host $http_host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

location ~*^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ {

root /var/www/site2.ru/;

}

}

Войдите или зарегистрируйтесь, чтобы ответить.