Articles of node.js

让node.js应用程序直接听80端口

我有一个node.js应用程序,我希望它可以直接监听80端口,但是当我使用以下命令node index.js运行节点应用程序node index.js但运行systemctl start firewalld 。 当防火墙运行时,我无法查看应用程序,当我访问80端口。 但是当我使用命令systemctl stop firewalld禁用防火墙时,我可以在访问80端口时查看应用程序 如何在运行防火墙的情况下访问/查看我的应用程序? OS信息 Centos 7 64位 使用最小的ISO 在VM工作站12.5.7上运行

缩放socket.io – 每个核心一个进程?

我目前正在扩大build立在Nginx,PHP,MySQL,Redis,Node.js / socket.io(Nginx反向代理)上的网站。 目前一切都在一台服务器上。 我将要有一个数据库服务器,一个用于会话的高级服务器,高速caching以及用于Web套接字的消息,以及负载平衡器后面的多个Web服务器。 我知道Node.js是单线程的,并且可以扩展,每个CPU核心可以运行一个进程。 在“多节点”socket.io示例中 ,它显示了四个节点。 我会认为这是一个4核机器是正确的吗? 还是可以在单核CPU上运行四个进程?

浏览器同步不会从Docker中的主机编辑触发

我正在使用安装了卷的浏览器同步+networking包+ docker工作stream程 我可以让所有的东西都可以运行,但是当编辑出现问题的时候就会出现问题。 对主机卷上的文件进行编辑会反映在容器中,但不会触发浏览器同步或Web包重新加载 但是,容器中的编辑会反映在主机中,并触发从networking包和浏览器同步重新加载 我在跑 苹果系统 docker> = 17 docker-compose> = 15 节点> = 8 npm> = 5 纱线=> 0.24.6。 网页包2 我的撰写文件 version: '3.2' services: node: image: node:latest volumes: – ~/Documents/Git/gblsf-wp-child-theme:/usr/src/app:rw – wordpress-data:/var/www/html – /usr/src/app/node_modules working_dir: /usr/src/app entrypoint: yarn command: install ports: – '3000:3000' – '3001:3001' nginx: image: nginx:latest ports: – '8000:8000' depends_on: – […]

通过IIS反向代理与https的节点JS应用程序

你可以帮我通过IIS反向代理的HTTPS? 我在本地networking中设置我的nodejs应用程序为http://mayapp.domain.com:8080和https://myapp.domain.com:8443 。 它工作正常。 对于外部访问,我使用端口转发(8080-> 80,8443-> 443)的IIS反向代理(ARR和URL重写模块3.0)。 外部http现在工作正常,但https返回404(未find)

Express-Mailer电子邮件日志?

运行Ubuntu 16.04的服务器。 运行该网站的框架使用了Express-mailer。 似乎邮件日志是与/或被称为mongoose的东西,这似乎与MongoDB有关。 我没有任何这方面的经验。 有人能告诉我如何访问/查看日志? 服务器IP显示在一个垃圾邮件列表中,我需要validation在申请删除我们之前是否实际上发送垃圾邮件。 提前致谢!

可能导致“npm run”的行为有所不同,具体取决于我正在运行哪个用户?

我在我们的一台机器上给了我们一个开发人员有限的SSH访问权限。 出于某种原因,以普通用户身份运行它不会导致其正常运行。 最后一行是类似的 10% building modules 1/1 modules 0 active 那么就在那个时候终止而没有错误。 通过npm run <script> –verbose不会显示任何警告或错误。 但是,如果以root身份运行,它将正常运行。 我已经确认node_modules及其中的所有内容都由用户拥有。 新的迹象和症状:运行npm run <script>将导致核心文件core.numbers出现在运行的目录中。

nginx返回502即使备份是活的

考虑下面的nginxconfiguration。 我有两个节点js服务器分别在端口8008和9008上运行。 当我在8008取下服务器时,在access.log收到502错误。 我已经validation了9008上的服务器通过交换端口并重新加载configuration来工作。 为什么我会看到502错误? upstream backend { server localhost:8008 max_fails=1 fail_timeout=3s; server localhost:9008 backup; } server { listen 80; server_name app.domain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name app.domain.com; ssl_certificate ssl/chained.crt; ssl_certificate_key ssl/server.key; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto […]

保持对json文件的索引

我有一个目录有大约1个lac json文件。 我想检索文件名列表,其中文件满足一组条件,过滤条件与我们可以在mongodb查找过滤对象相同的格式查找查询 原始文件系统本身是否有某种逻辑来维护索引,就像mongodb为其文档所做的那样。 还是存在一些工具来做同样的事情? 这些文件可以在任何时间点添加,更新和删除,因此索引应该始终保持。 我正在研究一些nodejs应用程序,所以宁愿一些跨平台兼容的npm工具。

AWS为caching页面/应用部署策略

我们有一个启用了服务器端渲染的单页面应用程序。 我们在AWS ELB上托pipe。 应用程序资源( js , css文件)在文件名中包含一个散列,用于控制客户端/代理端的caching,并且能够确保自从新版本到达后,我们的每个客户都将获得它的新版本。 要做得好,我们已经决定caching整个文件的标题,正文和页脚的一切。 这是预渲染(与所有组件)结果存储在caching中。 它工作得很好,但有一个问题。 无论我们使用什么样的部署策略,我们总是面对这个策略。 我们有两个实例,由于我们使用Rolling方法(这是AWS推荐的)将一个新构build部署到其中一个实例,所以我们使Memcache无效,但问题是:尚未更新的实例(以前的构build),正在工作(处理请求)。 这意味着如果旧的实例会比新的实例(有时候会发生什么)更快地接收到一个请求,那么我们将得到caching的老版本的文档,它指的是不存在的资源(在文件名中使用旧的散列) 。 我看到几个解决scheme:1.开始使用简单的文件名为资产(避免散列)2.不要使用memcache直到所有的实例更新,他们都不符合我们的要求。 有没有其他解决scheme?

NGNIX反向代理NodeJS子域返回域

我已经写了一个NodeJS应用程序,它使用express和express-subdomain包来与域: api.localhost和localhost 。 我试图使用NGINX作为反向代理来处理对应用程序的请求,但是我的子域正在返回完整域的内容。 我有问题搞清楚是什么问题 – 有什么想法? 当我不使用NGINX和HTTPS时,它似乎能够正常工作; 但我希望这两个HTTPS没有购买通配符证书(现在我使用certbot,我认为需要一种方法来定义每个域的不同证书) 我的router.ts文件的router.ts应用程序: import * as express from 'express'; import * as subdomain from 'express-subdomain'; // See subdomain package import { UserRoutes } from './User'; import { AuthRoutes } from './Auth'; export class Router { static routeAPI(app) { const router = express.Router(); router.use((req, res, next) => { res.header('Access-Control-Allow-Origin', […]