nginx的安装配置并配合keepalived实现高可用与openResty的安装

nginx的安装配置并配合keepalived实现高可用与openResty的安装

这个是本例要实现的最终效果:
在这里插入图片描述

一、nginx的安装使用:

1、下载nginx
http://nginx.org/
2、下载安装pcre
https://sourceforge.net/projects/pcre/reviews

上传压缩包到linux服务器,并解压:tar -zxvf pcre-8.37.tar.gz
进入解压目录执行:./configure
再在安装目录下执行:make && make install

3、安装zlib、openssl

执行:yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

4、安装nginx

把nginx压缩包上传服务器,解压缩 tar -zxvf nginx-1.18.0.tar.gz
进入解压目录:./configure
再执行:make && make install 这时,进入/usr/local/会看到一个目录叫nginx 这里注意服务器端口的开放与否

查看开放的端口号:
firewall-cmd --list-all
设置开放的端口号:
firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
重启防火墙:
firewall-cmd --reload
关闭防火墙的端口:
firewall-cmd --remove-port=3306/tcp --permanent

查找进程号或端口

根据端口查找进程:
netstat -antp|grep 端口号
netstat -antp|grep 端口号
netstat -nlp|grep 端口号
netstat -nap|grep 端口号

netstat -ntulp|grep 端口号
根据进程查找端口:
ps -ef|grep 应用 获得进程号
netstat -nap|grep 进程号 获得端口号

5、nginx的常用命令
启动命令,在/usr/local/nginx/sbin 目录下执行: ./nginx
关闭命令,在/usr/local/nginx/sbin 目录下执行 ./nginx -s stop 
重新加载命令,在/usr/local/nginx/sbin 目录下执行 ./nginx -s reload
查看版本号,在/usr/local/nginx/sbin 目录下执行 ./nginx -v
6、放置自定义页面 a.html

在三台服务器的/home/soft/tomcat/apache-tomcat-8.5.63/webapps/ROOT 目录分别放入 a135.html、a136.html、a137.html内容分别是

 <h1> 我是135</h1>
 <h1> 我是136</h1>
 <h1> 我是137</h1>

配置tomcat的欢迎页面 /home/soft/tomcat/apache-tomcat-8.5.63/conf/web.xml
改为:

 <welcome-file-list>
     <!--   <welcome-file>index.html</welcome-file>-->
       <!-- <welcome-file>index.htm</welcome-file>-->
      <!--  <welcome-file>index.jsp</welcome-file>-->
        <welcome-file>a135.html</welcome-file>
    </welcome-file-list>
再启动访问tomcat欢迎页面就是a135.html/a136.html/a137.html的内容了
7、nginx配置到访问自己的tomcat
 server {
                listen 10081;
                server_name localhost;
                location / {
                proxy_pass http://localhost:8080;
                proxy_connect_timeout 10;
                }
        }

都启动后,界面访问 192.168.200.135:10081就可以看到tomcat里面的a135.html了

8、nginx实现集群配置并实现负载均衡
#user  nobody;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
	upstream myserver{
        ip_hash;
        server 192.168.200.135:8080 weight=1;
        server 192.168.200.136:8080 weight=1;
        server 192.168.200.137:8080 weight=1;
}
	server {
                listen 10081;
                server_name localhost;
                location / {
                proxy_pass http://myserver;
                proxy_connect_timeout 10;
                }
        }
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
  • nginx常用配置参考:

nginx的upstream目前支持4种方式的分配

1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如: upstream bakend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
2、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 例如: upstream
bakend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}

3、fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。 upstream backend {
server server1;
server server2;
fair;
}

4、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream backend {
server squid1:3128;
server squid2:3128;
hash
$request_uri;
hash_method crc32;
}

tips:

upstream bakend{#定义负载均衡设备的Ip及设备状态
}{
ip_hash;
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060; server
127.0.0.1:7070 backup;
} 在需要使用负载均衡的server中增加 proxy_pass http://bakend/;

每个设备的状态设置为:
1.down表示单前的server暂时不参与负载
2.weight为weight越大,负载的权重就越大。
3.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

client_body_in_file_only设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path设置记录文件的目录 可以设置最多3层目录

location对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

##配置虚拟机
server {
listen 80; 配置监听端口
server_name image.***.com; 配置访问域名

location ~* .(mp3|exe)$ { #对以“mp3或exe”结尾的地址进行负载均衡 proxy_pass
http://img_relay$request_uri; #设置被代理服务器的端口或套接字,以及URL > proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上 }

二、正向代理与反向代理

正向代理:代理的是客户端,安装在客户端本机上。正向代理是代理服务器位于客户端和目标服务器之间,代理服务器代表客户端向目标服务器发出请求。目标服务器不知道实际发起请求的是客户端,而是以为是代理服务器发起的
使用场景:

  1. 访问受限资源: 当客户端无法直接访问某些资源,但代理服务器可以访问,这时可以通过正向代理来获取目标资源。
  2. 隐私保护:客户端通过正向代理访问目标服务器,目标服务器无法直接识别客户端,从而保护了客户端的隐私。
    在这里插入图片描述

反向代理:代理的是服务端,让用户无感知地浏览服务器资源(无论动容增加了多少台服务器,用户都无法感知,用户访问的永远是域名)。代理服务器代表目标服务器向客户端提供服务。客户端不知道实际提供服务的是目标服务器,而是以为是代理服务器提供的
使用场景:

  1. 负载均衡: 多个目标服务器提供相同服务,反向代理可以根据负载均衡算法将请求分发到不同的服务器,以提高系统性能和可用性。
  2. 隐藏目标服务器: 反向代理可以隐藏后端的真实服务器,提高安全性。
    在这里插入图片描述

三、keepalived的安装

1、上传解压

把压缩包上传到(注意目录位置,不要占用/usr/local/keepalived目录,后面会用到): /usr/local/lc

解压:

tar -zxvf keepalived-1.4.2.tar.gz

2、记得安装插件(如果已安装请忽略)

yum install -y gcc openssl-devel popt-devel

3、在解压目录执行

./configure --prefix=/usr/local/keepalived

4、安装 配置

make && make install

5、因为没有使用 keepalived 的默认路径安装(默认是/usr/local) ,安装完成之后,需要做一些工作复制默认配置文件到默认路径

创建目录: mkdir /etc/keepalived
①把keepalived的文件复制到指定目录:
cp -a /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

② 把keepalived的文件复制到指定目录:
cp -a /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig

③ 拷贝主程序
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

9、修改配置文件
vim /etc/keepalived/keepalived.conf

内容:

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   #(重点参数)局域网keppalived主机身份标识信息(每台唯一)
   router_id LVS_135
   vrrp_skip_check_adv_addr
    # 严格模式不支持单播,所以禁用掉
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
#VRRP协议相关配置
vrrp_instance VI_1 {
 #keepalived角色描述信息,可配置参数(MASTER,BACKUP)
    state MASTER
	# 本机虚拟网卡名字,将虚拟ip用于那块网卡,使用ifconfig查看本机网卡信息
    interface ens32
	#表示keepalived家族表示信息,同一个keepalived集群的virtual_router_id相同
    virtual_router_id 51
	 #keepalved服务竞选主备服务器优先级设置(数字越大越优先)一般master大于salve,如果都是BACKUP的话就是按照权重来选举MASTER
    priority 100
	#主服务器组播包发送间隔时间
    advert_int 1
	#主备主机之间的认证表示信息(准备一致)
    authentication {
	 #采用明文认证机制
        auth_type PASS
		#编写的明文密码
        auth_pass 1111
    }
	#设置虚拟ip地址信息
    virtual_ipaddress {
	## 虚拟ip地址(VIP,一个尚未占用的内网ip即可) 也可以配置多个
        192.168.200.88
	   #192.168.200.89

    }
}
10、keepalived的操作命令
启动:service keepalived start
查看:service keepalived status
停止:service keepalived stop	

启动之后访问:http://192.168.200.88:10081/ 也访问到tomcat的那张图片
同样原理在136/137配置启动 keepalived
:当停止135的keepalived时,再访问依然能通但返回136的html那就是说明做到了主从热备,在停掉136 的再访问http://192.168.200.88:10081/还能通返回137的html信息
keepalived+nginx实现主从热备成功

四、openResty安装教程

1.下载地址

http://openresty.org/cn/download.html

2. 介绍

OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web平台,由中国人章亦春发起,提供了很多高质量的第三方模块。 OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任10K 以上并发连接响应的超高性能 Web 应用系统

3.安装linux环境依赖

yum -y install readline-devel pcre-devel openssl-devel

4.上传软件并解压安装

1.上传openresty-1.21.4.1.tar.gz到/home/lc(自己方便的目录即可)目录下,并解压:
tar -zxvf openresty-1.21.4.1.tar.gz
2. 进入解压目录并执行配置
cd openresty-1.21.4.1
./configure
3.编译
make && make install

默认情况下程序会被安装到/usr/local/openresty目录

5.设置工作目录

我们指定/wls/web为工作目录(根据自己习惯)

创建目录:

  1. mkdir -p /wls/web
  2. cd /wls/web/
  3. mkdir logs/ conf/
    其中logs用于存放日志;conf用于存放配置文件
6.把默认目录下的nginx.conf/mime.types/html 文件拷贝到我们自己建的工作目录
  1. cp -a /usr/local/openresty/nginx/conf/nginx.conf /wls/web/conf/
  2. cp -a /usr/local/openresty/nginx/conf/mime.types /wls/web/conf/
  3. cp -a /usr/local/openresty/nginx/html /wls/web/
7. 启动、停止、重载命令

1.启动
/usr/local/openresty/nginx/sbin/nginx -p /wls/web/ -c /wls/web/conf/nginx.conf
2.停止
/usr/local/openresty/nginx/sbin/nginx -p /wls/web/ -s stop
3.重载配置
/usr/local/openresty/nginx/sbin/nginx -p /wls/web/ -s reload
4.检测配置是否正确
/usr/local/openresty/nginx/sbin/nginx -p /wls/web/ -t

8.访问

目前配置监听的是80端口,如果自己想改,去/wls/web/conf修改nginx.conf

http://192.168.183.129/

出现
Welcome to OpenResty!
代表安装正确

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神雕大侠mu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值