这是我第一次使用 nginx,所以请多多包涵,我在两台独立的机器上安装了两个 apache,每台机器上都有一个虚拟主机,我可以从 LAN 访问页面。我想在另一台机器上运行 nginx 作为它们的反向代理,并对两台服务器进行负载平衡,这可能吗?配置是什么样的?我知道我不应该问这个问题,但我是新手,我从不同的网站阅读过基本的 nginx 配置,但我什么都看不懂,所以基本上我不知道如何配置它。
答案1
首先,您必须设置公共 IP 或从公共 IPport 80
到您的nginx
服务器的端口转发。
nginx
那么和之间apache 1
、 和 之间nginx
以及和 之间apache 2
一定存在联系。apache 1
apache 2
| port 80 | prublic ip or fw from public ip
-----------------------
| nginx |
-----------------------
/ 10.10.10.1 \
/ 10.10.10.2 \ 10.10.10.3
|---------| |---------|
| apache1 |------------------| apache2 |
|---------| |---------|
nginx
和apache
用户之间的连接用于负载平衡
apach 1
和之间的连接apache 2
用于应用程序复制。两个apache
节点上必须有相同的、同步的应用程序。
nginx 支持以下负载平衡机制(或方法):
round-robin
— 对应用服务器的请求以循环方式分发,
least-connected
— 下一个请求被分配给活动连接数最少的服务器,
ip-hash
— 使用哈希函数来确定下一个请求应选择哪个服务器(基于客户端的 IP 地址)。默认负载平衡配置
load balancing
with 的最简单配置nginx
可能如下所示:
http {
upstream myapp1 {
server apache1.example.com;
server apache2.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
您可以找到更多配置和可能性的示例这里