项目实训经历2

项目实训2

项目实训2主要讲了Nginx,k8s的使用。
开发环境:win10 CentOS 7

1.Nginx使用

1.Nginx安装

1.Nginx源码安装

cd /usr/local   切换到指定目录中(系统级软件)

wget http://nginx.org/download/nginx-1.19.6.tar.gz  下载nginx

tar -zxvf nginx-1.19.6.tar.gz   解压

2.安装依赖项

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

3.配置安装目录

cd /usr/local/nginx-1.19.6 

./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx    配置安装属性

4.编译并安装

make && make install

5.常用命令

nginx			        启动nginx 	
ps -ef | grep nginx		查看nginx是否已启动成功 
nginx -s reload			重新启动 	
nginx -s stop			停止nginx
nginx -v nginx -V       查看版本
nginx -t                检查
nginx -T                显示配置文件
nginx -s    stop quit reopen reload    
nginx -?

安装后启动,通过ip:80访问,一般情况下需关闭服务器的防火墙,以下为通过主机映射(编辑hosts文件实现)访问:
在这里插入图片描述

在这里插入图片描述
便于开发使用,设置Nginx语法高亮
cd nginx-1.19.6 cd contrib cp -r vim/* /root/.vim/

2.修改Nginx主目录及主页

root为主目录,主页为index.html,该文件为root.conf,需要在主配置文件nginx.conf引用 include root.conf;

listen    81;
server_name  localhost;
location / {
  root  /tmp/html;
  index  index.html index.htm;
}

error_page  500 502 503 504  /50x.html;
location = /50x.html {
  root  html;
} }

修改后半重启半加载 nginx -s reload
在这里插入图片描述

3.autoindex使用

该文件为autoindex.conf,需要在主配置文件nginx.conf引用

 server {
        listen       81;
        server_name  localhost;
        location / {
            root   /tmp/html;
            autoindex on;
            # index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

修改后半重启半加载 nginx -s reload
在这里插入图片描述

4.反向代理

反向代理通过请求Tomcat实现,先通过Docker运行Tomcat容器
docker run -itd -p8080:8080 --name tomcat80 tomcat:8.0

 server {
        listen       81;
        server_name  localhost;

        location / {
            proxy_pass  http://localhost:8080;
           # root   /tmp/html;
           # index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

在这里插入图片描述

5.动静分离

需要在image目录下放图片

 server {
        listen       81;
        server_name  localhost;

        location / {
            proxy_pass  http://localhost:8080;
            root   /tmp/html;
            index  index.html index.htm;
        }
            location /image/ {
            alias   /tmp/image/;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

在这里插入图片描述

6.负载均衡

docker run -itd -p8080:8080 --name tomcat80 tomcat:8.0

docker run -itd -p8081:8080 --name tomcat9 tomcat:9

tomcat8.5后 ROOT在 webapps
须要进入容器
docker exec -it tomcat9 /bin/bash

cd webapps.dist/

cp -r ROOT …/webapps

upstream backend 
{
  ##server服务地址  weight代表权重:1-10
  ##weight Nginx根据weight配置把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器
  server 127.0.0.1:8080  weight=1;
  server 127.0.0.1:8081  weight=2;
}
 server {
        listen       81;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
            root   /tmp/html;
            index  index.html index.htm;
        }
        }

在这里插入图片描述

2.项目搭建

刚开始通过脚本建立 wmSpringboot
docker run -itd --name wmSpringboo -p8081:8080 --network=jdnetwork wmboot
然后通过端口分别访问,能访问后加入Nginx

 upstream backend 
{
  ##server服务地址  weight代表权重:1-10
  ##weight Nginx根据weight配置把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器
  server 47.113.192.187:8080  weight=1;
  server 47.113.192.187:8081  weight=2;
  ##如果配置了down 则该配置不生效
  ##server 192.168.1.107:8001  weight=2 down;
  ##ip_hash 每个请求按访问ip的hash结果分配,保证连接到固定的负载服务器上,这种方式可以解决session问题
  #ip_hash;
}
 server {
        listen       81;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
            root   /tmp/html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

在这里插入图片描述

3.Nginx高级

1.Rewrite 跳转

编写rewrite.conf ,nginx.conf内引用 include jd/rewrite.conf;

 server {
        listen       81;
        server_name  localhost;
        rewrite  ^/$  https://cn.bing.com/  permanent;
        location / {
            root   /tmp/html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

修改后半重启半加载 nginx -s reload 访问能够跳转到必应

2.Url重写
 server {
        listen       82;
        server_name  localhost;
        location / {
            rewrite  ^/(.+)/(\d+) /$1?id=$2  permanent;
            root   /tmp/html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

运行结果:
在这里插入图片描述
在这里插入图片描述

3.防盗链

写reffer.conf ,nginx.conf引入

 server {
        listen       81;
        server_name  localhost master master1;

        location / {
            root   /tmp/html;
            index  index.html index.htm;
        }
        location ~* \.(gif|jpg|png|swf|flv)$ {
            valid_referers none blocked master;
            if ($invalid_referer) {
                return 403;
            }
             root /tmp/image;
            index index.html index.htm;
        }   
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

hosts文件配 master master1
1.直接访问图片
在这里插入图片描述
index.html添加图片地址

<img src="http://master:81/1.jpg" > </img>

分别通过master和master1访问
在这里插入图片描述
master1图片返回了403,不能使用1.jpg图片
在这里插入图片描述
在这里插入图片描述

4.Nginx性能测试工具

yum install -y httpd

使用 ab 测试
在这里插入图片描述

4.Kubernetes(k8s)安装

1.使用KubeKey安装k8s

在 Linux 上以 All-in-One 模式安装 KubeSphere

CentOS 7.x 2 核 CPU,4 GB 内存,35 GB 磁盘空间

博主亲身实践 安装摘自:使用KubeKey安装k8s

export KKZONE=cn             

curl -sfL https://get-kk.kubesphere.io | VERSION=v2.2.1 sh -    

chmod +x kk

./kk create cluster --with-kubernetes v1.22.10

遇见错误: [ERROR] socat ie required

通过yum安装          yum install -y socat      -y 不需要确认安装

yum安装后继续安装  ./kk create cluster --with-kubernetes v1.22.10

kubectl get pod -A    检验

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

kubectl get pods -n kuboard

安装后检验 kubectl get pod -A,首次应该只有 9个·kube-system 命名空间
在这里插入图片描述

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
kubectl get pods -n kuboard

产生 5个 kuboard 命名空间
在这里插入图片描述

2.使用Kuboard访问k8s

通过浏览器访问:默认端口30080
在这里插入图片描述
默认用户名:admin 密码:Kuboard123

在这里插入图片描述

1.创建命名空间

登录成功后就可以创建命名空间,点击default ,使用admin后,首次需要导入集群
在这里插入图片描述
选择创建名称空间
在这里插入图片描述
在这里插入图片描述

2.创建工作负载

选择jd-tomcat后,创建工作负载
在这里插入图片描述

3.工作负载控制器创建pod

在这里插入图片描述

4.pod里创建nginx的docker对象

填写基本信息后选择添加工作容器,填写镜像名称tomcat:8.0及配置端口

在这里插入图片描述
应用后生成容器
在这里插入图片描述
浏览器访问
在这里插入图片描述

5.k8s实现数据库的持久化

1.创建有状态副本集

在这里插入图片描述

2.创建工作容器

填写容器名称,镜像名称mysql:5.6,配置密码端口
在这里插入图片描述

3.选择存储挂载

选择好后点击确定,再保存
在这里插入图片描述

4.生成容器开始测试

1.生成容器
在这里插入图片描述
2.sqlyog连接
在这里插入图片描述
3.创建数据库和表
在这里插入图片描述

5.重启容器

在这里插入图片描述

6.查看数据

在这里插入图片描述

6.实现数据库主从复制

1.配置主ConfigMap

配置字典里配置,密文里配置数据库密码
在这里插入图片描述

2.存储挂载配置数据字典

容器内路径:/etc/mysql/mysql.conf.d/mysqld.cnf
在这里插入图片描述

3.mastersql启动

在这里插入图片描述

4.配置从ConfigMap

在这里插入图片描述

5.复制工作负载

在这里插入图片描述

6.修改容器信息

在这里插入图片描述

7.slavesql启动

在这里插入图片描述

8.主从之间连接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.测试主写从读

通过使用master建表,查询slave
在这里插入图片描述

在这里插入图片描述

7.k8s使用Nginx部署

1.nginx镜像启动容器

1.以下为启动后更改其配置文件,方便做反向代理
在这里插入图片描述
在这里插入图片描述

2.服务器端启动Docker容器

在这里插入图片描述

3.登录显示界面

通过登录界面登录后显示数据库里的数据
在这里插入图片描述
在这里插入图片描述

8.k8s部署项目

1.项目上传到阿里云

1.创建本地镜像仓库
在这里插入图片描述
2.推数据库镜像
在这里插入图片描述
3.推项目镜像
在这里插入图片描述

2.创建持久层

1.主要是镜像名称,端口配置及密码配置
在这里插入图片描述
2.数据持久化
在这里插入图片描述
3.启动数据库容器
在这里插入图片描述
4.查看建成的数据库
在这里插入图片描述

3.创建API网关层

1.主要是镜像名称,端口配置
在这里插入图片描述
2.启动项目容器
在这里插入图片描述

4.访问项目

1.登录访问数据
在这里插入图片描述
密码错误,经过全局异常处理显示
在这里插入图片描述
2.密文修改密码

在这里插入图片描述
3.修改存储挂载,保证密码生效
在这里插入图片描述
4.最终显示了数据库的数据
在这里插入图片描述

5.nginx反向代理

在这里插入图片描述
之后进入容器,nginx -s -reload

登录能够访问成功数据

在这里插入图片描述
项目就在k8s上运行起来了

9.宝塔的使用

1.宝塔安装

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 28615082

2.宝塔访问

首次登录需要再注册账号
在这里插入图片描述

3.功能简介

能够管理Docker容器,使用便捷。
在这里插入图片描述
还有其它功能有待摸索。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值