我正在使用Plesk 11.5.x的Ubuntu Web服务器。 我添加了Nodejs,现在我想用一个子域名来pipe理Nodejs应用程序。
网站: domain.tld
Nodejs App: app.domain.tld
目前工作: domain.tld:2368 ,但我想隐藏端口的帮助下的子域。
我应该能够做到以下几点:
upstream app_myApp { server 127.0.0.1:2368; } server { listen 0.0.0.0:80; server_name app.domain.tld; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://app_myApp/; proxy_redirect off; } }
我的问题是在哪里放置,因为我正在使用Plesk。 在Plesk 11.5的.../system/domain.tld/conf/vhost_nginx.conf是上游和服务器命令不允许。 而location /也是不可能的。
我想我会需要像/etc/nginx/sites-available/domain.tld 。 我不知道在哪里添加这个没有破坏plesk或我的configuration覆盖自动plesk reconfig。
有任何想法吗?
你可以编辑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中find以下几行:
location / { <?php echo $VAR->includeTemplate('domain/service/proxy.php', $OPT); ?> }
并根据您的需求进行调整:
location / { <?php if ('mydomain.tld' == $VAR->domain->asciiName ) { echo $VAR->includeTemplate('PATHTONODECONFIG.php', $OPT); ?> } else { echo $VAR->includeTemplate('domain/service/proxy.php', $OPT); ?> }
我build议参数化这个条件,以便更灵活