Я использую веб-сервер Ubuntu с Plesk 11.5.x. Я добавил Nodejs, и теперь я хочу адресовать приложение Nodejs с поддоменом.
Веб-сайт: domain.tld
Приложение Nodejs: 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 или не перезаписывая мою конфигурацию при автоматической перенастройке plesk.
Есть идеи?
Вы можете редактировать файл шаблона 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 найдите следующие строки:
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); ?>
}
Я предлагаю параметризовать это условие, чтобы оно было более гибким