Предисловие: попытался установить расширение узла JXCore для Plesk, но не могу заставить его работать. Выдает мне некоторую ошибку, и их служба поддержки не отвечает на электронные письма ...
[IP ADDRESS] = реальный IP, example.com = реальный домен
В любом случае у меня есть приложение nodejs, работающее с сертификатом SSL. Работает нормально, если я перейду на https://example.com:3000 , это порт, который я использую для Node. Сертификат SSL загружается зеленым цветом, и все работает отлично.
Я использую Plesk 12.5, и Nginx уже установлен. Файл .conf находится по адресу /var/www/vhosts/[domain ]/conf/nginx.conf.
Вверху написано:
#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,
#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.
И они не шутят. Любые изменения в этом файле практически сразу же перезаписываются.
Вот все содержимое файла:
server {
listen [IP ADDRESS]:443 ssl;
server_name example.com;
server_name www.example.com;
server_name ipv4.example.com;
ssl_certificate /usr/local/psa/var/certificates/cert-HREdQ9;
ssl_certificate_key /usr/local/psa/var/certificates/cert-HREdQ9;
ssl_client_certificate /usr/local/psa/var/certificates/cert-wpX6q1;
client_max_body_size 128m;
root "/var/www/vhosts/msgable.com/httpdocs";
access_log "/var/www/vhosts/system/example.com/logs/proxy_access_ssl_log";
error_log "/var/www/vhosts/system/example.com/logs/proxy_error_log";
location / {
proxy_pass https://[IP ADDRESS]:7081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
location @fallback {
proxy_pass https://[IP ADDRESS]:7081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
location ~ ^/plesk-stat/ {
proxy_pass https://[IP ADDRESS]:7081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
location ~ ^/(.*\.(ac3|avi|bmp|bz2|css|cue|dat|doc|docx|dts|eot|exe|flv|gif|gz|htm|html|ico|img|iso|jpeg|jpg|js|mkv|mp3|mp4|mpeg|mpg|ogg|pdf|png|ppt|pptx|qt|rar|rm|svg|swf|tar|tgz|ttf|txt|wav|woff|woff2|xls|xlsx|zip))$ {
try_files $uri @fallback;
}
location ~ ^/(plesk-stat|webstat|webstat-ssl|ftpstat|anon_ftpstat|awstats-icon) {
proxy_pass https://74.208.65.63:7081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
location ~ ^/~(.+?)(/.*?\.php)(/.*)?$ {
alias /var/www/vhosts/example.com/web_users/$1/$2;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass "unix:///var/www/vhosts/system/example.com/php-fpm.sock";
include /etc/nginx/fastcgi.conf;
}
location ~ ^/~(.+?)(/.*)?$ {
proxy_pass https://[IP ADDRESS]:7081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
location ~ \.php(/.*)?$ {
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass "unix:///var/www/vhosts/system/example.com/php-fpm.sock";
include /etc/nginx/fastcgi.conf;
}
location ~ /$ {
index index.html index.cgi index.pl index.php index.xhtml index.htm index.shtml;
}
include "/var/www/vhosts/system/example.com/conf/vhost_nginx.conf";
}
Я не буду включать HTTP (не ssl), потому что это та же информация. Единственная разница в том, что это порт 80, а proxy_pass установлен на 7080.
Внизу вы заметите:
include "/var/www/vhosts/system/example.com/conf/vhost_nginx.conf";
Вот что я вложил в этот файл:
location / {
proxy_pass https://[IP ADDRESS]:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
}
Помещая это туда, я получаю:
nginx: [emerg] duplicate location "/"
Я также пробовал использовать в настройках Plesk «Дополнительные директивы nginx», но получаю ту же ошибку:
nginx: [Emerg] повторяющееся местоположение "/" Есть идеи? Я собираюсь сбросить Plesk и посмотреть на AWS или что-то в этом роде .... Я пришел к выводу, что: а) вы НЕ можете перезаписывать конфигурации Nginx, созданные Plesk, б) вы НЕ можете напрямую изменять файл conf.
Таким образом, использование proxy_pass в Plesk невозможно.
Редактировать:
Также попытался сделать это в восходящем направлении, но добавление директив Upstream в интерфейс администратора через Plesk или через vhost_nginx.conf дает мне сообщение об ошибке: «Директива nginx: [emerg] Upstream здесь не разрешена».
Изменить № 2: Прочтите этот пост Nginx, чтобы обратиться к приложению Nodejs , добавление того, что было объяснено здесь, ничего не дает. Начинаю думать, что это невозможно с Plesk.
ARG! Такая простая задача на сервере без Plesk!
После двух дней возни это решило для меня. В Plesk вы переходите к «Дополнительные директивы nginx» на странице «Параметры хостинга».
Это то, что я добавил, чтобы сделать Nginx proxy_pass в моем приложении узла. Не нужно вообще редактировать или изменять какие-либо файлы .conf.
## Set the location routing.
location ~ / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
##Use the domain.tld here.
proxy_pass https://example.com:3000;
}
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения