概念
nginx 负载均衡:提升吞吐率,提升请求性能。提高容灾
nginx 动静分离:通过中间件将动态请求和静态请求进行分离,分离资源,减少不必要的请求消耗,减少请求延时
好处:动静分离后,即使动态服务不可用,但静态资源不会受到影响 通过中间件将动态请求和静态请求分离
准备环境
我个人百度网盘上有需要会用到的软件包
个人网盘地址:链接:
https://pan.baidu.com/s/1jI2wUnf2OufsLNjWPAj0zg
提取码:681j
nginx代理一台(必须有)192.168.59.201
tomcat服务器一台(必须有)192.168.59.202
web服务器两台(任意 apache nginx tomcat 都可以)203
实验步骤
1.部署安装这几台服务器 安装apache tomcat nginx
2.确保安装完成后网页可以访问
3.修改nginx反向代理服务器实现负载均衡
4.默认把防火墙 selinux 关闭一下
分别安装nginx服务、tomcat服务 apache服务
安装nginx服务
2、源代码安装
yum -y install pcre-devel zlib-devel
tar xf nginx-1.18.0.tar.gz
cd nginx-1.18.0
useradd -M -s /sbin/nologin nginx
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install
echo $?
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
编写nginx的启动脚本
[root@localhost ~]# cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl start nginx
netstat -anput |grep 80
看到nginx服务起来了就可以了
安装tomcat服务
[root@localhost ~]# yum –y install java //安装java环境
[root@localhost ~]# java –version //查看JDK是否安装
部署配置tomcat
[root@localhost ~]# tar zxvf apache-tomcat-8.5.16.tar.gz //解压解包
[root@localhost ~]# mv apache-tomcat-8.5.16 /usr/local/tomcat8 //将解压后的文件移动至/usr/local/
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh //启动tamcat
[root@localhost ~]# netstat -anpt |grep 8080 //查看监听的端口。tomcat默认运行在8080端口
安装apache服务
直接挂在镜像 用yum安装
yum -y install httpd
systemctl start httpd
配置nginx代理服务器
vi /usr/local/nginx/conf/nginx.conf
使用 upstream 虚拟配置语法
Syntax: upstream name { … }
Default: -
Context: http
例子
upstream xsy {
server 192.168.100.202:80 weight=5;
server 192.168.100.203:80 weight=5; \weight 表示权重 数字越大 权重越高
}
server {
location / {
proxy_pass http://xsy; \注意proxy_pass模块调用时 里面不能有下划线
root /web/benet;
index index.html index.htm;
}
}
1.创建对应 html ⽂件
[root@server ~]# mkdir -p /web/benet/
[root@server ~]# cat /web/benet/index.html
nginx1
[root@server ~]# cat /web/benet/index.html
nginx2
[root@server ~]# cat /web/benet/index.htmlnginx3
浏览访问看到变化就好了 ### 动静分离 可以直接基于上面的做,大同小异
就如上图
访问http://192.168.59.201/default static upload
跟不同的名称显示不一样
我设置的默认访问动态页面
结合lamp做动静分离
lamp节点搭建
上传lamp的软件包
[root@real1 ~]# ls
lamp_install_publis-app-2015-07-16.tar.xz
[root@real1 ~]# tar Jxvf lamp_install_publis-app-2015-07-16.tar.xz
[root@real1 ~]# cd bin/
[root@real1 bin]#./apache_install.sh &&./mysql_install.sh &&./mysql_config.sh &&./php_install.sh &&./php_config.sh &&./lamp_config.sh
[root@real1 bin]# cd
[root@real1 ~]# netstat -utpln |grep 80
[root@real1 ~]# netstat -utpln |grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 6693/mysqld
[root@real1 ~]# rm -rf /usr/local/httpd/htdocs/index.html
[root@real1 ~]# vi /usr/local/httpd/htdocs/index.php
"; echo "访问的服务器地址是"." ".$_SERVER['SERVER_ADDR'].""."
"; echo "访问的服务器域名是"." ".$_SERVER['SERVER_NAME'].""."
"; echo "SESSIONNAME是"." ".session_name().""."
"; echo "SESSIONID是"." ".session_id().""."
"; ?>
客户端访问测试
http://192.168.59.207
lnmp节点二同上
略
代理服务器上配置
vi /usr/local/nginx/conf/nginx.conf
systemctl restart nginx
如有报错 nginx -t差错
重启服务 访问
http://192.168.59.203/index.html
http://192.168.59.203/index.php
这就nginx 反向代理做 与lamp tomcat apache 负载均衡 及动静分离