Nginx Различные домены на одном IP-адресе
Я хотел бы разместить 2 разных домена на одном сервере с помощью nginx.
Я перенаправил оба домена на этот хост через свойство @. Хотя я настраиваю 2 разных блока сервера, всякий раз, когда я пытаюсь получить доступ к второму домену, он перенаправляется на первый.
Вот моя конфигурация.
server {
listen www.domain1.com:80;
access_log /var/log/nginx/host.domain1.access.log main;
root /var/www/domain1;
server_name www.domain1.com;
location ~ \.php$ {
# Security: must set cgi.fixpathinfo to 0 in php.ini!
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include /etc/nginx/fastcgi_params;
}
}
server {
listen www.domain2.com:80;
access_log /var/log/nginx/host.domain2.access.log main;
root /var/www/domain2;
server_name www.domain2.com;
location ~ \.php$ {
# Security: must set cgi.fixpathinfo to 0 in php.ini!
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include /etc/nginx/fastcgi_params;
}
}
Как я могу это исправить?
Спасибо.
Ответы
Ответ 1
Ваши "прослушивающие" директивы ошибочны. См. Эту страницу: http://nginx.org/en/docs/http/server_names.html.
Они должны быть
server {
listen 80;
server_name www.domain1.com;
root /var/www/domain1;
}
server {
listen 80;
server_name www.domain2.com;
root /var/www/domain2;
}
Примечание. Я включил только соответствующие строки. Все остальное выглядело хорошо, но я просто удалил его для ясности. Чтобы протестировать его, вы можете попробовать использовать текстовый файл с каждого сервера, прежде чем на самом деле будете обслуживать php. Вот почему я оставил там директиву "root".