个人博客网站部署相关

本文详细介绍了如何在阿里云购买服务器,申请域名并进行ICP备案,接着讲解了域名解析、SSL证书申请的过程。此外,还阐述了使用Docker部署包含Mysql、Redis、Java和Nginx的后端项目,以及编写Dockerfile和使用docker-compose编排服务。最后提到了公安联网备案的必要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 服务器购买

网站单间使用的是阿里云服务器,所以这里以购买阿里云服务器为例子进行说明。

  1. 登录阿里云官网https://www.aliyun.com/,进行登录注册,在导航栏的产品选项中选择云服务器ESC.
    在这里插入图片描述
  2. 在云服务器购买界面选择立即购买,进入购买界面,选择快速购买。
    在这里插入图片描述
    购买界面
  3. 配置服务器。服务器的配置看个人的身价了,本人没钱,所以所有配置均买最低配置,买一年442块钱,第一次购买的话更便宜。
    在这里插入图片描述

2. 网站域名申请与备案

2.1. 网站域名申请

  1. 在阿里云首页搜索域名,选择域名注册。
    在这里插入图片描述
  2. 点击域名注册,进入域名注册界面。
    在这里插入图片描述
  3. 在搜索框填写要注册的域名,并选择域名后缀,然后查询。
    在这里插入图片描述
  4. 如果域名没被注册,直接点击将域名对应记录对应的加入清单按钮,然后点击域名清单,付款购买域名即可;至于已被注册的域名如何交易,本人没买过,如何购买具体查看阿里云官网。
    在这里插入图片描述
    在这里插入图片描述

2.2. 网站域名ICP备案

  1. 在阿里云官网点击首页菜单栏的ICP备案,进入备案首页面。
    在这里插入图片描述
    在这里插入图片描述
  2. 填写网站的相关信息,注意网站名称的填写要符合规范,本人因为网站名称曾被退回来一次。
    在这里插入图片描述
    在这里插入图片描述
  3. 然后是使用阿里云app上传相关资料,由于域名备案时没有截图,这不就不配图了,按照要求上传需要的资料即可,要注意的是要一定要接听阿里云打来的备案核实电话,不然会被退回来

2.3. 域名解析

  1. 在阿里云首页搜索云解析dns进入域名解析页面。
    在这里插入图片描述
  2. 点击产品控制台,进入解析配置页面。
    在这里插入图片描述
  3. 域名列表没有对应的域名则添加,有对应的域名则点击解析配置。
    在这里插入图片描述
  4. 点击新手指导,然后在弹出来的弹窗填上服务器ip,然后点击两次确认即可。
    在这里插入图片描述
    在这里插入图片描述
  5. 点击域名生效监测,检测出对应的服务器ip证明域名解析生效。
    在这里插入图片描述

2.4. ssl证书申请

由于网站使用的是https传输协议,需要申请域名的ssl证书,步骤如下:

  1. 在阿里云首页搜索ssl证书申请,进入申请页面。
    在这里插入图片描述
  2. 点击管理控制台,进入ssl证书管理证书控制台。
    在这里插入图片描述
  3. 选择SSL证书,然后选择免费证书,每个用户每年可以免费申请20个为期一年的SSL证书。
    在这里插入图片描述
  4. 点击创建证书,然后点击证书申请。
    在这里插入图片描述
  5. 填写域名,然后提交审核,大概十几分钟后就能审核通过。
    在这里插入图片描述
  6. 审核通过后,选择下载,并选择部署服务器类型,本网站使用Ngnix来部署,所以选择Ngnix类型
    在这里插入图片描述

3. 网站部署

  1. 使用客户端连接服务器,安装docker.
# 1、yum 包更新到最新 
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
#启动docker
/bin/systemctl start docker.service
  1. 拉取部署相关镜像。
docker pull nginx
docker pull redis:5.0.3
docker pull java:8
docker pull mysql:5.7

  1. 创建Mysql容器,并将进入数据容器(docker exec -it 指令,执行查询)执行相关建表语句。
mkdir /mnt/docker/mysql
cd /mnt/docker/mysql
docker run -id \
-p 3307:3306 \
--name=c_mysql \
-v /mnt/docker/mysql/conf:/etc/mysql/conf.d \
-v /mnt/docker/mysql/logs:/logs \
-v /mnt/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql:5.7

在/mnt/docker/mysql/conf目录下创建创建my.cnf文件,

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_names=1
pid-file=/var/run/mysqld/mysqld.pid
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  1. 创建Redis容器。
docker run -id --name=redis -p 6379:6379 redis:5.0.3
  1. 后端项目添加生成环境配置文件application-prod.properties文件,将数据库和redis服务器地址改成容器的地址(使用docker inspect指令查询),跨域配置改成如下(由于使用容器部署,跨域配置要写Ngnix转发服务名字),然后使用Maven打包,将打包后的jar上传到/mnt/docker/app目录。
public void addCorsMappings(CorsRegistry registry){
        registry.addMapping("/**").allowedOrigins("https://degeblog.cn","https://www.degeblog.cn",
                "http://localhost:8080","https://appstream", "https://app:8888");

    }
  1. 编写dockerfile文件和构建Springboot镜像。
    dockerfile:
FROM java:8
MAINTAINER mszlu <test@mszlu.com>
ADD ./blog_api.jar /app.jar
CMD java -jar /app.jar --spring.profiles.active=prod

构建镜像:

docker build -f ./springboot_dockerfile -t app .
  1. 使用docker compose编排nginx+springboot项目
  • 安装Docker Compose
# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose
# 查看版本信息 
docker-compose -version
  • 创建docker-compose目录
mkdir /mnt/docker/docker-compose
cd /mnt/docker/docker-compose
  • 编写 docker-compose.yml 文件
version: '3'
services:
  nginx:
   image: nginx
   container_name: nginx
   ports:
    - 80:80
    - 443:443
   links:
   	- app
   depends_on:
    - app
   volumes:
    - /mnt/docker/docker-compose/nginx/:/etc/nginx/
    - /mnt/xyd/blog:/xyd/blog
   network_mode: "bridge"
  app:
    image: app
    container_name: app
    expose:
      - "8888"
    network_mode: "bridge"
  • 创建./nginx目录,将Nginx的mime.types文件(在ngnix官网上,下载一个ngnix,在conf目录下有个mime.types文件,复制过来即可)上传到nginx目录,并在nginx目录下创建ssl目录,将ssl证书上传到ssl目录。

  • 在./nginx目录下 编写nginx.conf文件

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
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;
}

  • 在nginx下创建conf.d目录,conf.d下创建blog.conf
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_vary off;
upstream appstream{
     
        server app:8888;
}


server{
        listen 80;
        server_name degeblog.cn www.degeblog.cn;
        rewrite ^(.*) https://degeblog.cn/$1 permanent;
}

 

 server {

               listen       443 ssl;

               server_name  degeblog.cn www.degeblog.cn;

               index   index.html;

               ssl_certificate      /etc/nginx/ssl/degeblog.cn.pem;

               ssl_certificate_key  /etc/nginx/ssl/degeblog.cn.key;

               ssl_session_timeout  5m;

               location /api {
					proxy_pass https://appstream;
               }

               location / {
                        root /xyd/blog/;
                       index index.html;
               }
              location ~* \.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$ {
                          root /xyd/blog/;
                          index index.html;
                          add_header Access-Control-Allow-Origin *;
                  }

   }
  • 创建/mnt/xyd/blog目录,在前端项目运行后npm run build指令打包,将生成的dist文件里的所有文件上传到/mnt/xyd/blog目录。
  • 在/mnt/docker/docker-compose 目录下 使用docker-compose 启动容器
docker-compose up

docker-compose up -d #代表后台启动

4. 网站公安联网备案

请参考阿里云的公安联网备案文档https://help.aliyun.com/document_detail/36981.html?spm=a2cmq.17630005.icp_beian.8.6cfd79feF02MLl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值