nginx基础架构实验

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: nginx基础架构实验

基础架构搭建

环境准备:配置ip,关闭防火墙和selinux

lb1:192.168.8.10

lb2:192.168.8.20

web1:192.168.8.30

web2:192.168.8.40

mysql: 192.168.8.50

php: 192.168.8.60



ifdown ens33;ifup ens33

systemctl stop firewalld

systemctl disable firewalld

setenforce 0


1.lb1、lb2、web1、web2安装nginx


yum -y install epel-release

yum -y install nginx

2.配置lb1:192.168.8.10

cd /etc/nginx/conf.d/
rm -rf *
vim lb.conf

添加:

upstream webcluster {
        server 192.168.8.30:80;
        server 192.168.8.40:80;
}
server {
        listen 80;
        server_name blog.benet.com;
        location / {
                proxy_pass      http://webcluster;
                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;
        }
}


保存退出

systemctl restart nginx 
systemctl enable nginx 
scp -rp /etc/nginx/conf.d/lb.conf root@192.168.8.20:/etc/nginx/conf.d/

配置lb2: 192.168.8.20

systemctl restart nginx

systemctl enable nginx


3.配置keepalived高可用

两台lb都安装keepalived

yum -y install keepalived


lb1:配置keepalived

vim /etc/keepalived/keepalived.conf

修改:

global_defs {
   router_id lb1
}
vrrp_script check_nginx_proxy {
        script “/sh/check_nginx_proxy.sh”
        interval 2
        weight 5
        }
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.8.254
    }
    track_script {
        check_nginx_proxy
    }
}

保存退出


mkdir /sh 
vim /sh/check_nginx_proxy.sh
#!/bin/bash
killall  -0  nginx
if  [ $? -ne 0 ];then
  systemctl stop keepalived
fi
chmod  +x  /sh/check_nginx_proxy.sh
crontab -e
* * * * * /bin/bash /sh/check_nginx_proxy.sh


lb2:配置keepalived

vim /etc/keepalived/keepalived.conf

修改为:

global_defs {
   router_id lb2            
}
vrrp_instance VI_1 {
    state BACKUP            
    interface ens33
    virtual_router_id 51
    priority 99                
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.8.254    
    }
}

保存退出


systemctl restart keepalived

systemctl enable keepalived



4.配置web节点

web1: 配置nginx,安装blog

(2)复制wordpress安装包,到虚拟机/,解压并赋权

   unzip wordpress-4.9.4-zh_CN.zip

   chmod -R 777 /wordpress

   scp -rp /wordpress root@192.168.8.60:/

 

(3)创建虚拟主机配置文件

vim /etc/nginx/conf.d/blog.conf

   添加:

 

server {
        listen 80;
        server_name blog.benet.com;
        root /wordpress;
        index index.php index.html;
        location ~ \.php$ {
                root /wordpress;
                fastcgi_pass 192.168.8.60:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME documentrootdocument_rootfastcgi_script_name;
                include fastcgi_params;
        }
    }

   保存退出

   systemctl reload nginx

 

 

5.安装mysql:192.168.8.50

复制mysql-rpm包到虚拟机

cd mysql-rpm

yum -y localinstall *.rpm

systemctl restart mysqld

systemctl enable mysqld


登录并创建blog库和用户:

mysql

create database blog;

grant all on blog.* to lisi@'%' identified by '123.com';



6.安装php:192.168.8.60

复制php-rpm到虚拟机

cd php-rpm

yum -y localinstall *.rpm


vim /etc/php-fpm.d/www.conf

定位并修改为:

listen = 192.168.8.60:9000

listen.allowed_clients = 192.168.8.30,192.168.8.40

保存退出  

systemctl restart php-fpm

systemctl enable php-fpm


7.客户端浏览器访问web1:192.168.8.30,安装blog

安装成功后,复制web1的配置文件和wordpress目录到web2:

scp -rp /wordpress root@192.168.8.40:/

scp -rp /etc/nginx/conf.d/* root@192.168.8.40:/etc/nginx/conf.d/

web2: systemctl restart nginx

测试能通过访问192.168.8.40成功


8.客户端通过域名或192.168.8.254虚拟地址访问,查看轮询


9.配置ssl加密

web1: 创建证书

mkdir -p /etc/nginx/ssl_key 
cd /etc/nginx/ssl_key
openssl genrsa -idea -out server.key 2048
openssl req -days 3650 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
vim /etc/nginx/conf.d/https.conf
server {
        listen 443 ssl;
        server_name blog.benet.com;
    ssl_certificate ssl_key/server.crt;
        ssl_certificate_key ssl_key/server.key;
        root /wordpress;
        index index.php index.html;
        location ~ \.php$ {
                root /wordpress;
                fastcgi_pass 192.168.8.60:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME documentrootdocument_rootfastcgi_script_name;
                include fastcgi_params;
        }
    }
server {
        listen 80;
        server_name blog.benet.com;
        rewrite .* https://servernameservernameserver_name1 redirect;
}

保存退出


scp -rp /etc/nginx/ssl_key root@192.168.8.40:/etc/nginx/

scp -rp /etc/nginx/ssl_key root@192.168.8.10:/etc/nginx/

scp -rp /etc/nginx/ssl_key root@192.168.8.20:/etc/nginx/


lb1和lb2:

mkdir -p /etc/nginx/ssl_key 
cd /etc/nginx/ssl_key
openssl genrsa -idea -out server.key 2048
openssl req -days 3650 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
vim /etc/nginx/conf.d/https.conf
server {
        listen 443 ssl;
        server_name blog.benet.com;
    ssl_certificate ssl_key/server.crt;
        ssl_certificate_key ssl_key/server.key;
        root /wordpress;
        index index.php index.html;
        location ~ \.php$ {
                root /wordpress;
                fastcgi_pass 192.168.8.60:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME documentrootdocument_rootfastcgi_script_name;
                include fastcgi_params;
        }
    }
server {
        listen 80;
        server_name blog.benet.com;
        rewrite .* https://servernameservernameserver_name1 redirect;
}

保存退出  


systemctl restart nginx  

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
2
分享
相关文章
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
390 90
搭建一个大型网站架构的实验环境(FreeBsd+Nginx+Squid+Apache)
http://blog.chinaunix.net/u1/55904/showart_452701.
950 0
Nginx配置与命令
Nginx 是一款高性能的 HTTP 和反向代理服务器,其配置文件灵活且功能强大。本文介绍了 Nginx 配置的基础结构和常用指令,包括全局块、Events 块、HTTP 块及 Server 块的配置方法,以及静态资源服务、反向代理、负载均衡、HTTPS 和 URL 重写等功能实现。此外,还提供了常用的 Nginx 命令操作,如启动、停止、重载配置和日志管理等,帮助用户高效管理和优化服务器性能。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等