地址重写选项,集群搭建与优化

 

,每次试验之前需要恢复环境为默认

恢复配置文件为默认
 cd   /usr/local/nginx
 cp conf/nginx.conf.default  conf/nginx.conf   将配置文件恢复默认
 cp:是否覆盖"conf/nginx.conf"? y

地址重写的选项
1、last  防止地址乱跳 不再读其他rewrite
配置文件42行中添加
 rewrite /a.html /b.html last;
 rewrite /b.html /c.html; 
 sbin/nginx 开启服务
 sbin/nginx -s reload 重新加载配置文件
 systemctl stop firewalld  关闭防火墙
   访问测试  
2、break --不再读其他语句
                 vim 'dd'--剪切 删除
 location / {
  rewrite /a.html /b.html break;
            root   html;
             index  index.html index.htm;
         }
  location /b.html{
 rewrite /b.html /c.html;
}
3、redirect---临时重定向(状态码302)
4、permanent--永久重定向(状态码301)
  location / {
  rewrite /a.html /b.html permanent;
            root   html;
             index  index.html index.htm;
         }
  location /b.html{
 rewrite /b.html /c.html;
curl 192.168.2.5/a.html
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.17.6</center>
</body>
</html>

网站状态码
404---报错  
304---调用浏览器缓存
200---成功

 能够同时处理用户访问量的指标 ---并发
     集群 将多个服务器合成一个
web1 web2 安装软件包

yum list  | grep   ***   查看软件包
yum -y install vim bash-completion net-tools httpd psmisc
写网站页面 进行测试
[root@proxy nginx]# curl 192.168.2.100
web1
[root@proxy nginx]# curl 192.168.2.200
web2
创建集群
upstream web{                #创建集群的命令 web为集群的名称(定义为提供什么服务)
          server 192.168.2.100:80;    #两个服务器
          server 192.168.2.200:80;
                    }
 调用集群
   location / {
   proxy_pass http://web;

测试
[root@proxy nginx]# sbin/nginx -s reload   #重新读取配置文件

测试是否成功(客户机访问代理机器)#会在两台服务器之间切换
[root@proxy nginx]# curl 192.168.2.5
web1
[root@proxy nginx]# curl 192.168.2.5
web2

三,集群的优化
1,调节集群主机任务量分配
server 192.168.2.200:80 weight=2;    //权重,值越大,分配的任务量越多
sbin/nginx -s reload
curl 192.168.2.5     //反复访问,可以看到web2工作量增加

2,健康检查
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,相同客户机访问相同服务器
upstream web {
ip_hash;   //相同客户机访问相同服务器,让一个客户机访问集群时锁定
一个后台服务器,避免重复登陆的问题
server 192.168.2.100:80;
server 192.168.2.200:80 max_fails=2 fail_timeout=30;
}

sbin/nginx -s reload
重加载配置后访问集群只会看到一个网站的页面

4,添加down 标记
upstream web {
ip_hash;
server 192.168.2.100:80;
server 192.168.2.200:80 down;   //添加down标记,使集群主机
暂时不参与集群任务
}


四,使用nginx创建其他业务集群
./configure --with-stream --with-http_stub_status_module     //这里的--with-stream 是添加四层代理模块,可以用来创建其他业务集群
make
make install

cd /usr/local/nginx
vim conf/nginx.conf
打开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    //退出
[root@proxy nginx]# rm -rf ~/.ssh/known_hosts   //删除记录文件
ssh  192.168.2.5 -p 12345   //再次尝试登录,会连接到另外一台集群主机


ss命令可以查看系统中启动的端口信息,该命令常用选项如下:
-a显示所有端口的信息
-n以数字格式显示端口号
-t显示TCP连接的端口
-u显示UDP连接的端口
-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口
-p显示监听端口的服务名称是什么(也就是程序名称)
注意:在RHEL7系统中可以使用ss命令替代netstat命令,功能一样,选
项一样。
Nginx常见问题
1、404报错
error_page 404     /test.jpg
2、查看后台数据
location /status   {
stub_status on;
allow 192.168.2.5;
deny all 
}
sbin/nginx -s reload    //重加载配置                        
192.168.2.5/status   //查看页面

Active connections:当前活动的连接数量(当前有多少用户访问该网站)。
Accepts:已经接受客户端的连接总数量。
Handled:已经处理客户端的连接总数量。
Requests:客户端发送的请求数量。
Reading:当前服务器正在读取客户端请求头的数量。
Writing:当前服务器正在写响应信息的数量。
Waiting:当前多少客户端在等待服务器的响应。    

    
3、缓存文件在客户端(默认30天)
location ~* \.(jpg|html|txt|png)$ {    //当用户访问的是这几种类型的文件
expires 30d;
用火狐浏览器清空历史记录 地址栏输入about:cache

 4、安装Nginx之后V查看--安装模块

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值