我在用着drupal 的 perusio 配置但我认为这只是为单个网站设计的。php 在子文件夹中不起作用。
我想要创建如下结构:
主站点
- /var/www/domain.com/master/src/
子网站
- /usr/local/子站点/_site1/src/
- /usr/local/子站点/_site2/src/
- /usr/local/子站点/_site3/src/
我想要访问如下子站点:
domain.com/site1
domain.com/site2
domain.com/site3
有没有用于此的 nginx 配置?
我想在以下配置中添加 3 个子文件夹。
# -*- mode: nginx; mode: flyspell-prog; ispell-current-dictionary: american -*-
### Configuration for domain.com.
## HTTP server.
server {
listen 80; # IPv4
server_name localhost;
limit_conn arbeit 32;
## Access and error logs.
access_log /var/log/nginx/domain.access.log;
error_log /var/log/nginx/domain.error.log;
## See the blacklist.conf file at the parent dir: /etc/nginx.
## Deny access based on the User-Agent header.
if ($bad_bot) {
return 444;
}
## Deny access based on the Referer header.
if ($bad_referer) {
return 444;
}
## Protection against illegal HTTP methods. Out of the box only HEAD,
## GET and POST are allowed.
if ($not_allowed_method) {
return 405;
}
## Filesystem root of the site and index.
root /var/www/domain.com/master/src/;
index index.php;
fastcgi_keep_conn on; # keep alive to the FCGI upstream
################################################################
### Generic configuration: for most Drupal 7 sites.
################################################################
include apps/drupal/drupal.conf;
include apps/drupal/drupal_install.conf;
include apps/drupal/drupal_upload_progress.conf;
include nginx_status_vhost.conf;
} # HTTP server
答案1
您正在使用的配置是相当彻底的硬编码,以期望站点的根目录是唯一的 drupal 实例 - 大量绝对location
块:https://github.com/perusio/drupal-with-nginx/blob/D7/apps/drupal/drupal.conf
我建议你不要尝试编辑所有这些内容(光是想想就让我感到畏缩),而是server
在 nginx 配置中为每个子站点创建自己的块,并使用虚假的主机名,例如site1.example.com
- 然后进行设置反向代理在主服务器块中代理example.com/site1
到site1.example.com
。