应用开发环境搭建

应用开发环境搭建

  • 1、安装JDK linux
    • 上传安装包
    • 解压缩
    • 设置环境变量
    • 判断JDK是否安装成功
  • 2、nginx
    • 下载
    • 选择Stable version版本下载到本地(该版本为Linux版本),下载完成后直接在本地解压后放入linux系统中
    • 下载完成后,安装Nginx:
    • 安装成功后,启动Nginx服务:到/usr/local/nginx/sbin目录下,启动服务:./nginx -c /usr/local/nginx/conf/nginx.conf
    • 启动查看(默认是80端口)
  • 3、nacos
    • 镜像获取
    • 临时启动容器
    • 复制配置文件
    • 删除刚才为了拷贝文件启动的nacos
    • 应用外部配置启动容器
    • 参考文档
  • 4、minio
    • 拉取 MinIO镜像(latest:最新版本)
    • 启动MinIO服务
      • HTTP请求的 启动参数
      • HTTPS请求的 启动参数
    • 配置公钥私钥开启HTTPS(可选)以阿里云为例
    • 访问 MinIO服务(要在防火墙放开9001 和9090端口)
  • 5、redis
  • 6、mysql
  • 7、部署 docker-compose
  • 8、部署 halo+mysql
    • 8.1 安装问题
    • 8.2 基础配置(密码谨记)
  • 9、nginx配置SSL证书;代理后端接口

1、安装JDK linux

上传安装包

解压缩

tar -zxvf jdk-8u65-linux-x64.tar.gz

设置环境变量

(1)编辑配置文件

vim /etc/profile

(2)在文件末尾处,输入o(表示在光标下插入新行),复制下面的环境变量配置粘贴,并写入保存

#set java environment
JAVA_HOME=/root/jdk1.8.0_65
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

(3)重新加载/etc/profile配置文件

source /etc/profile

判断JDK是否安装成功

java -version
	java version "1.8.0_65"
	Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
	Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

2、nginx

下载

http://nginx.org/en/download.html

选择Stable version版本下载到本地(该版本为Linux版本),下载完成后直接在本地解压后放入linux系统中

应用开发环境搭建_第1张图片

下载完成后,安装Nginx:

(1)解压缩:

tar -zxvf nginx-1.24.0.tar.gz

(2)安装

  • 切换到新建的nginx目录:
mkdir /usr/local/nginx
cd /usr/local/nginx
  • 更新yum 源(否则可能会报错:make 命令出现:“make:*** No targets specified and no makefile found.Stop.”)
yum update -y
  • 安装相关依赖:
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
  • 进入nginx目录:
cd nginx-1.24.0
  • 执行make命令:
# 执行configure脚本,设置安装nginx的初始化配置(--with-http_ssl_module:启动 SSL 的支持),生成 Makefile 可编译文件 
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make
  • 执行安装命令:
make install

安装成功后,启动Nginx服务:到/usr/local/nginx/sbin目录下,启动服务:./nginx -c /usr/local/nginx/conf/nginx.conf

	(1)cd /usr/local/nginx/sbin
	(2)启动服务:./nginx -c  /usr/local/nginx/conf/nginx.conf
	
	(3)查看进程:ps -ef | grep nginx
			root     25908     1  0 19:52 ?        00:00:00 nginx: master process ./nginx -c /usr/local/nginx/conf/nginx.conf
			nobody   25909 25908  0 19:52 ?        00:00:00 nginx: worker process
			root     26015  6948  0 19:52 pts/2    00:00:00 grep --color=auto nginx

启动查看(默认是80端口)

http://localhost/

3、nacos

镜像获取

docker pull nacos/nacos-server:v2.2.3
mkdir -p /root/nacos/logs
mkdir -p /root/nacos/conf
mkdir -p /root/nacos/data

临时启动容器

docker run -p 8848:8848 --name nacos -d nacos/nacos-server:v2.2.3

复制配置文件

docker cp nacos:/home/nacos/logs/ /root/nacos/logs/
docker cp nacos:/home/nacos/conf/ /root/nacos/conf/
docker cp nacos:/home/nacos/data/ /root/nacos/data/

删除刚才为了拷贝文件启动的nacos

docker rm -f nacos

应用外部配置启动容器

docker run -d --name nacos -p 8848:8848  -p 9848:9848 -p 9849:9849 --privileged=true -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone nacos/nacos-server:v2.2.3 -v /root/nacos/logs/:/home/nacos/logs -v /root/nacos/conf/:/home/nacos/conf/ --restart=always  -v /root/nacos/data/:/home/nacos/data \  
-e SPRING_DATASOURCE_PLATFORM=mysql \ 
-e MYSQL_SERVICE_HOST=localhost\ 
-e MYSQL_SERVICE_PORT=3306 \ 
-e MYSQL_SERVICE_DB_NAME=nacos \ 
-e MYSQL_SERVICE_USER=root \ 
-e MYSQL_SERVICE_PASSWORD=developer@admin 

参考文档

  1. 部署文档参考:https://www.cnblogs.com/CodeLuckly/p/17472549.html(部署文档)

  2. sql脚本:https://github.com/alibaba/nacos/blob/2.2.3/config/src/main/resources/META-INF/nacos-db.sql(初始化sql)

  3. 权限问题解决:https://blog.csdn.net/zhiyulai/article/details/125769052(权限问题)

  4. docker镜像:https://hub.docker.com/r/nacos/nacos-server/tags

4、minio

拉取 MinIO镜像(latest:最新版本)

docker pull minio/minio:latest

启动MinIO服务

  • 注意使用–console-address指定MinIO Console的运行端口(否则会以随机端口运行)

HTTP请求的 启动参数

docker run -p 9090:9000 -p 9001:9001 --name minio \
-v /root/minio/data:/data \
-e MINIO_ROOT_USER=minio@admin \
-e MINIO_ROOT_PASSWORD=minio@admin \
-d minio/minio server /data --console-address ":9001"

HTTPS请求的 启动参数

docker run -p 9090:9000 -p 9001:9001 --name minio \
-v /root/minio/data:/data \
-v /root/minio/config:/root/.minio \
-e MINIO_ROOT_USER=minio@admin \
-e MINIO_ROOT_PASSWORD=minio@admin \
-d minio/minio server /data --console-address ":9001"

配置公钥私钥开启HTTPS(可选)以阿里云为例

  1. 下载完成之后进行解压,然后会看到这么几个文件,我们需要用到".key"后缀文件和".crt"后缀文件
    应用开发环境搭建_第2张图片

  2. “.key"后缀文件重命名为"private.key”,“.crt"后缀文件重命名为"public.crt”,因为MINIO只识别这个名称的文件
    应用开发环境搭建_第3张图片

  3. 上传到/root/minio/config/certs目录下
    具体看第二部图

访问 MinIO服务(要在防火墙放开9001 和9090端口)

http://localhost:9090/

https://域名:9090/
  • 运行成功后就可访问MinIO Console的管理界面了,
账号:minio@admin
密码:minio@admin

5、redis

docker pull redis:7.0.12
docker run -p 6379:6379 --name redis-7.0 -v $PWD/data:/data -d --restart=always redis:7.0.12 redis-server --appendonly yes --requirepass "admin@redis"

6、mysql

docker pull mysql:5.7.42
mkdir -p /root/mysql
docker run -p 3306:3306 --name mysql-5.7 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=developer@admin -d mysql:5.7.42

docker exec -it mysql-5.7 bash

mysql -u  root  -p

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'developer@admin' WITH GRANT OPTION;
flush privileges;

7、部署 docker-compose

1、下载安装文件

curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2、赋予执行权限

chmod +x /usr/local/bin/docker-compose

3、创建软连接

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4、测试

docker-compose --version

8、部署 halo+mysql

1、在系统任意位置创建一个文件夹,此文档以 ~/halo 为例。

mkdir ~/halo && cd ~/halo

2、创建 docker-compose.yaml (MySQL)

docker-compose配置halo

version: "3"

services:
  halo:
    image: halohub/halo:2.10
    container_name: halo
    restart: on-failure:3
    network_mode: "host"
    volumes:
      - ./halo2:/root/.halo2
    command:
      # 修改为自己已有的 MySQL 配置
      - --spring.r2dbc.url=r2dbc:pool:mysql://XXX:3306/halodb
      - --spring.r2dbc.username=XXX
      - --spring.r2dbc.password=XXX
      - --spring.sql.init.platform=mysql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://localhost:8090/
      # 端口号 默认8090
      - --server.port=8090

3、启动 Halo 服务

docker-compose up -d

4、实时查看日志:

docker-compose logs -f

8.1 安装问题

1、ERROR: .UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xd0 in position 215: invalid continuation byte

修改docker-compose.yaml 的编码utf-8

8.2 基础配置(密码谨记)

站点名称:内容管理平台
邮箱:XXXfoxmail.com  
用户名:admin    密码:XXX
访问界面:http://XXX:8090/console

9、nginx配置SSL证书;代理后端接口

1、执行以下命令,在Nginx的conf目录下创建一个用于存放证书的目录。

cd /usr/local/nginx/conf  #进入Nginx默认配置文件目录。该目录为手动编译安装Nginx时的默认目录,如果您修改过默认安装目录或使用其他方式安装,请根据实际配置调整。
mkdir cert  #创建证书目录,命名为cert。

2、将证书文件和私钥文件上传到Nginx服务器的证书目录(/usr/local/nginx/conf/cert)

cd /usr/local/nginx/conf/cert

3、执行以下命令,打开配置文件。

vim /usr/local/nginx/conf/nginx.conf
(1)按i键进入编辑模式。
(2)在nginx.conf中定位到server属性配置。
(3)删除行首注释符号#,并根据如下内容进行修改。
server {
    listen       443 ssl;
    server_name  localhost;

    ssl_certificate      cert/shop.huakongxinxi.com.pem;
    ssl_certificate_key  cert/shop.huakongxinxi.com.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
}

4、配置业务

 server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      cert/shop.huakongxinxi.com.pem;
        ssl_certificate_key  cert/shop.huakongxinxi.com.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        client_max_body_size 2m;

        location / {
            root   /var/www/shop/dist;
            try_files $uri $uri/ /index.html;
        }
        location /prod-api/ {
             proxy_pass http://shop.huakongxinxi.com:9988/;
             proxy_set_header X-Forwarded-Proto $scheme;
             proxy_set_header Host $http_host;
        }

        error_page 404 /404.html;
        location ~ /actuator/{
             deny all;
        }
        if ($request_method !~* GET|POST|PUT|DELETE) {
            return 403;
        }
    }

你可能感兴趣的:(基础环境搭建,docker,云原生,微服务)