一个域中用于单个wordpress安装和多站点网络的nginx配置

时间:2018-07-07 20:23:50

标签: wordpress nginx multisite

我已经在Nginx上建立了我的主要WordPress网站,并且/ demos /子目录具有多站点网络。

site.com [主站点]

site.com/demos/ [多站点]

site.com/demos/theme1 [子站点]

site.com/demos/theme2 [子站点]

nginx已配置好并且可以在主站点上正常工作,但对于多站点,它将返回404。

多站点可以与子域配置一起使用。有没有一种方法可以使它与子目录一起工作?

1 个答案:

答案 0 :(得分:0)

您应该查看Trellis,它允许您配置多站点和多租户WordPress站点,并且它使用简单的配置文件为您配置Nginx。唯一的问题是它基于子域,因此您需要对生成的配置进行一些修改。

  

这是我的建议

Nginx支持location内的多个server{}块配置,这可能正是您要寻找的。

# This block redirects all request from HTTP to HTTPS without losing any arguments or parameters
server {
        listen 80;
        server_name site.com;
#       root /var/www/html;
        return 301 https://$server_name$request_uri;
        location / {
               return 301 https://$server_name$request_uri;
        }
}

server {
        listen 443 ssl;
        server_name site.com;

        location /demos/theme1/ {
                root /var/www/html/demos/theme1;
                client_max_body_size 100M;
        }

        location /demos/theme2/ {
                root /var/www/html/demos/theme2;
                client_max_body_size 100M;
        }

        #    listen 443 ssl; # managed by Certbot
        ssl_certificate /path/to/fullchain.pem;
        ssl_certificate_key /path/to/privkey.pem;
        ssl_session_cache shared:le_nginx_SSL:1m;
        ssl_session_timeout 1440m;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-SHA ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES256-SHA384 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES128-SHA ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-SHA384 DHE-RSA-AES128-GCM-SHA256 DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES128-SHA DHE-RSA-AES256-SHA DHE-RSA-AES128-SHA256 DHE-RSA-AES256-SHA256 EDH-RSA-DES-CBC3-SHA";


}

然后将其保存到.conf中扩展名为/etc/nginx/sites-available/site.conf/etc/nginx/sites-availabe/)的文件中,并按照Nginx的建议在/etc/nginx/sites-enabled/文件夹中创建指向该文件的符号链接。但是您可以将文件直接放置在/etc/nginx/sites-enabled/文件夹中,而无需使用符号链接。

您应该在每个域(多站点)中使用一个文件,以便更容易地修正错误,因为一个错误的配置文件可能会用500 - Internal server error502 - Bad Gateway删除Nginx

这是针对您的方案的解决方法,但确实很麻烦,因此建议使用源代码控制。

如果多站点具有自己的域,则应在各自的配置文件中配置每个多站点。