每个域和子域的 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 配置的主要内容,如果未能解决你的问题,请参考以下文章

Plesk:为jenkins用户生成SSH密钥

搜索域和子域的所有 DNS TXT 记录

如何使用python在每个域和子域中查找站点地图

如何在每个都有自己的 GTM 和 GA 容器的根域和子域之间设置跨域跟踪

如何配置 nginx 来托管多个子域

新子域的Plesk事件处理程序