简单Web服务器集群与MySQL主从搭建
目的:实现简单的Web服务器的负载均衡+mysql主从
所用环境:CentOS Linux release 7.5.1804 (Core)
规划:
主机名 | IP地址 | 部署服务 | 所用版本 |
---|---|---|---|
proxy | 192.168.4.80/24 | Nginx代理 | nginx/1.12.2 |
web1 | 192.168.4.90/24 | Nginx+Tomcat | nginx/1.12.2 |
web2 | 192.168.4.91/24 | Nginx+Tomcat | nginx/1.12.2 tomcat/9.0.6 |
web3 | 192.168.4.92/24 | Nginx+Tomcat | nginx/1.12.2 tomcat/9.0.6 |
mysql-1 | 192.168.4.93/24 | MySQL主从 | 5.7.17 MySQL Community Server |
mysql-2 | 192.168.4.94/24 | MySQL主从 | 5.7.17 MySQL Community Server |
- #准备环境:
1.将Nginx-1.12.2下载并传给所有需要的主机
[root@proxy ~]# wget http://nginx.org/download/nginx-1.12.2.tar.gz
[root@proxy ~]# scp /root/nginx-1.12.2.tar.gz root@192.168.4.91:/root
#后面两台也可以做好一台解压好的Nginx修改过版本信息的直接传目录
[root@proxy ~]# scp /root/nginx-1.12.2.tar.gz root@192.168.4.92:/root
[root@proxy ~]# scp /root/nginx-1.12.2.tar.gz root@192.168.4.93:/root
2.下载MySQL5.7-bundle包并传给需要的主机
[root@proxy ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
[root@proxy ~]# scp /root/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar root@192.168.4.93:/root/
[root@proxy ~]# scp /root/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar root@192.168.4.93:/root/
3.下载Tomcat,并传至web主机
[root@proxy ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.20/bin/apache-tomcat-9.0.20.tar.gz
配置好一台Web主机后,直接传文件给其他web主机
- #proxy主机
1.安装Nginx依赖;
[root@proxy nginx-1.12.2]# yum -y install gcc pcre-devel openssl-devel
2.源码包安装Nginx;
[root@proxy ~]# tar -xf nginx-1.12.2.tar.gz
[root@proxy ~]# useradd -s /sbin/nologin nginx
[root@proxy ~]# cd nginx-1.12.2/
[root@proxy nginx-1.12.2]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
--with-stream
[root@proxy nginx-1.12.2]# vim src/http/ngx_http_header_filter_module.c #修改源码隐藏版本号
static u_char ngx_http_server_string[] = "Server: windowXP" CRLF; #检索Server能快速定位该行
static u_char ngx_http_server_full_string[] = "Server:windowsXP" CRLF;
static u_char ngx_http_server_build_string[] = "Server:windowsXP" CRLF;
:wq!
[root@proxy nginx-1.12.2]# ./configure --user=nginx --group=nginx --with-stream --without-http_autoindex_module
[root@proxy nginx-1.12.2]# make && make install
3.修改配置文件,设置代理;
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
http {
include mime.types;
default_type application/octet-stream;
upstream webserver {
#设定一个weibserver调度集群
server 192.168.4.90:80 max_fails=2 fail_timeout=30s;
server 192.168.4.91:80 max_fails=2 fail_timeout=30s;
server 192.168.4.92:80 max_fails=2 fail_timeout=30s;
}
……
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://webserver; #代理到http://webserver
proxy_set_header host $host;
root html;
index index.html index.htm;
}
4.做一个Nginx的软链接,开启服务;
[root@proxy nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ #做一个软链接方便使用
[root@proxy nginx-1.12.2]# nginx #开启ngxin服务
[root@proxy nginx-1.12.2]# netstat -tunlp | grep 80 #确定nginx80端口已开启
- #Web主机
所有web主机均这样操作-第一台做好后,直接将nginx目录,tomcat目录,传到其他web主机,其他Web主机只需yum安装对应组件,创建Nginx用户,在最后我总结了其他Web服务器的相应操作!
1.安装Nginx,php-fpm;
[root@web1 nginx-1.12.2]# yum -y install gcc pcre-devel openssl-devel #安装Nginx依赖
[root@web1 nginx-1.12.2]# yum -y install php php-fpm php-mysql #安装PHP对应组件
[root@web1 ~]# tar -xf nginx-1.12.2.tar.gz
[root@web1 ~]# cd nginx-1.12.2/
[root@web1 nginx-1.12.2]# vim src/http/ngx_http_header_filter_module.c
static u_char ngx_http_server_string[] = "Server:WindowXP" CRLF;
static u_char ngx_http_server_full_string[] = "Server:WindowXP" CRLF;
static u_char ngx_http_server_build_string[] = "Server:WindowXP" CRLF; #修改版本信息
[root@web1 nginx-1.12.2]# useradd -s /sbin/nologin nginx
[root@web1 nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --without-http_autoindex_module --with-stream --with-http_stub_status_module
[root@web1 nginx-1.12.2]# make && make install
2.修改Nginx配置文件;
[root@web1 nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
......
http {
include mime.types;
default_type application/octet-stream;
upstream tom {
#定义一个Tomcat调度
server 127.0.0.1:8080 max_