Nginx来解决Nodejs应用

我正在使用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议参数化这个条件,以便更灵活