Пытаюсь добавить в nginx второй домен. Это нормально для доступа к статическим файлам, таким как css, в domain2.com, но посещение сценариев php (например, domain2.com/index.php) будет 302 перенаправлением на domain1.com (например, domain1.com/index.php), поэтому я подумал, что перерыв точка должна быть в location ~ \.php$
раздел, но я не могу точно сказать, где он. Я здесь давно застрял, где я делаю не так? [ОС: windows 2008; Nginx: 1.0.12]
nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 50m;
gzip on;
server {
listen 80;
server_name _;
server_name_in_redirect off;
location / {
root F:/Web/nginx/html/;
index index.html;
}
}
include F:/Web/nginx/vhosts/*.conf;
}
F: /Web/nginx/vhosts/domain1.com.conf
server {
listen 80;
server_name domain1.com;
charset utf-8;
location / {
root F:/domain1;
index index.php;
try_files $uri $uri/ /index.php?$args;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME F:/domain1/$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
F: /Web/nginx/vhosts/domain2.com.conf
server {
listen 80;
server_name domain2.com;
charset utf-8;
location / {
root F:/domain2;
index index.php;
try_files $uri $uri/ /index.php?$args;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME F:/domain2/$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
ОБНОВИТЬ:
Я нашел причину - проблема не в конфигурации nginx, а в конфигурации php-cgi. Я установил doc_root='F:/domain1'
поэтому он продолжает перенаправлять.
Надежда может помочь любому, кто снова столкнется с этим вопросом.