问题Modify document root for nginx proxy under plesk中描述的方法不再适用于Onyx,或者不再需要,但我想要一个完全自定义的nginx配置。
在Plesk Onyx下,他们已经从/var/www/vhosts/example.com/conf/nginx.conf
移动了配置目录,该目录可以使用先前版本的Plesk中的配置变量使用$VAR->domain->physicalHosting->vhostDir . '/conf/nginx.conf'
访问/var/www/vhosts/system/example.com/conf/nginx.conf
,我不会不知道该目录是否有变量,而不是我所知道的变量。
您可以使用控制面板包含自定义nginx服务器级配置,也可以编辑通过$VAR->domain->physicalHosting->customNginxConfigFile
引用的vhost_nginx.conf
但是如果你想编写服务器容器之外的配置命令,我一直在尝试这样的事情:
mkdir -p /usr/local/psa/admin/conf/templates/custom/domain/
emacsvimnano /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php
<?php
/**
* @var Template_VariableAccessor $VAR
* @var array $OPT
*/
?>
<?php $isCustomConfig=false; ?>
<?php $customConfigFilename='/var/www/vhosts/system/'.$VAR->domain->asciiName.'/conf/custom_nginx.conf' ?>
<?php if (is_file($customConfigFilename)): ?>
include "<?php echo $customConfigFilename ?>";
<?php $isCustomConfig=true; ?>
<?php endif ?>
<?php if($isCustomConfig!==true): ?>
<?php include '/usr/local/psa/admin/conf/templates/default/domain/nginxDomainVirtualHost.php'; ?>
<?php endif ?>
有更简单的方法吗?
请注意,您无法使用$VAR->includeTemplate('domain/nginxDomainVirtualHost.php')
,因为这最终会成为循环引用。
如果您只想替换配置的SSL版本并单独保留常规版本,则可以将&& $OPT['frontendPort'] === '443'
添加到包含条件中。