Почему nginx все редиректит в один и тот же файл?

Привет.

Создал пару виртуальных хостов, и по ip адресу все открывает ок, а по названию редиректит на одно и то же, и не открывает сам хост.

В чем может быть проблема?

nginx.conf
worker_processes  2;
 
error_log  /usr/local/etc/nginx/logs/error.log debug;
 
events {
    worker_connections  1024;
}
 
http {
    include             mime.types;
    default_type        application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /usr/local/etc/nginx/logs/access.log  main;
 
    sendfile            on;
    keepalive_timeout   65;
 
    index index.html index.php;
    
    include /usr/local/etc/nginx/sites-enabled/*;
    
    
}


пример одного из хостов:
server {

   listen 81;

   server_name work.dev www.work.dev;
   root /private/var/www/work.dev/www;
   
   index index.php;

   access_log /private/var/www/work.dev/logs/access.log;
   error_log /private/var/www/work.dev/logs/error.log;
   
   ssl                  on;
   ssl_certificate      ssl/work.dev.crt;
   ssl_certificate_key  ssl/work.dev.key;

   ssl_session_timeout  5m;

   ssl_protocols  SSLv2 SSLv3 TLSv1;
   ssl_ciphers  HIGH:!aNULL:!MD5;
   ssl_prefer_server_ciphers   on;
   
   location ~ \.php {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
   }
   
     
   include   /usr/local/etc/nginx/conf.d/php-fpm;
}


файл /etc/hosts:
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

127.0.0.1       test.dev
127.0.0.1       work.dev
127.0.0.1       hiwork.dev
127.0.0.1       learning.dev


Помогите, очень срочно.
  • Вопрос задан
  • 2644 просмотра
Пригласить эксперта
Ответы на вопрос 2
tonymadbrain
@tonymadbrain
doam.ru
1. А зачем в host прописывать?
2. У nginx есть два дефолтных конфига default.conf и ssl.conf. В default.conf сервер прописан как "по умолчанию", т.е. если вы его оставили активным то все домены будут попадать туда.
3. И еще вы какую ОС используете?
Ответ написан
Аналогичная ситуация. По прошествии двух дней разобрался. Пытался редиректить на внутренние виртуальные хосты, однако все запросы падали на один виртуальный хост. Помогало только разбрасывание по разным портам. Но это не правильно!
Методом тыка выяснил, что nginx для определения к какому хосту адресован запрос, нужно передавать http-заголовок Host.
В моем случае помогло
proxy_set_header Host $reproxy_host;
, где $reproxy_host - адресуемый виртуальный хост.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы