Linux云计算

Linux 云计算

1.安装linux虚拟机

1.1安装红帽公司提供的虚拟机平台bc0666a3d4ccb4f13dd43d2dffab9cda.png

在此虚拟机下选择CentOS 7 64位 iso光盘,进行安装;

第一次安装时,需要保存快照,以便后续恢复 #快照作用:相当于存档作用,十分重要;

0797bb6f7394d6593b91116400251740.png

#####################################################################

1.2安装MobaXterm1_CHS1对虚拟机服务器进行远程调控

建新会话

c5be6b82196411a3641a291e593b07df.png

选择SSH

f78c054b723c9133f9c590e8c54c8563.png

在虚拟机下输入 ip a (ip address)获取本地ip

22373a2471669ca9498d2487041d5601.png

lo为本地

ens33为实际连接时使用的ip

192.168.119.128为实际ip,用此ip来连接会话

acb4fcbdfef2a03685c2398083dd7cef.png

输入 远程主机ip 以及用户名:root

用户名指定为:root

password:在虚拟机登入中不显示,为隐示输入

#####################################################################

1.3对动态ip进行静态设置

nmcli connection modify ens33 ipv4.address 192.168.119.88/24 ipv4.gateway 192.168.119.2 ipv4.dns 192.168.119.2 ipv4.method static

输入以上命令;

注意:第一个ip需要在后缀加上/24 后面两个ip作为访问出口和dns代理ip进行设置,统一为2;

接着输入;

systemctl restart network

#重启网络设置

新建新定义的静态ip会话,重新打开即可设置成功;

#固定服务器ip

2.搭建服务器

命令网址:

https://www.processon.com/view/link/6266626f07912970cb22bc45#map

例子:命令1

cal 查看日历

e21bc2315b80f17af2464a150c02c61b.png

例子:命令2

7da7f4f29b0eacca005dfb1d1464b475.png

yum -y install tree #安装命令,有些命令模块需要安装才能用;

2.1 BT面板安装辅助搭建服务器 (初学者使用)

输入bt 输入命令14

输入面板地址进入宝塔的调试面板

可以查找宝塔账户密码

ea95ef3c4ee37a197542336964149628.png

浏览器 传输给 Nginx 提供资源的访问 需要在地址后面加上/文件名 ,默认会访问该目录下的index.html(索引文件)

#如果没有index.html或指定文件名则返回404 Not Found

a4f9daaef4784b067897bcc662907a12.png

前端的代码主要在nginx的目录下发给客户端浏览器

PHP 提供业务的逻辑处理(浏览器无法提供) #数据处理后呈递给数据库

MySQL存储业务数据 #处理完后返回给Nginx,呈递给客户

2.2 搭建blog

在BT面板内上传tyecho的开源库;

在usr/themes上传tyecho主题,可以对外观进行修改;

输入内网地址访问blog ;

b2b251df1ad81ee22d446974ff4e98b9.png

第一次进入设置用户名与密码,以及数据库的名字与密码;

进入内网地址,后面加/admin进入用户管理,可以更改界面;

#再次访问时,在终端SSH会话中输入bt可以对密码进行修改等,复制内网或者外网连接进行访问宝塔网页管理界面

2.3部署服务

局域网关系图

0d88732480bb8391be0ae131ad0384c1.png

4821ed001d49df0b7b2a63dc4c06bcfa.png

通过代理搭建服务器

使用开源的frps部署服务器

1.下载源代码

​ wget https://github.com/fatedier/frp/releases/download/v0.42.0/frp_0.42.0_linux_amd64.tar.gz

2.解压

​ tar xzvf frp_0.42.0_linux_amd64.tar.gz

3.修改配置文件

​ [common]
​ bind_addr = 0.0.0.0
​ bind_port = 7000

bind_udp_port = 7001
kcp_bind_port = 7000

vhost_http_port = 80
vhost_https_port = 443

dashboard_addr = 0.0.0.0
dashboard_port = 7500

dashboard_user = admin
dashboard_pwd = admin888 #管理员密码

token = 12345678

allow_ports = 2000-3000,3001,3003,4000-50000
subdomain_host = study.iproute.cn #购买的服务器域名

4.运行软件

​ ./frps -c frps.ini

5.测试

​ 浏览器访问http://43.133.1.5:7500/

frp客户端

  1. 上传群里压缩包的frpc文件到虚拟机中,并且右键将执行打上勾
  2. 在frpc文件下面新建一个空文件,重命名为frpc.ini
  3. 在配置文件中填写如下内容

[common]

服务器的IP地址

server_addr = 43.133.1.5

服务器的端口号,默认是7000

server_port = 7000

服务器上面的用户名

user = tly

协议kcp > tcp ,所以建议kcp

protocol = kcp

和服务器一样即可,加密用的

token = 12345678

[blog]
type = http
local_ip = 127.0.0.1
local_port = 80
use_encryption = false
use_compression = true
subdomain = blog-xwz #自己写的域名

[pan]
type = http
local_ip = 127.0.0.1
local_port = 80
use_encryption = false
use_compression = true
subdomain = pan-xwz #自己写的域名

  1. 启动服务
    ./frpc -c frpc.ini
  2. 就可以跑去映射服务器后台看下HTTP那里自己有没有映射成功

3.大型网站发展

3.1【云计算】网站架构

https://www.yuque.com/docs/share/cf761c6e-a645-4003-9002-815f82b5f9bf?#

3.2Docker容器

Docker概念:

Docker会执行某个任务,直到任务结束为止;

56feae39e93d3e49203b83beb14cca00.png

#相当于对操作系统下的应用程序与扩展库等的一个打包

#优势:减少了操作系统的重复性安装,避免大量占用系统存储空间

在远程控制端执行一下Doker安装命令

sudo yum remove docker docker-common docker-selinux docker-engine sudo yum install -y yum-utils device-mapper-persistent-data lvm2 yum -y install wget wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo sudo yum makecache fast sudo yum install docker-ce -y systemctl enable --now docker

此时Docker已经安装完毕

docker run -d –privileged=true –rm –user 0 -p 5901:5901 -p 6901:6901 -e VNC_PW=123 registry.cn-hangzhou.aliyuncs.com/eagleslab/service:xfce-vnc

输入以上命令行对安装完的Docker进行测试,获取互联网上的Docker应用进行测试

在浏览器中访问192.168.119.128:6901进行访问测试,密码为123 (VNC_PW=123)

docker ps -a 查看正在运行的容器

安装docker图形化管理工具

docker rm -f docker ps -qa docker volume create portainer_data docker run -d -p 8000:8000 -p 9443:9443 -p 9000:9000 --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:2.9.3

下载镜像时可以看作者的提示,有哪些参数设置是规定好了的

fe77e517419e09fbe7e42ffddd346b00.png

开通阿里云提供的镜像加速服务

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["![img](file:///C:\Users\tly20\AppData\Roaming\Tencent\QQTempSys\[5UQ[BL(6~BS2JV6W}N6[%S.png)https://m66ssmqq.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

Docker的基本命令

docker search <关键字> # 搜索镜像
docker search nginx
docker search centos

docker pull <镜像名> # 获取镜像
docker pull nginx
docker pull centos:8
docker pull ubuntu

docker images # 查看有哪些镜像
docker rmi <镜像名> # 删除镜像
docker run <镜像名> <任务> # 运行容器,当任务执行结束之后,容器就会退出
docker run –name=”<容器名>” <镜像名> <任务指令> # 指定容器的名字
docker run -d <镜像名> <任务指令> # 让容器在后台启动
docker run -i -t <镜像名> bash # 进入容器的命令交互程序
docker run -p <主机的端口号>:<容器的端口号> <镜像名> <任务指令> # 暴露容器的端口号
docker run -v <主机上的目录>:<容器的目录> <镜像名> <任务指令> # 将主机上的文件夹映射到容器中

docker ps # 查看容器,默认只能看到运行中的容器
docker ps -a # 查看所有容器

docker logs <容器名> # 查看容器运行的时候输出的内容
docker logs -f <容器名> # 持续查看容器输出的内容

docker stop <容器名> # 停止容器,会告诉容器要结束了,赶紧自己退出
docker kill <容器名> # 杀死容器,直接收回容器的资源,可能会出现数据来不及保存
docker start <容器名> # 启动容器
docker rm <容器名> # 删除容器
docker restart <容器名> # 重启容器
docker pause <容器名> # 暂停容器
docker resume <容器名> # 恢复已经暂停的容器

容器的数据应当另外存放;

b1369b40483e05eb61c3ff27cb403274.png

容器的数据一般放在数据卷中;

b7ac6d96f6d81f2148725be48c1b4a47.png

3.3LNMP部署网站

bbe489dd612275f0c3e2e68bb8b66e03.png

LNMP部署教程:http://mc.iproute.cn:31010/temp/lnmp/

使用官方仓库安装nginx

[root@localhost ~]# vim /etc/yum.repos.d/nginx.repo #写入下载配置
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root@localhost ~]# yum -y install nginx  #开始下载
修改nginx用户
[root@localhost ~]# groupadd www -g 666 #用户组添加www 用户密码为666
[root@localhost ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M 
[root@localhost ~]# sed -i '/^user/c user www;' /etc/nginx/nginx.conf 
启动nginx并加入开机自启
# 启动nginx服务
[root@localhost ~]# systemctl start nginx
# 设置nginx开机自启动
[root@localhost ~]# systemctl enable nginx
防火墙配置
# 关闭防火墙(不推荐)
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

# 防火墙放行指定的协议
[root@localhost ~]# firewall-cmd --add-service=http --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
使用第三方扩展源安装php7.1
#等同于分割线后的命令效果
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
-----------------------------------------------------------------------------------------
[root@localhost ~]# vim /etc/yum.repos.d/php.repo
[php]
name = php Repository
baseurl = http://repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0

# 安装epel扩展软件仓库
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
配置php-fpm用户与nginx的运行用户保持一致
[root@localhost ~]# sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf
[root@localhost ~]# sed -i '/^group/c user = www' /etc/php-fpm.d/www.conf
启动php-fpm并加入开机自启
[root@localhost ~]# systemctl start php-fpm
[root@localhost ~]# systemctl enable php-fpm
测试php与nginx是否正常工作
[root@localhost ~]# vim /usr/share/nginx/html/info.php
<?php
    phpinfo();
?>
  • 浏览器访问http://<虚拟机的IP地址>/info.php

  • 在没有告知nginx如何处理.php格式文件的时候,nginx会认为这是一个静态文件,就直接发给浏览器,而浏览器也不知道php是什么文件。就会出现下载到电脑上。

  • 修改nginx配置文件,让nginx接受到以.php 结尾请求,全部转交给php-fpm处理,也就是转发给9000端口

[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
# 在最后一行的大括号前,加上下面的代码
    root   /usr/share/nginx/html;
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

# 重启nginx,让配置生效
[root@localhost ~]# systemctl restart nginx

2cda9190aac856e9285bb78b487bc276.png

安装mariadb数据库
[root@localhost ~]# yum install mariadb-server mariadb -y
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl enable mariadb
[root@localhost ~]# mysqladmin password '123456'
[root@localhost ~]# mysql -uroot -p123456
Nginx连接Fastcgi服务器配置
[root@localhost ~]# vim /etc/nginx/conf.d/php.conf
server {
        listen 80;
        server_name php.test.com;
        root /code;

        location / {
                index index.php index.html;
         }

        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
         }
}
[root@localhost ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost ~]# systemctl restart nginx
测试Fastcgi是否正常
# 修改/code文件夹的所有者
[root@localhost ~]# chown -R www.www /code
# 关闭Linux自带的安全子系统,此子系统会阻止www来访问任何一个普通的文件
[root@localhost ~]# setenforce 0

[root@localhost ~]# vim /code/info.php
<?php
    phpinfo();
?>

6736faf9681fc536ba5798fd6cb9a557.png

测试数据库连接
[root@localhost ~]# vim /code/mysqli.php
<?php
    $servername = "localhost";
    $username = "root";
    $password = "123456";

    // 创建连接
    $conn = mysqli_connect($servername, $username, $password);

    // 检测连接
    if (!$conn) {
         die("Connection failed: " . mysqli_connect_error());
    }
    echo "连接MySQL...成功!";
?>

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 1300452403@qq.com

文章标题:Linux云计算

字数:2.8k

本文作者:Os467

发布时间:2022-05-27, 00:05:15

最后更新:2022-05-28, 00:25:33

原始链接:https://os467.github.io/2022/05/27/Linux%E4%BA%91%E8%AE%A1%E7%AE%97/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

×

喜欢就点赞,疼爱就打赏