我想在同一台机器上设置多个node.js服务器(但在不同的端口上监听),这样我就可以在不影响其他的情况下编辑代码了。 不过,我希望能够从浏览器访问这些Web应用程序,而无需键入端口号,而是将不同的URL映射到不同的端口:例如45.23.12.01/app – > 45.23.12.01:8001。 我已经考虑过使用node-http-proxy ,但是它还不支持SSL。 我的直觉是nginx可能是最合适的。 我以前从来没有设置nginx – 我需要做什么configuration? 我见过的configuration文件的例子只处理子域,我没有。 另外,是否有一个更好的(稳定,无忧无虑)托pipe多个应用程序在同一个IP地址下的方式?
使用ssllabs.com的扫描告诉我RC4正在使用中。 我读了在Windows 2012 R2中应默认禁用RC4。 我使用https.createServer运行node.js服务器,而不是指定密码(默认情况下) ssllabs.com说: This server accepts the RC4 cipher, which is weak TLS_RSA_WITH_RC4_128_SHA (0x5) WEAK TLS_ECDHE_RSA_WITH_RC4_128_SHA (0xc011) WEAK 我按照这些说明禁用了registry中的RC4: http : //windowsitpro.com/windows/disabling-rc4-cipher 我也尝试在节点createHttpsServer中指定密码,如下所示: ciphers: [ "ECDHE-RSA-AES128-GCM-SHA256", "ECDHE-ECDSA-AES128-GCM-SHA256", "ECDHE-RSA-AES256-GCM-SHA384", "ECDHE-ECDSA-AES256-GCM-SHA384", "DHE-RSA-AES128-GCM-SHA256", "ECDHE-RSA-AES128-SHA256", "DHE-RSA-AES128-SHA256", "ECDHE-RSA-AES256-SHA384", "DHE-RSA-AES256-SHA384", "ECDHE-RSA-AES256-SHA256", "DHE-RSA-AES256-SHA256", "HIGH", "!aNULL", "!eNULL", "!EXPORT", "!DES", "!RC4", "!MD5", "!PSK", "!SRP", "!CAMELLIA" ].join(':'), honorCipherOrder: true 仍然得到相同的消息,说RC4正在使用,我的成绩从B下降到C,所以设置node.js密码列表确实有影响。 单击“最佳做法”选项后,使用IIS Crypto禁用RC4密码导致我的ssllabs扫描结果没有差异。 […]
我是一个程序员,试图找出一些超出我的领域的东西: 说我有一台机器,客户端将使TCP(但不是http!)连接到它。 我想根据他们连接到的主机名将客户端redirect到他们自己的端口。 例如,client1连接到client1.myserver.com并连接到端口1234. client2.myserver.com – > 1235,client3.myserver.com – > 1236等 我想dynamic地控制主机y的端口x实际上指向物理机器上的端口z。 当search这个信息,我看到防火墙,代理,反向代理的参考。 我真的需要哪些软件? 现有的软件是否允许按需更改(我听说防火墙需要一天的更改)? 如果我想自己编写这样一个层(因为它可能有点特定于应用程序),是否可以在java或node.js中完成(我的意思是可以使用更高级别的API来完成,或者我必须开始拆分ip包)? 我怎么知道客户端连接到哪个主机名,因为所有的主机名都parsing到同一台机器上? 我会很欣赏任何阅读材料的指针。
我试图在CentOS 7上运行的Nginx服务器上运行多个Nodejs应用程序。我注意到,当我在某些端口上运行一个Nodejs应用程序时,在浏览器中出现502 Bad Gateway错误,所以我检查了错误日志: [notice] 12806#0: signal process started [crit] 12807#0: *13 connect() to 127.0.0.1:7777 failed (13: Permission denied) while connecting to upstream, client: **.**.99.58, server: myapp.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:7777/", host: "myapp.com" [crit] 12807#0: *13 connect() to [::1]:7777 failed (13: Permission denied) while connecting to upstream, client: **.**.99.58, server: myapp.com, request: "GET […]
我正在尝试使用.ebextensions命令为我的弹性beanstalk实例添加一个ssh密钥。 我存储的密钥在我的应用程序代码中,我尝试将它们复制到根.ssh文件夹,以便以后在执行git + ssh克隆时可以访问它们 这里是我的.ebextensions文件夹中的configuration文件的一个例子 packages: yum: git: [] container_commands: 01-move-ssh-keys: command: "cp .ssh/* ~root/.ssh/; chmod 400 ~root/.ssh/tca_read_rsa; chmod 400 ~root/.ssh/tca_read_rsa.pub; chmod 644 ~root/.ssh/known_hosts;" 02-add-ssh-keys: command: "ssh-add ~root/.ssh/tca_read_rsa" 问题是我试图克隆回购时得到的是一个错误 Host key verification failed. 我尝试了很多方法尝试将主机添加到known_hosts文件,但没有任何工作! 执行克隆的命令是npm install,因为repo指向节点模块
我正在为websockets开发一个小testing客户端。 我正在使用Ubuntu 11.04。 我已阅读https://stackoverflow.com/questions/410616/increasing-the-maximum-number-of-tcp-ip-connections-in-linux ,我做了以下 sudo sysctl -w net.ipv4.tcp_fin_timeout=10 sysctl -w net.ipv4.ip_local_port_range="1024 65535" 据我所知这些是入站连接,而不是出站。 当我input ulimit -n unlimited 我的客户和服务器运行在不同的盒子上。 即使以上所有情况,我都无法跨越1000个连线。 如果有不同的提示,请告诉我 回答我通过inputulimit -a来了解这一点,它显示了所有的内核限制。 ulimit -n unlimited 而 ulimit -a 返回nofile的值为1024.我以/etc/security/limits.conf文件的格式设置了限制 <user> soft nofile 8192 <user> hard nofile 65000 和事情为用户工作
我有一个nodejs应用程序永远在nginx后面运行。 当我部署新的代码,我只是forever restart但我不能在这么短的时间内获得502。 如何configurationnginx在502的情况下在这个上游服务器上继续重试? 我试着设置proxy_connect_timeout , proxy_read_timeout和proxy_send_timeout为例如30s但我立即得到502无论如何:( 我的网站conf是: upstream my_server { server 127.0.0.1:3000 fail_timeout=0; keepalive 1024; } server { listen 3333; server_name myservername.com; access_log /var/log/nginx/my_server.log; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; # retry upstream on 502 error proxy_connect_timeout 30s; proxy_send_timeout 30s; proxy_read_timeout 30s; proxy_pass http://my_server; proxy_http_version […]
我有一个nginx代理请求的图片上传服务。 一切都很好。 有时候,服务器已经有了用户正在上传的图片。 所以,我想尽早回复并closures连接。 在读取头文件并检查服务器之后,我调用Node的response.end([data] [,encoding] [,callback]) 。 Nginx barfs并返回一个空白的响应: [error] 3831#0: *12879 readv() failed (104: Connection reset by peer) while reading upstream 我的猜测是,nginx假设上游服务器发生了一些不好的事情,立即丢弃客户端连接而不发送上游服务器的响应。 有没有人知道如何正确回应和closures客户端的连接,当nginx是代理? 我知道这是可以做的: 请参阅:发送请求之前的响应 这里是nginx conf文件: worker_processes 8; # the number of processors worker_rlimit_nofile 128; # each connection needs 2 file handles events { worker_connections 128; # two connections per end-user connection […]
我有以下设置 – node-http-proxy充当反向代理,根据需要将所有请求转发到nginx / socket.io 我的问题是这样的当我从浏览器发送一个HTTP DELETE请求时,node-http-proxy添加一个头“Transfer Encoding Chunked”作为来自浏览器的请求没有内容长度。 来自浏览器的请求没有内容长度,因为它没有内容。 Nginx不喜欢传输编码分块头并且抛出一个411请求内容长度。 当我发送虚拟数据作为DELETE请求的一部分时,问题就解决了,所以有一个Content Length和node-http-proxy不会添加Transfer Encoding的块头,而nginx很高兴。 我想了解node-http-proxy是否按预期工作,因为它没有Content Body,因此在Content Length丢失时添加了Transfer Encoding Chunked标头。 编辑 – 更多信息: 当我尝试删除node-http-proxy并直接发送请求到nginx时,nginx很高兴。 请注意,浏览器不会设置内容长度(正文为正文)或传输编码分块
CPU [ 0.0%] Tasks: 15, 2 thr; 1 running Mem [|||| 14/256MB] Load average: 0.00 0.00 0.00 Swp [| 1/256MB] Uptime: 15 days, 06:02:31 以上是我的服务器上的内存使用情况(Ramnode,具有256MB Swap的256MB RAM),当没有Ghost实例时。 在我的VPS上,我正在运行4个Ghost实例。 所以当我在这里用命令node index.js运行一个Ghost实例时,它产生了5个工作者。 PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 10380 user 20 0 975M 80328 7712 S 0.0 30.6 0:00.00 node index.js […]