重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

nginx代理服务器

译序
Nginx 的负载均衡配置看上去很简单。以下是 Nginx 官方给的一个简单的负载均衡的例子:

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请雅安服务器托管、营销软件、网站建设、普定网站维护、网站推广。

http {
upstream myproject {
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}

server {
listen 80;
server_name www.domain.com;
location / {
proxy_pass http://myproject;
}
}
}


关于负载均衡

负载均衡是一种用于在几个虚拟专用服务器分配应用程序的传入流量的机制。被分配到多台机器的处理机制,确保容错和高度稳定。负载均衡的循环算法将访问发送到一组 IP 中。没有考虑更多比如服务器响应时间以及访问者的地理区域等细节,在很容易实现的基本层面上进行循环,分发服务器负载。

设置
本教程中的步骤要求用户在你的 VPS 中具有 root 权限。你可以在用户指南中查看如何设置。
在设置 Nginx 负载均衡之前,你得先把 Nginx 安装在你的 VPS 上。你可以使用 apt-get 命令进行快速安装:

sudo apt-get install nginx

Upstream 模块
我们需要使用 upstream 模块来设置一个循环试负载均衡。我们将把这些配置包含到 Nginx 的设置中去。
然后打开你的网站配置(在我的例子中我只演示一下一般默认虚拟主机):
nano /etc/nginx/sites-available/default
我们将会把负载均衡配置加入到这个文件中去。
首先我们需要将 upstream 模块包含进来,类似于这个:
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}

然后我们在(Nginx 的)其他配置中引用该模块:
server {
location / {
proxy_pass http://backend;
}
}

重启 Nginx:
sudo service nginx restart

一旦你的所有虚拟专用主机全部就绪,你会发现负载均衡器开始将访问流量平均地分配到那些链接主机上。

指令
以上部分介绍了如何将负载平均分配到一些虚拟主机上去。但是,会有一些原因导致这不是最有效的处理数据的方法。我们可以使用一些指令来使我们的应用更加高效。
Weight
一种更精密地分配用户到各个主机上的方法就是为某些机器指定权重。Nginx 允许我们分配一个数字来说明需要转发到每个服务器的流量的比例。
一个具有服务器权重的负载均衡设置如下:
upstream backend {
server backend1.example.com weight=1;
server backend2.example.com weight=2;
server backend3.example.com weight=4;
}

默认权重为 1。权重为 2 的 backend2.example 会被发送 backend1 的两倍的流量,而权重为 4 的 backend3 则将会处理 backend2 流量的两倍相当于 backend1 流量的四倍的流量。
Hash
IP 散列允许主机根据用户的 IP 地址来响应客户端,将用户的每次访问分发给同一台 VPS(除非该台主机已经 down 掉)。如果一台主机被认为是不活跃的,它将被标记为 down 掉。所有应该路由到这台 down 掉的主机的 IP 将会被转发到另一台替代主机上去。
下面的配置提供了一个示例:
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com down;
}

Max Fails
根据默认的循环负载设置,Nginx 将会持续地向 VPS 主机发送数据,即使这些主机没有任何响应。失败次数可以自动通过呈现一段时间内无响应的主机来防止这种情况。失败次数具有两个要素:max_fails 和 fall_timeout。
max_fails 指示出在这台主机被认为是不活跃状态之前连接到这台主机时出现的失败次数。
fail_timeout 指示出这台主机被认为不活动的状态的持续时间。一旦时间到了,Nginx 会重新尝试连接该主机。默认超时值为 10 秒钟。
一个配置示例:
upstream backend {
server backend1.example.com max_fails=3 fail_timeout=15s;
server backend2.example.com weight=2;

server backend3.example.com weight=4;

更多
以上是关于简单的循环负载均衡的一个简短概述。此外,还有另外一些加速和优化单台服务器的方法:

如何将 Nginx 配置为 Apache 的前端代理 如何在 Ubuntu 12.04 上安装和配置 Apache 如何在 Ubuntu 12.04 上安装和使用 Memcache

原文链接:https://www.digitalocean.com/community/articles/how-to-set-up-nginx-load-balancing。

配置本地路径时:如果访问g:/a/b.gif这个文件夹。

配置为:

location /a{
root g:/;
}

附自己的配置文件:
worker_processes 1;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

#gzip on;
server {
listen 8106;
server_name localhost;

location /fe {
root g:/;
}
location / {
proxy_pass http://192.168.2.106:80/;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 600;
proxy_send_timeout 600;
}

location /8080 {
proxy_pass http://192.168.2.106:80/;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 600;
proxy_send_timeout 600;
}

location /register {
proxy_pass http://127.0.0.1:8081/register;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 600;
proxy_send_timeout 600;
}

}
server {
listen 8081;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080/;
}
}
}


分享题目:nginx代理服务器
当前路径:http://cqcxhl.com/article/cgcgsp.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP