# 红色旅游项目微服务后端 **Repository Path**: ctd510/rss-cloud ## Basic Information - **Project Name**: 红色旅游项目微服务后端 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-14 - **Last Updated**: 2022-03-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 安装docker 使用官方安装脚本自动安装 ``` curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun ``` 或国内 daocloud 一键安装命令 ``` curl -sSL https://get.daocloud.io/docker | sh ``` 启动 Docker ``` sudo systemctl start docker ``` 运行 hello-world 映像验证是否正确安装 Docker Engine-Community ``` sudo docker run hello-world ``` ## 安装mysql5.7容器 `docker search mysql` 可查看mysql版本 安装mysql5.7 ``` docker pull mysql:5.7 ``` 运行mysql容器 ``` docker run -d -p 3306:3306 --privileged=true -v /docker/mysql/conf/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci ``` - run run 是运行一个容器 - -d  表示后台运行 - -p  表示容器内部端口和服务器端口映射关联 - --privileged=true 设值MySQL 的root用户权限, 否则外部不能使用root用户登陆 - -v /docker/mysql/conf/my.cnf:/etc/my.cnf 将服务器中的my.cnf配置映射到docker中的/docker/mysql/conf/my.cnf配置 - -v /docker/mysql/data:/var/lib/mysql  同上,映射数据库的数据目录, 避免以后docker删除重新运行MySQL容器时数据丢失 - -e MYSQL_ROOT_PASSWORD=123456   设置MySQL数据库root用户的密码 - --name mysql     设值容器名称为mysql - mysql:5.7  表示从docker镜像mysql:5.7中启动一个容器 - --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 设值数据库默认编码 进入容器 ``` docker exec -it mysql bash ``` 修改密码 ``` mysql -uroot -p123456 ``` ``` set password for root@localhost = password(''); ``` 创建用户 ``` grant all privileges on *.* to '用户'@'%' identified by '' with grant option; ``` **开放端口** ``` firewall-cmd --add-port=3306/tcp --permanent ``` 重启防火墙 ``` firewall-cmd --reload ``` 查看端口 ``` firewall-cmd --list-ports ``` 开放服务器防火墙 ![image-20220309200758420](https://img.tomyres.com/img/20220309200800.png) **本地连接MySQL** 使用navicat连接数据库 ![image-20220309200850842](https://img.tomyres.com/img/20220309200851.png) ## 安装nacos容器 下载nacos容器 ``` docker pull nacos/nacos-server ``` 单例启动nacos ``` docker run -d --name nacos -p 8848:8848 --env MODE=standalone nacos/nacos-server ``` 温馨提示:MODE必须为大写 开放端口 ``` firewall-cmd --add-port=8848/tcp -permanent firewall-cmd --reload ``` ![image-20220309214325739](https://img.tomyres.com/img/20220309214326.png) 访问 http://127.0.0.1:8848/nacos/index.html **导入环境** 新增命名空间 ![image-20220310171609878](https://img.tomyres.com/img/20220310171611.png) ![image-20220310171733464](https://img.tomyres.com/img/20220310171734.png) ## 安装Java环境 jdk8下载地址: **官方** http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html **百度网盘** 链接:https://pan.baidu.com/s/1mZx5MFCKCShj47Xney224w 提取码:fhim 解压 ``` tar -zxvf jdk-8u221-linux-x64.tar.gz ``` `vim /etc/profile` 按i进入编辑,在profile文件尾部添加如下内容 ``` export JAVA_HOME=/usr/local/jdk1.8.0_221 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH} ``` 通过命令source /etc/profile让profile文件立即生效 ``` source /etc/profile ``` 测试版本 ``` java -version ``` 参考:https://blog.csdn.net/pdsu161530247/article/details/81582980 ## 项目打包docker 将项目打包安装成jar包,安装rss-sc和rss-api即可打包所有模块,不需要一个个安装 ![image-20220310205025712](https://img.tomyres.com/img/20220310205027.png) ![image-20220310205051916](https://img.tomyres.com/img/20220310205053.png) 在本地maven仓库可以找到jar包,并上传到服务器 ![image-20220310205142400](https://img.tomyres.com/img/20220310205143.png) 测试jar包是否有问题 ```` java -Dfile.encoding=utf-8 -jar rss-gateway.jar ```` 制作镜像文件 ``` vim dockerfile ``` ``` FROM java:8 MAINTAINER xiaor ADD rss-gateway.jar rss-gateway.jar EXPOSE 8080 ENTRYPOINT ["java","-Dfile.encoding=utf-8","-jar","rss-gateway.jar"] ``` 创建镜像 ``` docker build -t rss-gateway . ``` - docker build :创建镜像命令 - eladmin-system : 镜像名称 - . :是读取当前目录下的Docker文件 查看镜像 ``` docker images ``` 运行容器 ``` docker run --name rss-gateway-8080 -p 8080:8080 -d rss-gateway ``` - --name:指定容器名称 - -p:指定映射的端口号 - -d:指点容器后台运行 **同样的方式部署** - rss-event(9200端口) - rss-figure(9300端口) - rss-province(9600端口) - rss-redarea(9700端口) ## 安装nginx证书 下载nginx镜像 ``` docker pull nginx:latest ``` 运行80和443端口 ``` docker run --name nginx-rss -p 443:443 -p 80:80 -d nginx ``` 进入容器 ``` docker exec -it nginx-rss bash ``` 拷贝 `/etc/nginx/conf.d/default.conf` 到本地修改 ``` docker cp nginx-rss:/etc/nginx/conf.d/default.conf ./ ``` ``` server { listen 80; listen 443 ssl http2; ssl_certificate /etc/nginx/fullchain.pem; ssl_certificate_key /etc/nginx/private.key; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; # 开启OCSP stapling ssl_stapling on; ssl_stapling_verify on; location / { 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; proxy_pass http://127.0.0.1:8080; proxy_redirect off; } ...... } ``` 复制default.conf到容器 ``` docker cp default.conf nginx-rss:/etc/nginx/conf.d ``` 重启容器 ``` docker restart nginx-rss ``` 访问域名 ![image-20220311201019788](https://img.tomyres.com/img/20220311201021.png) postman测试 `https://域名/rss-redarea/red_area/find_all` ![image-20220311201156870](https://img.tomyres.com/img/20220314130558.png)