此篇介绍 nginx的安装所遇到的问题,以及负载均衡所遇到的问题。
nginx安装
1.安装必要的软件,pcre:可以支持rewrite功能。openssl:可以支持ssl功能。
# yum install pcre*
# yum install openssl*
2.从官网下载稳定版,此时是1.16.1,然后解压
# wget http://nginx.org/download/nginx-1.16.1.tar.gz
# tar -zxvf nginx-1.16.1.tar.gz
3.安装软件三板斧(./configure , make , make install)。注意nginx 1.9.5开始已经没有了 --with-http_spdy_module ,取代的是 --with-http_v2_module
4.centos7防火墙打开http
# firewall-cmd --zone=public --add-service=http --permanent
# firewall-cmd --reload
启动nginx
# /usr/local/nginx-1.16.1/sbin/nginx
当通过你系统的IP地址访问出现如下画面,则安装成功
关闭nginx:
# /usr/local/nginx-1.16.1/sbin/nginx -s stop
当改变了nginx.conf后,重置:
# /usr/local/nginx-1.16.1/sbin/nginx -s reload
nginx配置负载均衡
我是用三个端口模拟(一个做反向代理,两个做WEB服务),分别为80(主),8000(子),8001(子)。这样可以不需要再另外配置三台服务器,仅作演示,有条件的可以直接弄三台。
1、将防火墙允许这个三个端口访问(防火墙关闭的可以忽略)
2、新建两个目录,分别写入两个文件,作为两台WEB服务器的根目录
# mkdir n1
# mkdir n2
# echo "node_1" > n1/index.html
# echo "node_2" > n2/index.html
3、修改nginx.conf文件,使两个端口(8000,8001)均可访问。如果出现403 Forbidden错误,请将nginx.conf的头部“user nobody;”修改为你目录的权限用户。
# vim /usr/local/nginx-1.16.1/conf/nginx.conf
如下图所示:
4、再次修改nginx.conf,配置负载均衡,主要使用以下关键字“upstream , proxy_pass”。我这里使用的localhost,如果要使用,请改成自己的IP和端口。
当访问默认IP时,不断刷新出现如下图所示,即配置完成。
负载均衡的几种常用方式
1、轮询(默认)。每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream myload {
server localhost:8000;
server localhost:8001;
}
2、weight (权重)。当后端服务器的性能不同时,可以按比率分配。weight与访问比率成正比。
upstream myload {
server localhost:8000 weight=4;
server localhost:8001 weight=6;
}
3、当启用了session时,想让用户登录后,后续访问都在此台服务器上时可以用这种。
upstream myload {
ip_hash;
server localhost:8000;
server localhost:8001;
}
4、fair(第三方) 。这种需要安装模块“nginx-upstream-fair”。这里就不细讲,我会在nginx模块安装里详细介绍。只需知道fair采用的不是内建负载均衡使用的轮换的均衡算法,而是可以根据页面大小、加载时间长短智能的进行负载均衡。
upstream myload {
server localhost:8000;
server localhost:8001;
fair;
}
5、url_hash(第三方)。这种需要配置缓存命中来使用。主要是进行缓存,对多个需要下载的资源(对应的url)进行缓存。
upstream myload {
hash $request_uri;
server localhost:8000;
server localhost:8001;
}
本文暂时没有评论,来添加一个吧(●'◡'●)