У меня есть сервер с серверами под Nginx, работающий нормально (блоги WordPress). Теперь я хочу настроить сервер phplist и разместить его под одним поддоменом, но хотя я думал, что настроил поддомен без проблем, каждый раз, когда я пытаюсь загрузить поддомен, запрос сразу же отправляется в один из моих доменов.
Это файл конфигурации Nginx для моего домена (я заменил доменное имя):
server {
listen 80;
server_name mydomain.com www.mydomain.com;
# error_log /var/www/mydomain/mydomain_error.log;
root /var/www/mydomain/;
location ~* ^.+.(bz2|jpe?g|gif|gz|png|ico|css|zip|rar|doc|xls|exe|pdf|ppt|txt|tar|tgz|mid|midi|mp3|wav|bmp|rtf\
|js|swf|avi|m2t|mkv)$ {
access_log off;
expires 30d;
root /var/www/mydomain/;
}
location / {
index index.php;
client_max_body_size 3M;
try_files $uri $uri/ /index.php?q=$uri&$args;
# if the requested file exists, return it immediately
if (-f $request_filename) {
break;
}
#if ($http_user_agent !~ FeedBurner) {
# rewrite ^/comment/feed/ http://feeds.feedburner.com/your-comment-feed last;
# rewrite ^/feed/ http://feeds.feedburner.com/Muypymes last;
# }
if ($http_user_agent !~ "^MediafedMetrics.*") {
rewrite ^/feed/?$ http://feeds.feedburner.com/Muypymes last;
}
# all other requests go to WordPress
if (!-e $request_filename) {
rewrite . /index.php last;
}
}
## Parse all .php file in the /var/www directory
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/mydomain/$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort on;
fastcgi_read_timeout 360;
}
## Disable viewing .htaccess & .htpassword
location ~ /\.ht {
deny all;
}
location = /favicon.ico {
access_log off;
log_not_found off;
}
}
upstream backend {
server 127.0.0.1:9000;
}
А это файл конфигурации поддомена, который был настроен после Вики Nginx. Как видите, субдомен из другого домена, а не из того, на который он перенаправляет.
Я имею в виду, что когда я захожу на phplist.myotherdomain.com, он переходит на www.mydomain.com. Myotherdomain и Mydomain отличаются друг от друга, и на самом деле основной myotherdomain находится на другом сервере и работает отдельно (и я бы хотел оставить его таким). Это файл конфигурации:
server {
listen 80;
server_name phplist.myotherdomain.com;
root /var/www/phplist/public_html/lists;
index index.php;
#access_log <<log file>>;
#error_log <<log file>>;
charset utf-8;
location ~* \.(txt|log|inc)$ {
allow 127.0.0.1;
deny all;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
#block phplist config directory
location /config {
deny all;
}
#per the phplist .htaccess these are the only public allowed php files
location ~* (index\.php|upload\.php|connector\.php|dl\.php|ut\.php|lt\.php|download\.php)$ {
fastcgi_split_path_info ^(.|\.php)(/.+)$;
include /etc/nginx/fastcgi_params.conf; #standar fastcgi config file
fastcgi_param SCRIPT_FILENAME /var/www/phplist/public_html/lists$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
}
#block all other php file access from public
location ~ \.php$ {
deny all;
}
}
Я думаю, что проблема заключается в части fastcgi, но я не уверен, что там не так. Я использую PHP-FPM вместе с Nginx. Корневые папки в порядке, а файлы моих блогов и сервера phplist находятся там, где должны быть.
Любые идеи?