反向代理(Nginx)

格式:for i in do done;$是调用前面的变量i,把后面的ip赋给前面的i

需求

安装LNMP

web1和web2都要做,这里只演示web2

[root@web2 ~]# tar -xf nginx-1.12.2.tar.gz(先解压)

使用yum安装基础依赖包

1. [root@web2 ~]# yum -y install gcc openssl-devel pcre-devel

安装MariaDB

1. [root@web2 ~]# yum -y install mariadb mariadb-server mariadb-devel

php和php-fpm

1. [root@web2 ~]# yum -y install php php-mysql

2. [root@web2 ~]# yum -y install php-fpm

进入解压后的nginx,执行./configure,添加两个模块。

[root@web2 nginx-1.12.2]# make && make install(编译安装)

[root@web1 nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf(进入配置文件修改配置)

修改之后的配置文件(动静分离)

添加状态模块(并发连接数)

[root@web2 ~]# systemctl enable mariadb --now(启动数据库并设置开机自启)

[root@web1 nginx-1.12.2]# ss -antlp(查看端口的命令)

查看user表里面的内容。

创建PHP测试页面,连接并查询MariaDB数据库。在web1的html下面创建一个test.php

curl 一下的结果就是显示数据库user表里面的东西,说明lnmp架构能解析到mysql数据库。

七层代理(在两台代理服务器上做)

1. [rootagent ~]# cd nginx-1.12.2

[root@agent nginx-1.12.2]# ./configure(只需执行这个)

[root@agent nginx-1.12.2]# make && make install

在配置文件里添加http{upstream是个参数 后面是起了个名字,大括号里面写的是两台web服务器}

proxy_pass是调度,七层代理属于应用层,只能负载网站,所以后面写调用webserver

[root@agent ~]# /usr/local/nginx/sbin/nginx(启动nginx)

测试

区分两个为不同的页面

[root@web2 html]# echo "BBB" > /usr/local/nginx/html/index.html

[root@web1 ~]# echo "AAA" > /usr/local/nginx/html/index.html

可以看到curl与两台web后端服务器不同的网段,实现了负载均衡。