搭建个人站点


follow:https://github.com/WinterChenS/my-site.git

克隆项目到本地IDE,修改配置文件

准备服务器环境

安装MySQL:

docker pull mysql:5.7

#开启端口3310,容器名mysql01
docker run -d -p 3310:3306 -v /home/mysql_docker_test/conf:/etc/mysql/conf.d -v /home/mysql_docker_test/data:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=root --name mysql01 mysql:5.7 # 按照配置文件中的配置,新建数据库并执行sql文件

安装JDK

yum -y install java-1.8.0-openjdk*

# 配置环境变量
vim /etc/profile

# 添加
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin

# 修改完成之后,使其生效
source /etc/profile

# 测试
java -version

安装Maven(非必装)

# 下载
wget https://zysd-shanghai.oss-cn-shanghai.aliyuncs.com/software/linux/maven/apache-maven-3.6.1-bin.tar.gz

# 解压
tar -zxvf apache-maven-3.6.1-bin.tar.gz

# 移动+重命名
mv apache-maven-3.6.1 /usr/local/maven3

# 配置环境变量
vim /etc/profile

# 添加
MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

# 使环境变量生效
source /etc/profile

# 验证
mvn -version

打包项目(记得修改数据库IP和端口,容器启动的话IP不能为127.0.0.1,因为每个容器有自己的网络)

将打包后文件拷贝到服务器

[root@10-9-48-229 my-site-app]# pwd
/home/my-site-app
[root@10-9-48-229 my-site-app]# ls
Dockerfile  my-site-1.0.2.RELEASE.jar

此时,直接运行该jar包就已经可以启动该项目了

[root@10-9-48-229 my-site-app]# java -jar my-site-1.0.2.RELEASE.jar # 或 nohup java -jar my-site-1.0.2.RELEASE.jar > log.file  2>&1 &

访问测试

http://106.75.32.166:8080
http://106.75.32.166:8080/admin

以容器方式启动项目

docker build -f Dockerfile -t my-site . # 做成镜像
docker images
docker history xxxxxxxxxxx
docker run -p 8080:8080 -it my-site # 或 docker run -p 8080:8080 -d my-site

访问测试同样成功丶

接下来搞个Nginx把IP隐藏一下

安装Nginx

# 拉取镜像
docker pull nginx

# 创建一个目录用来存放文件,方便我们进行修改
mkdir -p /everything/nginx/conf /everything/nginx/html

# 创建配置文件
vim /everything/nginx/conf/nginx.conf

# 创建html
vim /everything/nginx/index.html

配置文件内容

# 工作进程数  1 ,不要超过计算机的核数,四核配置4,八核配置8
worker_processes  1;

# 工作连接数,也就是线程,一个进程有1024个线程,
events {
    worker_connections  1024;
}

# http请求配置
http {
    default_type  application/octet-stream;
    
    # sendfile为发送文件,要on开启
    sendfile        on;
    
    # keepalive_timeout超时时间
    keepalive_timeout  65;
    
    server {
        # 监听的端口,这里为80
        listen       80;
        # server_name就是域名,
        server_name  localhost;
        
        # location域名代理地址
        #  / 代表所有请求路径
        location / {
            root /usr/share/nginx/html;
            index  index.html;
        }
    }
}

html内容

<html>
<body>
<h1>我是index.html...</h1>
</body>
</html>

启动Nginx

docker run --name nginx01 -p 80:80 -v /everything/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /everything/nginx/html:/usr/share/nginx/html --restart always -d nginx

访问测试

http://106.75.32.166

现在修改Nginx配置,实现域名访问

# 工作进程数 1 ,不要超过计算机的核数,四核配置4,八核配置8
worker_processes 1;

# 工作连接数,也就是线程,一个进程有1024个线程,
events {
    worker_connections 1024;
}

#http请求配置
http {
    default_type application/octet-stream;
    
    # sendfile为发送文件,要on开启
    sendfile on;
    
    # keepalive_timeout超时时间
    keepalive_timeout 65;
    
    # 简单负载均衡节点配置
    upstream DemoBackend1 {
        server 106.75.32.166:8080;
        # server 192.168.1.2;
        # ip_hash;
    }
 
    server {
        listen 80;
		# blog 这里配置三级域名 没搞定
        server_name *.possible2dream.cn;
		
        # location 域名代理地址
        # / 代表所有请求路径
        location / {
            proxy_pass http://DemoBackend1;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_redirect default;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

访问测试

http://www.possible2dream.cn/
http://www.possible2dream.cn/admin/index

完了之后稍微研究下这个源代码

内容不多,七牛云处理的文件服务丶

……


https://github.com/ChenCurry/my-site.git


击石乃有火,不击元无烟!!
原文地址:https://www.cnblogs.com/rain2020/p/13705551.html