nginx配置,用于在一个域上安装单个WordPress和多站点网络



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

site.com [主站点]

site.com/demos/[多站点]

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

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

nginx已配置并且主站点工作正常,但对于多站点,它返回我404。

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

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

这是我的建议

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

# 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";

}

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

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

这是适用于你的方案的解决方法,但它确实很混乱,因此建议使用源代码管理。

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

最新更新