系统版本:Redhat 8.0
拓扑图
反向代理实验:简单的来说,就是一个网站有100万的访问量,通过反向代理分配给lamp和lnmp两个动态网站,然后存入数据库,网站实现数据互通。
准备工作:其中包含lamp和lnmp两个动态网站,四台虚拟机分别是一台反向代理,两台动态网站,和一台数据库。我这里只写反向代理proxy一台服务器
1、关闭firewalld防火墙和selinux安全子系统
[root@proxy ~]# systemctl stop firewalld.service #关闭firewalld防火墙服务
[root@proxy ~]# systemctl disable firewalld.service #禁止服务开机自动启动
[root@proxy ~]# systemctl status firewalld.service #查看服务状态
[root@proxy ~]# vim /etc/selinux/config #编写selinux配置文件(下图)
[root@proxy ~]# getenforce #查看selinux状态
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled #此地方状态禁用
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
2、下载yum仓库(本地/网络仓库都行)
[root@proxy ~]# vim /etc/yum.repos.d/dd.repo #编辑yum仓库(如下图)
[root@proxy ~]# yum clean all #清除缓存
[root@proxy ~]# yum makecache #缓存
[BaesOS]
name=BaesOS
baseurl=https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/
enabled=1
gpgcheck=0
3、在proxy服务器上构建反向代理,下载nginx包,解压nginx包
[root@proxy ~]# cd /usr/local/src/
[root@proxy src]# wget http://nginx.org/download/nginx-1.20.2.tar.gz
4、准备工作,安装nginx环境所需要的包
[root@proxy nginx-1.20.2]yum -y groupinstall ‘Development Tools’ #安装c++开发工具
[root@proxy nginx-1.20.2]yum -y install pcre pcre-devel #指定pcre路径
[root@proxy nginx-1.20.2]yum -y install openssl openssl-devel
5、创建nginx系统用户,隐藏nginx版本号
[root@proxy nginx-1.20.2]# useradd -r nginx #创建系统nginx用户
[root@proxy nginx-1.20.2]# vim src/core/nginx.h
#define nginx_version 10200
#define NGINX_VERSION "1.20.2" #版本号(更改版本号)
#define NGINX_VER "nginx/" NGINX_VERSION
6、编译脚本,脚本安装
[root@proxy nginx-1.20.2]#./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre --user=nginx --group=nginx #nginx配置,添加模块,指定用户和组
[root@proxy nginx-1.20.2]# make && make install #编译安装
7、编辑环境变量,使其可以调用nginx命令。输入nginx命令开启,就可以登录IP网站
[root@proxy nginx-1.20.2]# cd /usr/local/nginx/sbin
[root@proxy sbin]# vim /etc/profile.d/nginx.sh #配置环境变量export PATH=$PATH:/user/local/nginx/sbin/
[root@proxy sbin]# nginx #启动nginx
8、编辑nginx主配置文件,添加网址后缀,此处添加处理图片的代码
[root@proxy ~]# vim /usr/ local/nginx/conf/nginx.conf
upstream luntan {
server 192.168.101.134; #指定lamp服务器(此处可以加上配比)
server 192.168.101.135; #指定lnmp服务器(此处可以加上配比)
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://luntan; #调用luntan负载列表(负载均衡)
proxy_set_header Host $http_host; #以下三段是编写网站画面
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
root html;
index index.php index.html index.htm; #添加index.php动态网站后缀
}
9、重新加载nginx
[root@proxy ~]# nginx -s reload #重新加载nginx
[root@proxy ~]# nginx -t #检查语法错误
三台虚拟机都能访问网站