架构师的成长之路初片~Nginx~集群篇~下篇

nginx组件集群:

环境链接上篇:https://www.cnblogs.com/ahaocloud/p/14493878.html

再http{内添加以下集群}

 ####################创建集群在    server    的 外头,  调用在  location 里面

1:创建集群

upstream  web {

  server  ip;

  server  ip;

  server  ip;

}

2:调用集群

在location里添加执行命令(生效命令)

    proxy_pass  http://web;

 重新加载nginx,会看到不同的页面

集群的优化:初级

1)任务量的分配 weight=2
2)健康检查 max_fails=
3)相同客户机访问相同服务器 ip_hash
4)添加down标记 down

集群的优化:初级例子:

1:server 192.168.2.100:80 max_fails=2  fail_timeout=30; 检查两次如果失败,则认为集群中的主机故障,之后等待30秒后,再次检测。
2:server 192.168.2.200:80  weight=2; 设置权重,值越大,分配的工作量越多

3:

upstream  web{

  ip_hash;

  server 192.168.2.100:80;

}

相同客户端访问相同的服务器,让一个客户机访问集群时,锁定一个后台服务器,避免重复登陆问题。

4:

  server 192.168.2.100:80 down;

加down标记,使集群服务器暂时不参加任务轮询

二:重新编译nginx创建新环境

1:在编译时添加2个模块:

--with-stream                                                 //创建非网站业务的集群

--with-http_stub_status_module                   //可查看网站内部数据

2:创建集群(因为是非网站集群,所以必须在http之外创建。建议在16行上创建)

     stream {

  upstream backend{

  server 192.168.2.100:22;

  server 192.168.2.200:22;

  }

  server {

  listen 6666;                                 //监听端口

  proxy_pass  backend;                //调用集群

  }

}

验证: ssh 192.168.2.5 -p 6666                         //nginxIP  -p   指定端口

连续两次刷新页面,会看到不同的web主机。

三、nginx常见问题处理

1: 404报错

      主配置文件   58~59  行附近

        error_page      404        /test.jpg;                 //可把图片或者视频放在文件内即可,(名字必须相同)

2:status 页面

   须装    --with-http_stub_status_module   模块

在http{}  内部添加一个新的  location{}。

    location  /status {

  stub_status on;

}

测试:在网页中输入   ip/status     即可出来

 active   connections: 

 server  accepts      handled    requests

  reding:0         writing:   |             waiting:0

2.2   为了数据的外协,设置策略,只允许本机访问。

 在新建的location内 添加

  allow   本机ip;          或指定Ip

  deny  all;

例子:

  location  /status {

  stub_status on;

  allow  192.168.2.100;

  deny  all;

}

3.3:配置nginx的数据缓存,一台服务i其的相同数据可能会被同一个客户机反复访问,为了不重复让服务器给客户端传递相同数据,达到节约资源,节省时间的目的。

  在http{}内找到location在   location  外部重新建立个新的  location。

  location ~*.(jpg|peng|txt|html)${

    expres     30d;                                       //在客户端缓存30天

  }

4:优化nginx支持超长地址栏,默认情况下nginx无法支持地址栏,会报错   414

  打开主配置文件,在默认的虚拟主机上方添加两行。

  client_header_buffer_size   200k;

  用户访问网站的头部信息,长度支持200K;

  lorge_client_header_buffers  4  200k;

  如果200k不够,再给4个200K.

5:  优化nginx并发

  打开主配置文件:

  worker-processes

  开启nginx进程数量,通常与cpu核心数一致

  worker_connections  1024;

  每个nginx进程支持的并发访问量

压力测试:

包名: httpd-tools

命令: ab   -c   200   -n  200  http://192.168.2.51

解释:模拟200个人,访问两百次

限制问题(数量):

由于机子的软硬件配置有默认的并发数,所以得修改

临时修改命令:

ulimit  -Hn  10000

ulimit  -Sn  10000

永久配置:/etc/security/limits.conf

在最后段落修改:53~54行

*     soft  nofile   10000

*    hart   nofile    10000

修改后重启服务器

原文地址:https://www.cnblogs.com/ahaocloud/p/14494034.html