我知道可以使用Nginx在一台服务器上运行多个Node.js(扩展名为Meteor)。我已经安装好Nginx并可以在Ubuntu服务器上运行它,我什至可以使其响应请求并将其代理到我的一个应用程序中。但是,当尝试让Nginx将流量代理到第二个应用程序时,我遇到了障碍。
一些背景:
我的Nginx配置:
upstream mydomain.com {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
# the nginx server instance
server {
listen 0.0.0.0:80 default_server;
access_log /var/log/nginx/mydomain.log;
location /app2 {
rewrite /app2/(.*) /$1 break;
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;
proxy_pass http://127.0.0.1:8002;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
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;
proxy_pass http://127.0.0.1:8001;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
关于流量进入/ app2 /时可能发生的情况的任何见解,我将不胜感激!
proxy_pass http://127.0.0.1:8002/1; <-- these should be
proxy_pass http://**my_upstream_name**; <--these
然后
upstream my_upstream_name {
//Ngixn do a round robin load balance, some users will conect to / and othes to /app2
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
一些 技巧可以 控制代理:
在这里 看看@nginx docs
然后我们开始:
weight = NUMBER- 设置服务器的权重,如果未设置,则权重等于1。不平衡默认循环。
max_fails = NUMBER-
在一定时间内(由参数fail_timeout分配)与服务器通信的失败尝试次数,在此时间内它被认为是无效的。如果未设置,则尝试次数为1。值为0将关闭此检查。可以认为失败的是由proxy_next_upstream或fastcgi_next_upstream定义的(http_404错误不计入max_fails)。
fail_timeout = TIME- 必须发生的时间 max_fails
与服务器通信失败的尝试次数,这将导致服务器被视为无法运行,以及服务器被视为无法运行的时间(在进行另一次尝试之前)
)。如果未设置,则时间为10秒。fail_timeout与上游响应时间无关,请使用proxy_connect_timeout和proxy_read_timeout对此进行控制。
下来 -标记服务器作为永久脱机,与指令ip_hash使用。
备份 -(0.6.7或更高版本)仅在非备份服务器都处于关闭或繁忙状态时才使用此服务器(不能与指令ip_hash一起使用)
EXAMPLE generic
upstream my_upstream_name {
server backend1.example.com weight=5;
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
}
// proxy_pass http://my_upstream_name;
这些是您所需要的:
如果您只是想控制一个应用程序在虚拟主机之间的卸载,请执行以下操作:
upstream my_upstream_name{
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8081 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8082 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8083 backup;
// proxy_pass http://my_upstream_name;
// amazingness no.1, the keyword "backup" means that this server should only be used when the rest are non-responsive
}
如果您有2个或更多应用程序:每个应用程序1个上游,例如:
upstream my_upstream_name{
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8081 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8082 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8083 backup;
}
upstream my_upstream_name_app2 {
server 127.0.0.1:8084 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8085 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8086 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8087 backup;
}
upstream my_upstream_name_app3 {
server 127.0.0.1:8088 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8089 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8090 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8091 backup;
}
希望能帮助到你。
问题内容: 我在向多个收件人发送邮件时遇到问题。 我的剧本是 我有两个问题 我可以列出一系列收件人吗? 如何在密件抄送列表中获取一组收件人? 与以上两个查询相关的解决方案确实会有所帮助 谢谢Nabarun 问题答案: 您可以在和字段中使用一系列收件人。 例如: 如果这对您不起作用,并且Node没有吐出任何错误,请登录SendGrid的网站并查看“ 电子邮件活动日志”,以检查是否已发送电子邮件。 我
我需要通过蓝牙将手机连接到Raspberry,获取可用wifi列表,在手机上选择一个,将其发送到Raspberry并连接到选定的网络。 我为react native选择了“react native ble manager”,为raspberry选择了bleno。 在用我的手机连接到Raspberry后,我正试图成为一名污点管理者。已读,但响应的readData为空字符串 树莓的特性: React
问题内容: 所以我遇到了这种困境。 以上是在我的PHP页面上调用的。 然后我打电话 这将加载一堆textareas ..... tinyMCE首次返回时将在所有文本区域上加载..当我单击重新加载时,再次运行以上操作并返回文本区域,它们不再连接上tinyMCE给他们。我不确定为什么它会在第一次而不是随后的时间起作用。 问题答案: 重新加载之前,应正确关闭tinymce,以便在重新加载后能够重新初始化
问题内容: 我是Nodejs的新手。如何导出多个对象?例如 我想使用类似的模型: 我想使用类似这样的对象: 谢谢你的建议:D 更新 :解决以下方法: 但是我还有另一个问题。如何动态分配模型? 更新通过 以下方式解决了第二个问题: 问题答案: 只需将它们包装在对象文字中即可。在纯JS(没有CoffeeScript)中,将是: 在coffeescript中,您使用缩进,但要创建空对象时除外:
但有没有更简单的解决办法呢?
运行Firebase upgrade命令后,我尝试在模拟器中运行我的应用程序,出现了以下错误消息: 在调试模式下在 sdk gphone64 x86 64 上启动 lib\main.dart...运行 Gradle 任务 'assembleDebug'... /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_core-1.24.