大佬教程收集整理的这篇文章主要介绍了Plesk 12.5 Nginx代理将SSL传递到不同端口上的Node应用程序,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
前言:尝试为Plesk安装Jxcore的Node Extension,我无法让它工作.给我一些错误,他们的支持不是回复电子邮件……@H_616_2@
[IP ADDRESS] =真实IP,example.com =真实域@H_616_2@
无论如何,我有我的nodejs应用程序并运行SSL证书.如果我去https://example.com:3000工作正常,这是我用于Node的端口. SSL证书加载所有绿色,一切都很好.@H_616_2@
我正在使用Plesk 12.5,并且已经安装了Nginx. .conf文件位于/var/www/vhosts/[domain]/conf/Nginx.conf.@H_616_2@
在顶部它说:@H_616_2@
#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.
他们不是在开玩笑.对此文件进行任何更改几乎立即被覆盖.@H_616_2@
这是整个文件内容:@H_616_2@
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.@H_616_2@
你会在底部注意到它有:@H_616_2@
include "/var/www/vhosts/system/example.com/conf/vhost_Nginx.conf";
这是我在该文件中添加的内容:@H_616_2@
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;
}@H_616_2@
把它放在那里给了我一个:@H_616_2@
Nginx: [emerg] duplicate LOCATIOn "/"
我也尝试在设置中使用Plesk的“附加Nginx指令”,但是我得到了同样的错误:@H_616_2@
Nginx:[emerg]重复的位置“/”
有任何想法吗?我准备抛弃Plesk并调查AWS或其他……
我得出的结论是,a)你不能覆盖Plesk创建的Nginx confs,b)你不能直接更改conf文件.@H_616_2@
所以基本上与Plesk的proxy_pass是不可能的.@H_616_2@
编辑:@H_616_2@
还尝试了上游方式,但是通过Plesk或通过vhost_Nginx.conf将upstream指令添加到管理界面给了我一个错误,说“Nginx:[emerg]指令不允许在此处使用Upstream”.@H_616_2@
编辑#2:
阅读这篇文章Nginx to address Nodejs app,添加在这里解释的内容没有任何作用.开始认为使用Plesk是不可能的.@H_616_2@
ARG!没有Plesk的服务器上这么简单的任务!@H_616_2@
这是我添加Nginx proxy_pass到我的节点应用程序.
根本没有编辑或更改任何.conf文件.@H_616_2@
## 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;
}
以上是大佬教程为你收集整理的Plesk 12.5 Nginx代理将SSL传递到不同端口上的Node应用程序全部内容,希望文章能够帮你解决Plesk 12.5 Nginx代理将SSL传递到不同端口上的Node应用程序所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。