构建Nginx服务器
1使用源码包安装nginx软件包
yum -y install gcc pcre-devel openssl-devel //安装依赖包
useradd -s /sbin/nologin nginx //指定账户不让登陆
tar -xf nginx-1.22.1.tar.gz //解包
cd nginx-1.22.1/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module //检查环境 //指定安装路径 默认的路径 可要可不要 //指定用户(以这个用户来执行这些,防止别的用户操作,为了安全) //指定组 //开启SSL加密功能
make && make install //编译并安装
2nginx命令的用法
/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 //查看软件信息
3设置防火墙与SELinux
systemctl stop firewalld
setenforce 0
4测试首页文件
Nginx Web服务默认首页文档存储目录为/usr/local/nginx/html/,在此目录下默认有一个名为index.html的文件,使用客户端访问测试页面:
curl http://192.168.81.130
<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body bgcolor="white" text="black">
<center><h1>Welcome to nginx!</h1></center>
</body>
</html>
负载均衡
七层负载均衡基础配置
vim /usr/local/nginx/conf/nginx.conf
upstream servers { #upstream模块要写到http的里面
server 192.168.81.16:80;
server 192.168.81.17:80;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://servers; #通过proxy_pass将用户的请求转发给servers集群,他的语句优先级高于root,所以放root前面和后面都可以
root html;
index index.html index.htm;
}
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -s reload
systemctl stop firewalld
setenforce 0
负载均衡策略
1轮询
upstream backend {
server 192.168.81.16:8080;
server 192.168.81.17:8080;
}
2weight 加权( 权重默认为1,谁权重大,谁优先处理请求)
upstream backend {
server 192.168.81.16:8080 weight=5;
server 192.168.81.17:8080 weight=2;
}
3ip_hash算法
upstream backend {
ip_hash;
server 192.168.81.16:8080;
server 192.168.81.17:8080;
}
4least_conn(将请求转发给连接数较少的后端服务器)
upstream backend {
least_conn;
server 192.168.81.16:8080;
server 192.168.81.17:8080;
}
5url_hash
upstream backend {
hash $request_uri;
server 192.168.81.16:8080;
server 192.168.81.17:8080;
}