Articles of node.js

在Apache上redirect不工作

我正尝试在Ubuntu机器上使用Apache在我的域中为我的节点应用程序创build一个子域。 这是我的app.conf ServerName mysubdomain.domain.com.br DocumentRoot /var/www/html/app/ ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> <Location "/"> ProxyPreserveHost On ProxyPass http://mypublicip:3000/ ProxyPassReverse http://mypublicip:3000/ </Location> ErrorLog ${APACHE_LOG_DIR}/bot_error.log CustomLog ${APACHE_LOG_DIR}/bot_access.log combined 但是当我访问mysubdomain.domain.com.br时,我从/ var / www / html而不是托pipe应用程序获取所有文件的列表。 当我访问myip:3000我得到应用程序运行。 我怎样才能解决这个问题?

ADFS错误 – MSIS9605:客户端不允许访问请求的资源

我有Dynamics CRM 2016的内部部署安装,它具有使用ADFS 4.0(Server 2016)实例configuration的基于声明的身份validation。 通过ADFSlogging到CRM工作正常。 我有一个单独的Node.js应用程序尝试使用Microsoft提供的ADAL库访问CRM Web API来执行身份validation。 我已经使用PowerShell为具有客户端ID和密钥的此Node应用程序创build了一个ADFS客户端。 当节点代码执行以从ADFS获取用于调用CRM Web API的令牌时,出现错误MSIS9605:客户端不允许访问请求的资源 。 很明显,这个调用正在到达ADFS,但我似乎无法find一种方法来configurationADFS,以允许客户访问由ADFS保护的其他资源。 这里是Get-ADFSRelyingPartyTrust的输出: AllowedAuthenticationClassReferences : {} EncryptionCertificateRevocationCheck : CheckChainExcludeRoot PublishedThroughProxy : False SigningCertificateRevocationCheck : CheckChainExcludeRoot WSFedEndpoint : https://crm.mysite.com/ AdditionalWSFedEndpoint : {} ClaimsProviderName : {} ClaimsAccepted : {, , } EncryptClaims : True Enabled : True EncryptionCertificate : [Subject] CN=*.mysite.com, OU=Domain Control Validated […]

我应该在node.js应用程序中写入我的数据库凭据?

我正在Google Compute Engine上部署基于Ghost的node.js应用程序。 但是,我不确定在config.js写入我的数据库凭证是否是一个好的行为。 config.js文件如下所示: … 'production': { url: 'http://127.0.0.1:2368', database: { client: 'mysql', connection: { host : '127.0.0.1', user : 'root', password : 'root', database : 'ghost', charset : 'utf8' } }, server: { host: '127.0.0.1', port: '2368' }, },… 但是,这包括在config.js硬编码的数据库凭证。 我不确定这是否足够安全的生产。 我应该使用process.env.xxx环境variables(例如process.env.DB_USER )来设置凭据吗? 在这种情况下,将这些环境variables写入文件并使用configuration运行应用程序的最佳方法是什么?

iPhone / Android不会解雇用DNS实现的wifi登陆页面

我正试图在我现有的公共WiFinetworking上实现一个启动页面/ wifi登陆页面,使用维基中提到的DNS方法 ,在这里我托pipe一个自定义的DNS服务器,将所有的DNS查询redirect到一个本地地址,托pipe给所有用户,然后点击同意。 用户点击同意后,我的自定义DNS服务器开始返回正确的IP查找,从而,用户将能够上网。 注意:我们完全理解,这绝对不能保证我们的networking,甚至使我们的networking处于危险之中。 但是,这里的目标是将登陆页面popup到用户面前。 这种方法实际上在Windows Phone(我testing过的Windows 8)上起作用,甚至在电脑上,当我尝试打开一个随机的网站时,它将我redirect到我的页面,当我打开同意后,我可以上网。 当我尝试在iPhone / Android上尝试时,一旦我连接到热点,splash页面/ wifi着陆页就会如预期般出现(因为设备试图通过转到页面来validation互联网访问)。 但是 ,点击同意后,并允许上网,iPhone和Android的启animation面都不会消失。 我必须强迫iPhone“使用这个无线networking”退出。 我不知道是否有一个特殊的(JavaScript?)方法,我可以在页面中调用,或者我需要发送到设备的一些包? 我注意到在iOS上,如果我点击一个链接到App Store,这个启动页面就会离开networking,所以我想我在这里丢失了一些东西。 现在已经search了一个星期,似乎没有任何东西出现。 顺便说一下,我正在构build我的自定义dns服务器节点js,与模块dnsd。

Nginx偶尔会返回403禁止某些API / *路由

我使用Nginx作为node.js服务器的反向代理,我有以下路由,它们以: – /api/… – /auth/… 如果我以隐身模式打开我的网站,并尝试提交一个表单,坚持使用路由'/api/user'我得到403禁止。 我很困惑,在我的本地机器与服务器运行vagrant和nginx我从来没有这样的问题。 在制作中,我也设法成功地在上述路线上提交了几次表单,但是从来没有进入隐身模式。 我只代理某些路由到nodejs像这样: location ~ ^/(api|user|auth|socket.io-client|sitemap.xml) { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_set_header Upgrade $http_upgrade; proxy_ssl_session_reuse off; proxy_redirect off; proxy_set_header Connection 'upgrade'; proxy_cache_bypass $http_upgrade; proxy_http_version 1.1; proxy_pass_header X-CSRFToken; add_header X-Frame-Options SAMEORIGIN; sendfile off; proxy_pass http://nodejs_upstream; } 我检查了路由'/api/user'正被上面的块正确捕获,所以也许它涉及到nodejs服务器的权限,但我坚持在这一点上。 谢谢你的帮助。

Passenger修改了我的应用在启动时使用的NODE_PATH

我使用Node.js应用程序在Apache服务器(运行Ubuntu 16.04的数字海洋液滴)上实现Passenger。 Webpack成功地build立了静态的.js文件,并且Node成功地运行了启动。 但是,从浏览器访问该网站时,出现Cannot find module 'app/path/to/file' 。 我的应用程序使用NODE_PATH环境variables将应用程序源设置为./src因此在导入语句中,我不必将path设置为src/app/path/to/file ,而只是将app/path/to/file 。 但是,Passenger正在修改NODE_PATHvariables,并且在发出页面请求时,Node会使Passenger崩溃,因为NODE_PATH不再设置为./src (但是,在Node启动和Webpack构build期间, NODE_PATH=./src是因为Passenger不参与这些过程)。 所以我的问题是,什么是设置NODE_PATH=./src但仍然保持相同的效果(即src/app/path/to/file => app/path/to/file )的替代方法。

CentOS 6.8 OpenSSL v1.0.1 – 支持NodeJS握手

我已经在我的CentOS 6.8表单二进制包中安装了nodejs(最新的v.7.xx)。 我正尝试连接到使用相当旧的TSLv1encryption协议的站点。 在与该域的握手(我使用https模块)NodeJS失败,并出现以下错误消息: Error: write EPROTO 140078368692000:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:../deps/openssl/openssl/ssl/s23_clnt.c:769: at exports._errnoException (util.js:1033:11) at WriteWrap.afterWrite [as oncomplete] (net.js:816:14) 而当我添加secureProtocol选项(将其设置为TLSv1_method)时,我得到: write EPROTO 140528424298272:error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error:../deps/openssl/openssl/ssl/s3_pkt.c:1493:SSL alert number 80 140528424298272:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:659: OpenSSL版本(就像二进制包一样)在我的机器上目前有版本: OpenSSL 1.0.1e-fips 11 Feb 2013 据我所知,NodeJS使用它自己的二进制包,所以升级不会帮助(如果可能,我想避免这种情况)。 我已经检查了OpenSSL的更新日志,似乎没有任何问题影响到OpenSSL的特定版本(我是握手问题)。

EC2 AWS实例不构build对bcrypt的依赖关系

我在这里发布,因为这显然是一个服务器configuration问题,而不是代码问题。 我有一个应用程序在我的本地Windows PC上工作,但是当试图运行时: npm install bcrypt 在AWS EC2服务器(RHEL)上,出现以下错误: npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] install: `node-pre-gyp install –fallback-to-build` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the [email protected] install script 'node-pre-gyp install –fallback-to-build'. 似乎有一些关于bcrypt节点模块在某些环境下不工作的post,但没有一个出现在RHEL EC2框中,只有一个告诉我运行以下(不起作用): sudo yum install nodejs npm –enablerepo=epel sudo yum groupinstall "Development tools"

在Linux或Windows上的Azure应用程序服务

我想在Azure应用服务上运行Node.js API。 我可以在Linux或Windows上selectAzure App Service。 什么是select一个在另一个之上的论据?

从不同的存储库中replaceCentOS / RedHat包装

我已经inheritance了一个CentOS服务器,从epel仓库安装nodejs。 然而,我需要一个特定的版本,所以我已经安装了nodejs存储库,但是我不能从新的存储库更新它,因为它告诉我以下内容: Loaded plugins: fastestmirror nodesource | 2.5 kB 00:00:00 nodesource/x86_64/primary_db | 38 kB 00:00:00 Loading mirror speeds from cached hostfile * base: ftp.freepark.org * epel: mirror.imt-systems.com * extras: ftp.freepark.org * remi: mirror.23media.de * remi-php56: mirror.23media.de * remi-safe: mirror.23media.de * updates: ftp.freepark.org Resolving Dependencies –> Running transaction check —> Package npm.x86_64 1:3.10.10-1.6.9.4.2.el7 will be updated […]