个人云服务器docker搭建部署前后端应用-myos

var code = "87c5235c-b551-45bb-a5e4-9593cb104663"

mysql、redis、nginx、java应用、前端应用部署
本文以单台云服务器为例:

 1. 使用腾讯云服务器


阿里或其他云服务器皆可,类似
安装系统,现在服务器系统都集成安装了docker镜像,建议直接选用即可。
    

 2. 为服务器修改别名

hostnamectl set-hostname myos
#部署新的服务器先更新以下二选一,以下两条不想更新可以跳过。
yum -y update
#升级所有包同时也升级软件和系统内核
yum -y upgrade 
#只升级所有包,不升级软件和系统内核 

 3. 安装mysql

mysql我是直接安装在linux下

#默认安装的是最新版的mysql
sudo dnf install @mysql
#安装只要一个同意y,然后就一路安装完成
#在开机启动时自动启动(now 并且现在启动):
sudo systemctl enable --now mysqld
#查看启动状态
sudo systemctl status mysqld.service
sudo systemctl start mysqld.service
sudo systemctl stop mysqld.service
#添加密码及安全设置
sudo mysql_secure_installation

设置完成。
使用root账号登录数据库,设置远程登录:

mysql -u root -p
mysql> use mysql;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;
#退出mysql
mysql> quit
#云服务器记得在防火墙新增开启3306端口,可以远程连接。

 4. 在docker中安装redis

docker run -it -P tomcat(-P自动分配端口号)
-d 后台运行 -p 主机号:docker容器端口号 -i 交互 -t 终端 -v 挂载数据卷

#在云服务器中新建app文件夹以及子文件夹
#分别是nginx挂载目录、java应用目录、redis挂载目录
mkdir -p app/{nginx,java,redis}
#redis目录下(redis.conf、data目录(挂载的日志目录))
docker run -p 6379:6379 --name redis6 -d redis:6.2
#先执行下redis,然后把redis.conf复制出来挂载的文件夹
docker cp redis6:/etc/redis/redis.conf /app/redis/redis.conf
#修改/app/redis/redis.conf文件
#注释bind可以远程连接
#修改登陆密码

#修改完成后,查看现在的redis服务id,并且删除
docker ps
docker rm -f redis的id
#重新跑一个redis容器,让redis服务读取挂载上的redis.conf
docker run -p 6379:6379 --name redis6 --privileged=true \
-v /app/redis/redis.conf:/etc/redis/redis.conf \
-v /app/redis/data:/data \
-d redis:6.2 redis-server /etc/redis/redis.conf
#如果你是在不想复制docker容器配置文件那么麻烦,就直接粘贴我的配置文件,修改密码就可以了

 5. 在docker中安装nginx

#类似redis先启动一个nginx容器,复制配置文件到宿主机
docker pull nginx:1.25.3
docker run -d --name nginx nginx:1.25.3
mkdir -p nginx/{conf,html,log,cert}
docker cp nginx:/etc/nginx/conf.d /app/nginx/conf
docker cp nginx:/etc/nginx/nginx.conf /app/nginx/conf
docker cp nginx:/usr/share/nginx/html /app/nginx/html
#删除nginx容器
docker ps
docker rm -f nginx容器id
#在宿主机修改nginx配置文件

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

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

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }
    #打开gzip压缩
    gzip on;
    #不压缩临界值,大于1K的才压缩,一般不用改
    gzip_min_length 1k;
    #设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流,这里设置以16k为单位的4倍申请内存
    gzip_buffers 4 16k;
    #默认为http 1.1,现在99.99%的浏览器基本上都支持gzip解压了,所有无需设置此项
    #gzip_http_version 1.0;
    #gzip压缩比,1 最小处理速度最快,9 最大但处理最慢(传输快但比较消耗cpu)
    gzip_comp_level 2;
    #要压缩的文件类型,注意"text/html"类型无论是否指定总是会被压缩的
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/javascript application/x-httpd-php image/jpeg image/gif image/png;
    #on的话会在Header里增加"Vary: Accept-Encoding",给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩
    #我这里的浏览器肯定支持gzip压缩,所以就不开启此功能了
    gzip_vary on;
    #IE6对Gzip不怎么友好,不给它Gzip压缩了
    gzip_disable "MSIE [1-6]\.";
    # 设置缓存路径并且使用一块最大100M的共享内存,用于硬盘上的文件索引,包括文件名和请求次数,每个文件在1天内若不活跃(无请求)则从硬盘上淘汰,硬盘缓存最大10G,满了则根据LRU算法自动清除缓存。
    proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=imgcache:100m inactive=1d max_size=10g;
}

#nginx配置文件修改好后,重启服务(8000-8050端口为后续部署预留使用)
docker run -p 80:80 -p 443:443 -p 8000-8050:8000-8050 --name nginx \
-v /app/nginx/log:/var/log/nginx \
-v /app/nginx/cert:/etc/nginx/cert \
-v /app/nginx/html:/usr/share/nginx/html \
-v /app/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /app/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-d --restart=always nginx:latest
#重启后再云服务器开启端口访问

 6. 在docker中部署java应用

cd /app/java/
#把springboot打的jar包上传到此位置,并且把Dockerfile也放在这里
docker build -t demo:v1.0 .
#可以用服务器外网8051端口访问java应用
docker run -p 8051:8080 -d --name=demo demo:v1.0

#Dockerfile
FROM openjdk:8-jdk-alpine
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
COPY *.jar demo.jar
CMD ["java", "-jar", "demo.jar"]

 7. 在docker部署前端应用

部署在/app/nginx/html中的就是你当前的目录,子目录的test1、test2是对应其他端口号,也可以使用域名指定,注意这里的路径是你服务器的路径,在nginx中要写容器中的位置。

#使用vue打包后的dist文件可以直接上传到/app/nginx/html中会自动同步到nginx
#若你想部署更多地网站,可以在/app/nginx/html下新建文件夹
#然后再nginx增加server配置这些地址
#续接nginx.conf
    server {
        listen       8001;
        server_name  127.0.0.1;
        location / {
        #路径要写nginx服务中的位置
            root        /usr/share/nginx/html/test1; 
            index       index.html index.htm;
        }
    }
    
    server {
        listen       8002;
        server_name  127.0.0.1;
        location / {
            root        /usr/share/nginx/html/test2; 
            index       index.html index.htm;
        }
    }
#配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/341619.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

区域入侵烟火检测智慧安监AI智能分析网关V4如何添加新用户并分配权限?

AI边缘计算智能分析网关V4性能高、功耗低、检测速度快,易安装、易维护,硬件算法可按需组合、按场景配置,每个摄像头可同时配置3种算法,能同时对16路视频流进行处理和分析。硬件内置近40种AI算法模型,支持对接入的视频图…

Elasticsearch:聊天机器人、人工智能和人力资源:电信公司和企业组织的成功组合

作者:来自 Elastic Jrgen Obermann, Piotr Kobziakowski 让我们来谈谈大型企业人力资源领域中一些很酷且改变游戏规则的东西:生成式 AI 和 Elastic Stack 的绝佳组合。 现在,想象一下大型电信公司的典型人力资源部门 — 他们正在处理一百万件…

小红书达人推广模式有哪些,品牌投放策略总结

小红书是一个以种草为核心的平台,而品牌方进行种草时,就需要依托达人的力量。今天我们和大家分享下小红书达人推广模式有哪些,品牌投放策略总结! 一、小红书达人推广模式有哪些 1. 明星种草 这种小红书达人推广模式,依…

利用STM32CubeMX和keil模拟器,3天入门FreeRTOS(2.0) —— 如何删除任务

前言 (1)FreeRTOS是我一天过完的,由此回忆并且记录一下。个人认为,如果只是入门,利用STM32CubeMX是一个非常好的选择。学习完本系列课程之后,再去学习网上的一些其他课程也许会简单很多。 (2&am…

WPF多值转换器

背景&#xff1a;实现Slider拖动可以调整rgb 单转换器&#xff1a;WPF中数据绑定转换器Converter-CSDN博客 在View中&#xff1a; <StackPanel Orientation"Vertical"><Slider x:Name"slider_R" Minimum"0" Maximum"255" Wi…

Python爬虫采集下载中国知网《出版来源导航》PDF文档

时隔一年&#xff0c;很久没更新博客了。今天给大家带来一个采集 &#xff1a;出版来源导航 这个是网址是中国知网的&#xff0c;以下代码仅限于此URL&#xff08;出版来源导航&#xff09;采集&#xff0c;知网的其他网页路径采集不一定行&#xff0c;大家可以试试。 以下代码…

《绝地求生大逃杀》怎么买衣服 Steam商店服装购买方法

《绝地求生大逃杀》怎么买衣服&#xff1f;游戏中好看的服装有不少&#xff0c;大家可能开箱并没开出来&#xff0c;想买却不知具体的入手途径&#xff0c;今天闲游盒带来《绝地求生大逃杀》怎么买衣服 Steam商店服装购买方法&#xff0c;希望对各位有帮助。 打开Steam&#xf…

ffmpeg和opencv一些容易影响图片清晰度的操作

ffmpeg 转视频或者图片&#xff0c;不指定码率清晰度会下降 ffmpeg -i xxx.png xxx.mp4 码率也叫比特率&#xff08;Bit rate&#xff09;(也叫数据率)是一个确定整体视频/音频质量的参数&#xff0c;秒为单位处理的字节数&#xff0c;码率和视频质量成正比&#xff0c;在视频…

高效办公-电脑的基本组成

作为一位网络工程师在公司内部混久了也兼职了桌面运维了&#xff0c;感觉做网管也是有一些坑的&#xff0c;所以记录一下吧。然后忽然觉得公众号内容有点专业了&#xff0c;那就增加一点办公常识吧&#xff0c;主要是一些电脑使用方面的设置和简单优化&#xff0c;利人利己。 一…

RAR分卷压缩文件可以合并成一个吗?推荐2个方法!

有时候文件太大&#xff0c;我们在压缩RAR文件时会选择压缩成分卷文件&#xff0c;这样更便于传送。如果后续只想要一个压缩包&#xff0c;如何把RAR分卷压缩文件合并起来呢&#xff1f;下面小编分享2个方法&#xff0c;不清楚的小伙伴一起来看看吧&#xff01; 方法一&#xf…

linux安装docker(入门一)

环境&#xff1a;centos 7(linux) 网站 官网: https://docs.docker.com/ Docker Hub 网站: https://hub.docker.com/ 容器官方概述 一句话概括容器&#xff1a;容器就是将软件打包成标准化单元&#xff0c;以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包 &…

[分章:阅读]《我的第一本算法书》

第一章数据结构 1.链表 1、数据结构之一&#xff0c;线性排列数据&#xff0c;指针链接数据&#xff1b;访问O&#xff08;n&#xff09;&#xff0c;删除/添加O&#xff08;1&#xff09; 2、类似链条。 2.数组 1、线性排列数据&#xff0c;含数据下标&#xff08;即索引&…

Linux忘记密码

1.服务器启动界面出现3秒倒计时内&#xff0c;按一下“e”键 2.向右移动光标到ro\这个位置后边&#xff0c;插入&#xff1a;rw init/sysroot/bin/sh_ 切记sh_的下划线后边不要有空格&#xff0c;不然会报错 3.修改完成直接按CtrlX启动系统 4.输入 chroot /sysroot切换进去 5.…

Xftp连接不上Linux虚拟机的原因解决方法

前言&#xff1a; 在当今数字化时代&#xff0c;远程连接到Linux虚拟机是许多开发者和系统管理员日常工作的一部分。然而&#xff0c;有时候&#xff0c;面对Xftp连接不上Linux虚拟机的问题&#xff0c;我们可能感到困惑和无措。这个看似小问题可能导致工作中断&#xff0c;因…

【wu-framework-parent 1.2.2-JDK17-SNAPSHOT 新版本中的 ACW】

版本: 1.2.2-JDK17-SNAPSHOT 项目地址&#xff1a;https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-smart-intergration/wu-smart-acw 演示地址&#xff1a;http://124.222.48.62:30193/wu-smart-acw-ui/#/login admin/admin docker启动 docker …

移动CRM系统是什么?能帮企业做哪些事情?

移动CRM&#xff0c;即移动客户关系管理&#xff0c;是一种利用移动设备进行客户关系管理的工具。随着移动技术的飞速发展&#xff0c;移动CRM在商业领域得到了广泛应用。本文将对移动CRM的概念、功能和作用、价格等方面进行详细介绍。 1.移动crm的概念 移动CRM是基于客户关系…

Facebook的可访问性使命:构建无障碍社交空间

在当今数字时代&#xff0c;社交媒体不仅是人们交流、分享和连接的平台&#xff0c;更是构建开放、包容社交环境的关键。Facebook&#xff0c;作为全球最大的社交媒体平台之一&#xff0c;积极推动着可访问性使命&#xff0c;致力于构建一个无障碍的社交空间&#xff0c;使每个…

2 - 部署Redis集群架构

部署Redis集群架构 部署Redis集群部署管理主机第一步 准备ruby脚本的运行环境第二步 创建脚本第三步 查看脚本帮助信息 配置6台Redis服务器第一步 修改配置文件启用集群功能第二步 重启redis服务第三步 查看Redis-server进程状态&#xff08;看到服务使用2个端口号为成功&#…

Intel Atom + Artix-7 100T FPGA,CompactRIO单板控制器

模拟和数字I/O&#xff0c;RMC&#xff0c;DisplayPort&#xff0c;1.33 GHz双核CPU&#xff0c;1 GB DRAM&#xff0c;4 GB存储容量&#xff0c;Artix-7 100T FPGA&#xff0c;CompactRIO单板控制器 CompactRIO控制器是搭载了实时处理器和用户可编程FPGA的嵌入式控制器。其产…

OSPF协议LSDB同步过程和邻居状态机

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 厦门微思网络​​​​​​ https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle O…