operation 集群

upstream (创建集群)

proxy_pass (配置:调用集群)

weight=(权重默认为1)

max_fails=2 fail_timeout=30; //检测两次如果失败,则认为集群中的主机故障,之后等待30秒再次测试

down(临时调走某一个服务器)

ip_hash;(用户登陆服务器时使用)

------------------------------------------------------------------------------------------------------------------------------------------

upstream | proxy_pass的运用 (修改nginx配置文件实现集群功能

[root@proxy nginx]# vim conf/nginx.conf

(创建集群)upstream (集群名称)web {        //首先是34~37行,创建集群,集群名称叫web

server  192.168.2.100:80;    //这里是集群中的服务器ip与端口

server  192.168.2.200:80;    //第二台集群主机

}

(配置网络行)server {

        listen       80;

        。。。。

        location / {

proxy_pass  http://web;     //在第47行,调用集群

            root   html;

            index  index.html index.htm;

        }

之后开启nginx或者重加载nginx配置,用curl 192.168.2.5可以看到 web1 

或web2页面轮询出现

weight=权重默认为1 (集群优化):

server 192.168.2.200:80 weight=2;   //为性能较强的集群主机配置权重 (此地址在你配置的集群IP中),权重越大任务的分配量就越大

                       以下测试:

[root@proxy nginx]# curl 192.168.2.5

web2~~

[root@proxy nginx]# curl 192.168.2.5

web2~~

[root@proxy nginx]# curl 192.168.2.5

web1~~

   配置健康检查:max_fails=2 fail_timeout=30;(检查两次,三十秒启动)

server 192.168.2.200:80 max_fails=2 fail_timeout=30; //检测两次如果失败

,则认为集群中的主机故障,之后等待30秒再次测试

sbin/nginx -s reload

测试时,先将web2的httpd服务关闭,回到proxy访问集群页面curl 192.168.2.5

只会显示web1的页面,此时即使将web2的httpd服务开启也无效,因为要等

待30秒

3,相同客户机访问相同服务器   ip_hash; 

upstream web {

ip_hash;   //相同客户机访问相同服务器,让一个客户机访问集群时锁定

一个后台服务器,避免重复登陆的问题

server 192.168.2.100:80;

server 192.168.2.200:80;

}

sbin/nginx -s reload

curl 192.168.2.5    //重加载配置后访问2.5只会看到一个网站的页面

4,添加down标记

upstream web {

server 192.168.2.100:80;

server 192.168.2.200:80 down;  //down标记可以让集群主机暂时不参与集群活动

}

sbin/nginx -s reload

curl 192.168.2.5

nginx功能

网站服务,网站代理网站业务,四层代理其他业务)

三,使用nginx创建其他业务集群四层代理

[root@proxy nginx]# cd ~/lnmp_soft/nginx-1.17.6/

[root@proxy nginx-1.17.6]# killall nginx

[root@proxy nginx-1.17.6]# rm -rf /usr/local/nginx/

./configure  --with-stream  --with-http_stub_status_module

//这里的--with-stream 是添加四层代理模块,可以用来创建其

他业务集群,--with-http_stub_status_module是后面实验所需模块

另外,如果更新模块,但不想删除之前nginx数据,可以将nginx源码目录下的objs目录中的nginx文件拷贝到nginx的sbin目录下替代现有主程序,然后killall  nginx 再重启即可

make    //编译

make install    //安装

cd /usr/local/nginx/

sbin/nginx -V   //查看安装模块情况

打开nginx主配置文件,在16行左右(http上面),添加以下内容

stream {         //创建新业务

upstream backend {    //创建名叫backend的集群

server 192.168.2.100:22;    //集群中的主机使用22端口对外提供服务

server 192.168.2.200:22;

}

server {

listen 12345;    //监听端口号

proxy_pass backend;    //调用集群

}

}

sbin/nginx   //配置写好之后开启服务或者重加载配置文件

ssh  192.168.2.5 -p 12345    //尝试远程登录,第一次可能会连接集群的某一台主机比如web1

exit    //退出

注意:如果配置没有错误,但无法反复登陆web1与web2,可以按下列方式解决

[root@proxy nginx]# rm -rf ~/.ssh/known_hosts   //每登录一次之后在proxy中删除记录文件

ssh  192.168.2.5 -p 12345   //再次尝试登录,会连接到另外一台集群主机

 

ss命令可以查看系统中启动的端口信息,该命令常用选项如下:

-a显示所有端口的信息

-n以数字格式显示端口号

-t显示TCP连接的端口

-u显示UDP连接的端口

-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口

-p显示监听端口的服务名称是什么(也就是程序名称)

注意:在RHEL7系统中可以使用ss命令替代netstat命令,功能一样,选

项一样。

---------------------------------------------------------------------

常见nginx问题处理

1,404报错

打开配置文件,在默认的虚拟主机里面的location下面修改

error_page  404      /test.jpg;  //这里把#注释去掉,后面改成test.jpg

,效果是如果客户访问了不存在的页面就显示test.jpg的内容

sbin/nginx -s reload   //重加载配置

然后找一个图片扔到/usr/local/nginx/html里面,命名为test.jpg

使用浏览器虽随意访问不存在的页面192.168.2.5/XXXX.html   就可以看到之前

那张图片的内容

如果真机是windows可以用mobaXterm传test.jpg文件到nginx的html目录

如果真机是linux可以用scp命令

2,查看网站后台数据

--with-http_stub_status_module   //该功能利用的模块,之前配置nginx已经安装

打开配置文件

location /status  {   //在error_page行上面添加此内容

stub_status on;    //显示后台的数据

allow 192.168.2.5;    //只允许2.5查看

deny all;   //拒绝其他

}

sbin/nginx -s reload    //重加载配置

Active connections: 1  (当前有多少人访问你的网站)
server accepts(我放进来了多少人) handled (那些人进来了没有)requests(为用户服务几次)
                  1                   1                      2
Reading: 0 (读取顾客的请求)  Writing: 1(正在给几个人反回信息)  Waiting:0 (多少人正在等待)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值