我使用express和nginx作为反向代理。 我想知道如何利用Nginx的http / 2服务静态内容,所有其他请求被转发到快速API。 目前,我的快递服务器正在通过http / 1服务,而nginx正在接受http / 2连接,并将它们转发到快递。 如何设置nginx,以便它使用http / 2来提供我的静态文件夹中的所有内容,但将所有请求作为http1转发给API?
我只有一个VPS主机,并使用nginx的Django的Web应用程序。 现在,我准备用Node.js启动新的应用程序,并可以在当前的服务器上托pipe? 我认为,Node.js正在运行自己的http服务器,它可以与nginx服务器冲突。
我在这个时候比以往任何时候都阅读,这将是我的第一个网页,所以我决定装载在nodejs上。 我非常快速地创build应用程序,并在localhost:9000中进行testing 所以我想把更多的应用程序在VPS上运行,我search信息,我有两个选项 首先使用nginx来代理应用程序… upstream example1.com { server 127.0.0.1:3000; } server { listen 80; server_name www.example1.com; rewrite ^/(.*) http://example1.com/$1 permanent; } # the nginx server instance server { listen 80; server_name example1.com; access_log /var/log/nginx/example1.com/access.log; # pass the request to the node.js server with the correct headers and much more can be added, see nginx config […]
我目前在nginx后面运行一系列Node.js快速应用程序。 但是,虽然我有应用程序运行良好,我现在遇到间歇性502错误的网关错误在某些情况下。 主要实例是用户尝试login的位置。 通常第一次尝试login将返回一个502错误(并且这个错误将是瞬间的,而不是在延迟之后发生),而之后立即进行的第二次尝试将正常处理,请求标头中没有任何变化。 我已经检查了nginx和express的日志,看起来在第一个例子中,尽pipe细节是相同的,但第一次尝试返回500错误(按照计划在错误的login尝试的情况下)。 然后在nginx中触发一个502错误。 Nginx错误日志: 2013/10/21 19:32:57 [error] 8178#0: *32101 upstream prematurely closed connection while reading response header from upstream, client: 82.40.77.228, server: instok.net, request: "POST /login HTTP/1.1", upstream: "https://127.0.0.1:5001/login", host: "instok.net", referrer: "https://instok.net/" Nginx的访问日志: – [21/Oct/2013:19:32:57 +0000] "POST /login HTTP/1.1" 502 172 "https://instok.net/" "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0" "-"82.40.77.228 – […]
我试图用nginx(v1.5.11)为我的节点项目设置一个域,我已经succesfullredirect到web的域,但我需要使用3000端口,所以现在,我的网站位置看起来像http://www.myweb.com:3000/当然,我想只保留“www.myweb.com”这样的一部分: http://www.myweb.com/ : http://www.myweb.com:3000/ 我有search和尝试许多configuration,但没有人似乎为我工作,我不知道为什么,这是我本地的nginx.conf文件,我想要更改http://localhost:8000/ text到http://myName/文本,请记住,redirect工作,我只想“隐藏”的位置端口。 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr – $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout […]
我试图运行与nginx作为代理socket.io聊天应用程序。 当我通过http +端口连接到服务器时,它工作正常,但它不适用于https。 我看到用户连接/断开事件通过,但没有发射到客户端或服务器。 这是我的服务器.conf(nginx / 1.4.6 Ubuntu) upstream websocket { server 127.0.0.1:8090; } server { listen 80; return 301 https://example.com$request_uri; } server { listen 443 ssl; ssl_certificate /home/andrew/example.com/nginx/certs/example.com.cer; ssl_certificate_key /home/andrew/example.com/nginx/certs/example.com.private.key; root /home/andrew/example.com/public; index index.html index.htm; server_name example.com; location /chat/ { rewrite ^/chat/?(.*)$ /$1 break; proxy_pass http://websocket; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; […]
我想要托pipe多个WEBSOCKETS节点服务器(单独的进程)。 它可能是> 1000个同时连接。 此外,我想logging和控制每个连接,并希望使其记忆效率。 在node.js中编写反向代理是否是个好主意? 比Nginx,纯Erlang还是Scala更糟? 甚至可以Nginx处理1000多个websockets连接? 1个连接是否冻结1个Nginx线程? 内存效率高吗?
我正在使用nginx的Node.js。 我的节点应用程序build立在快车上,并使用护照进行身份validation,并使用会话。 我的节点应用程序正在响应所有/api url上的JSON请求,nginx正在从公共目录中提供静态文件。 我希望nginx在用户没有login的时候/在用户login时提供app.html 。 这是我目前的nginxconfiguration。 upstream app_upstream { server 127.0.0.1:3000; keepalive 64; } server { listen 0.0.0.0:80; server_name app.com default; access_log /var/log/nginx/app.com.access.log; error_log /var/log/nginx/app.com.error.log debug; root /home/app/app/public; location /api { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_cache_bypass 1; proxy_no_cache 1; expires off; if_modified_since off; add_header Last-Modified ""; […]
我对socket.io非常陌生,并且在node / express / socket.io中编写了我的第一个应用程序。 现在,在我的nginx服务器上一切正常。 我想把我的应用程序发布给公众,但我担心它不会为很多人工作。 我有几个朋友testing我的应用程序,一切都很顺利(这是一个非常简单的应用程序)。 这是我的担心:现在每个连接似乎都使用websockets,这是我想要的。 但是,由于客户端的奇怪,我的应用有时会降级到“投票”? 如果是这样,那么socket.io如何决定何时使用轮询以及何时使用websocket(基于浏览器/版本还是连接或什么)? 我很确定它使用websocket的时候可能,但是有一个列表的某个地方的条件,将它敲下来“投票”? 另外,有没有一种方法可以通过使用“轮询”来testing我的应用程序,看它是否有效? 我可以发布代码,但是我认为这是一个关于socket.io如何工作的普遍问题。
我正在使用Citrix负载平衡器。 在这之后,有4个虚拟的Nginx服务器。 ip就像172.16.10.40,172.16.10.41,172.16.10.42,172.16.10.43 和1个testing服务器172.16.10.50。 安装在位于172.16.10.50的testing服务器上的Nodejs。 我为nodejs创build了一个子域,例如sub.example.com。 我的nodejs应用程序正在使用8070端口。 我想用Websocket而不是xhr-pooling。 我的代码和configuration如下,在Chrome控制台我看到了 Status Code:101 Switching Protocols 但没有什么框架上。 没有推。 如果我更改socketURL var socketURL = http://172.16.10.50:8070 Websocket在testing平台中没有任何问题(172.16.10.50)。 但是,在真正的平台,我不得不使用' http://sub.example.com:8070 '; 如果我设置了socket.io:'transports',['xhr-polling']; xhr-polling正在工作。 但是我想用WebSocket。 nginx version: nginx/1.4.1 node v0.8.8 socket.io v0.9.16 我该做什么? 谢谢。 app.js var app = server = require('http').createServer(app) , io = require('socket.io').listen(server,{ log: false }) , url = require('url') , […]