settings = {
// сервер nodejs будет работать с подтвержденным сертификатом SSL
scheme: 'https',
// указываем порт на котором запустим его, потом будет нужно открыть этот порт
port: 8888,
// ваш хост, наиболее просто использовать тот же хост сайта
host: 'veriga.space',
// с помощью чего будет работь сервер nodejs, не нужно изменять, так как это нарушит интеграцию с Drupal
resource: '/socket.io',
// Секретный ключ для того что бы никто кроме вас не мог слать запросы к этому серверу nodejs.Вам нужно его придумать и потом нужно будет еще его указать в настройке модуля nodejs в самом Drupal
serviceKey: '1111',
// сайт с которым будет общаться
backend: {
// если сверху мы указали что схема будет https, тогда сдесь мы так же обязаны использовать ее. Иначе будет как мининум Mixed Content и вам нужно будет делать много лишних настроек
port: 443,
host: 'veriga.space',
scheme: 'https',
// эти две настройки по умолчанию нужно оставить
basePath: '',
messagePath: '/nodejs/message'
},
// при запуске (node app.js) будут выводиться в консоль логи или нет
debug: false,
// пути к ключам, они должны у вас быть, если нужно сгенирировать можно использовать [https://certbot.eff.org/][1]
sslKeyPath: '/etc/letsencrypt/live/veriga.space/privkey.pem',
sslCertPath: '/etc/letsencrypt/live/veriga.space/fullchain.pem',
sslCAPath: '',
// оставить по умолчанию
baseAuthPath: '/nodejs/',
// расширение для примера, потом можно будет убрать его
extensions: ["example_extension.js"],
// включаем
clientsCanWriteToChannels: true,
clientsCanWriteToClients: true,
// просто оставляем по умолчанию, что это можно будет понять во врямя работы
transports: ['polling', 'websocket'],
jsMinification: true,
jsEtag: true,
logLevel: 1
};
首先,使用相同日志的示例很容易查看 nodejs 模块的原理。例如,网站上有一个管理员在用户执行操作时查看日志。当管理员访问日志页面时,正在运行的 nodejs 服务器对他进行身份验证并知道他在站点上。当用户执行需要记录的操作时,记录后,会启动一个发送消息的 ajaxCallback
到正在运行的 nodejs 服务器。它已经向管理员显示了新日志,而无需使用 NodeJS 工具重新加载页面
Drupal 目前开始与 NodeJS 对话
在文件中
设置 drupal-node.js
nodejs
在npm
操作系统上安装。你可以找到如何转到站点的根目录一级到 index.php 并安装包
drupal-node.js
npm 安装 drupal-node.js
设置 nodejs 服务器配置。转到目录
cd node_modules/drupal-node.js
从示例创建配置文件
打开它
接下来,我将展示我的配置示例。
启动 nodejs 服务器
节点应用程序.js
这个时候你会犯错
这个错误意味着(ERROR ADDRESS NOT AVAILABLE)这个端口在你的操作系统中是关闭的,你需要打开它 打开端口
此错误表示未找到ssl证书文件,需要检查sslKeyPath、sslCertPath
使用不同的端口
(ERROR ADDRESS IN USE) 端口已经在使用中,一个简单的选项是选择不同的端口
我没有任何其他错误。服务器启动并在控制台中显示一条消息
这样就完成了 drupal-node.js 设置
在 Drupal 中设置 nodejs 模块
首先去 /admin/config/nodejs/config
协议 - https 主机 - veriga.space Node.js 服务密钥 - 1111
即使在这一点上我也犯了一个错误
该错误出现在方法中的/includes/common.inc文件中
drupal_http_request
当 Drupal 尝试使用该函数向 nodejs 服务器发送请求(检查其版本)时
从 php5.6 版本开始,根本不可能使用未经验证的 SSL 证书,这就是它返回 FALSE 的原因。
另一个错误是可能的
这意味着您忘记启动 nodejs 服务器
在后台运行nodejs服务器
在站点的根目录
npm 永远安装 -g
cd node_modules/drupal-node.js
永远启动 app.js
永远
nodejs
在npm
操作系统上安装。你可以找到如何安装包
drupal-node.js
cd /var/aegir/platforms/photon_tec-7.0.2/sites/dev.bcltec.com npm install drupal-node.js
设置 nodejs 服务器配置。
cd /var/aegir/platforms/photon_tec-7.0.2/sites/dev.bcltec.com/node_modules/drupal-node.js
从示例创建配置文件
打开它
下一个内容
打开端口 8888 iptables -A INPUT -p tcp --dport 8888--jump ACCEPT iptables -A OUTPUT -p tcp --dport 8888 --jump ACCEPT iptables-save
启动 nodejs 服务器
节点应用程序.js
服务器启动并在控制台中显示一条消息
检查服务器
https://206.189.150.100:8888/example
应该在浏览器中显示 - Hello World
在后台运行nodejs服务器
cd /var/aegir/platforms/photon_tec-7.0.2/sites/dev.bcltec.com
npm 永远安装 -g
cd node_modules/drupal-node.js
永远启动 app.js
https://github.com/foreverjs/forever
这样就完成了 drupal-node.js 设置
++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ +++++++++++++++++++++++++++++++++++
NodeJs 的子域设置和代理配置
子域 njs.dev.bcltec.com 必须按照此说明配置 https://support.cloudflare.com/hc/en-us/articles/200168756-How-do-I-add-a-subdomain-to-my -现场-
根据本教程安装代理https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension
主机配置 njs.dev.bcltec.com.conf
cd /etc/apache2/sites-available touch njs.dev.bcltec.com.conf nano njs.dev.bcltec.com.conf
ProxyRequests Off ProxyPreserveHost On ProxyVia full
a2ensite njs.dev.bcltec.com.conf 服务 apache2 重新加载
++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ +++++++++++++++++++++++++++++++++++++++
在 Drupal 中设置 nodejs 模块
启用以下模块
Nodejs Config Nodejs 集成 Nodejs Notifications - 检查它是否有效
转到 /admin/config/nodejs/config
协议 - https 主机 - njs.dev.bcltec.com Node.js 服务密钥 - 1111