每个域和子域的 Plesk nginx 配置
Posted
技术标签:
【中文标题】每个域和子域的 Plesk nginx 配置【英文标题】:Plesk nginx config for every domain and subdomain 【发布时间】:2014-01-24 01:02:00 【问题描述】:我使用 Plesk,并且拥有三个具有不同 ngnix 配置的域和子域。 目前我在每次更新后更改 /etc/ngnix/plesk.conf.d/vhost/manual 中的 ngnix 配置,因为我的更改被 httpdmng 覆盖。
现在我的问题;我可以在 /usr/local/psa/admin/conf/templates/folder 中为每个域创建一个单独的模板吗?
示例:
mydomain1
使用来自/usr/local/psa/admin/conf/templates/mydomain1/nginxDomainVirtualHost.php
的模板
mydomain2
使用来自/usr/local/psa/admin/conf/templates/mydomain2/nginxDomainVirtualHost.php
的模板
【问题讨论】:
【参考方案1】:如果有人看到这篇文章,对于 plesk 12,您只需在 /var/www/vhost/DOMAINE_NAME/conf/ 目录中创建 vhost_nginx.conf,然后运行 /usr/local/psa/admin/bin/httpdmng 以获取包含在 last_nginx.conf 中的文件
【讨论】:
问题是创建此文件不会覆盖默认情况下已经存在的内容。例如,location /
已由默认文件设置。所以你不能做任何事情来改变它。至少我还没有弄清楚如何不编辑一些东西。【参考方案2】:
Plesk 确实不应该对其核心进行编辑。当您需要更改域级别的配置时,您需要在该文件之外编辑一个文件。在 Apache 下,该文件在您的域目录下名为 vhost.conf
。然后它会将其附加到基本配置中。看起来 nginx 使用了类似的过程。
根据this post,这是您需要做的事情
如何在 nginx 虚拟主机配置中添加自定义包含的步骤如下:
mkdir /usr/local/psa/admin/conf/templates/custom/domain
cp /usr/local/psa/admin/conf/templates/default/domain/nginxDomainVirtualHost.php /usr/local/psa/admin/conf/templates/custom/domain/
添加 /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php:
<?php if (file_exists($VAR->domain->physicalHosting->vhostDir . '/conf/nginx.conf')): ?> include <?php echo $VAR->domain->physicalHosting->vhostDir;?>/conf/nginx.conf; <?php endif ?>
/usr/local/psa/admin/bin/httpdmng --reconfigure-all # 应用新的 所有域的配置
因此,如果域有 conf/nginx.conf - 它将被包含在 虚拟主机配置。
【讨论】:
以上是关于每个域和子域的 Plesk nginx 配置的主要内容,如果未能解决你的问题,请参考以下文章