nginx unit nodejs 模块试用(续)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了nginx unit nodejs 模块试用(续),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2617字,纯文字阅读大概需要4分钟。
内容图文
![nginx unit nodejs 模块试用(续)](/upload/InfoBanner/zyjiaocheng/1307/7a2bbac4416d402aaadc59de3e586b35.jpg)
最新(应该是18 年了)nginx unit 发布了新的版本,对于nodejs 的支持有很大的改进,上次测试过,问题还是
比较多,这次使用新版本在测试下对于nodejs 的支持,以及以前block 的问题。
备注: 测试系统centos 7
环境准备
- 配置yum源
/etc/yum.repos.d/unit.repo
[unit]
name=unit repo
baseurl=https://packages.nginx.org/unit/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
- 安装unit 以及需要的语言支持
yum install unit-php unit-python unit-go unit-perl unit-devel unit
- 安装nodejs
yum install -y nodejs
升级node 版本
npm insatll -g n
n 8.11.4
- 安装node-addon 构建依赖
yum install gcc-c++
基本项目
- nodejs 项目结构(为了测试集成了php),目录/opt/nodejs
├── app.js
├── blogs
│ └── index.php
├── package.json
└── unit.json
- 代码说明
package.json
{
"name": "nodejs",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"express": "^4.16.4",
"unit-http": "^1.5.1"
}
}
app.js: 使用unit 的http 模块托管管理http server
#!/usr/bin/env node
const {
createServer,
IncomingMessage,
ServerResponse,
} = require(‘unit-http‘)
require(‘http‘).ServerResponse = ServerResponse
require(‘http‘).IncomingMessage = IncomingMessage
const express = require(‘express‘)
const app = express()
app.get(‘/‘, (req, res) => {
res.set(‘X-Unit-Type‘, ‘Absolute‘)
res.send(‘Hello, Unit!‘)
})
createServer(app).listen()
index.php
<?php
echo "php demo website"
?>
unit.json unit 服务配置文件
{
"listeners": {
"*:8080": {
"application": "hello-unit"
},
"*:8300": {
"application": "blogs"
}
},
"applications": {
"hello-unit": {
"type": "external",
"user":"root",
"group":"root",
"working_directory": "/opt/nodejs",
"executable": "app.js",
"processes":5
},
"blogs": {
"type": "php",
"processes": 5,
"user":"root",
"group":"root",
"root": "/opt/nodejs/blogs",
"index": "index.php"
}
}
}
服务启动&&测试
- 启动服务(使用systemd 管理修改了启动controller 访问地址),注意app.js 可能需要添加执行权限
chmod +x app.js 实际参考提示的信息
cat /etc/sysconfig/unit
UNITD_OPTIONS="--log /var/log/unit.log --pid /run/unit.pid --control 0.0.0.0:9000"
systemctl restart unit
- 注册服务
curl -X PUT -d @$PWD/unit.json http://localhost:9000/config
- 查看结果
说明
现在的版本已经挺不错了,支持状态管理,默认在/var/lib/unit/conf.json,重启之后服务可以自动注册。
通过测试,以前版本block 的问题,以及解决了,还是很不错的,但是实际对于其他框架支持的程度
还是需要测试的。
格式如下:
{"listeners":{"*:8080":{"application":"hello-unit"},"*:8300":{"application":"blogs"}},"applications":{"hello-unit":{"type":"external","working_directory":"/opt/nodejs","executable":"app.js","processes":5},"blogs":{"type":"php","processes":5,"root":"/opt/nodejs/blogs","index":"index.php"}}}
参考资料
https://github.com/nginx/unit/issues/175
https://unit.nginx.org/installation/#node-js-package
https://unit.nginx.org/configuration/
https://medium.com/house-organ/what-an-absolute-unit-a36851e72554
原文:https://www.cnblogs.com/rongfengliang/p/10357027.html
内容总结
以上是互联网集市为您收集整理的nginx unit nodejs 模块试用(续)全部内容,希望文章能够帮你解决nginx unit nodejs 模块试用(续)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。