从0开始搭建web应用

1 准备工作

准备一个服务器(centos 7镜像)

2 安装java

先下载jdk jdk官网

这里需要一个支持stp的软件,我这里推荐electerm

我们在/home下创建一个文件夹/software存放我们下载的软件包,之后使用electerm将下载的jdk弄到服务器上

接着进入/home/software文件夹,创建一个/usr/java文件夹存放java:

bash 复制代码
mkdir /usr/java/

解压安装包:

复制代码
tar -zxvf ...tar.gz

接下来将解压的文件放入/usr/java,并且金如意这个文件夹:

bash 复制代码
mv jdk-21/ /usr/java
cd /usr/java/

之后我们配置jdk环境:

bash 复制代码
使用以下指令
vim /etc/profile
之后到最下面 输入a进入插入模式,将下面的代码写入

# 配置java环境变量
export JAVA_HOME=/usr/java/jdk-21
export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

之后按esc 输入:wq保存

接着我们刷新下配置文件,就可以查看安装好的java版本:

bash 复制代码
source /etc/profile/
java -version

3 安装docker

先设置docker库地址

arduino 复制代码
sudo yum install -y yum-utils

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

换源:

ini 复制代码
sudo tee /etc/yum.repos.d/docker-ce.repo <<-'EOF'
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF

安装docker引擎,docker客户端,docker容器:

lua 复制代码
sudo yum install docker-ce docker-ce-cli containerd.io

启动docker服务:

sql 复制代码
sudo systemctl start docker

查看docker版本号:

复制代码
docker -v

设置docker开机自启动

bash 复制代码
systemctl enable docker

随后可以重启linux测试是否开启自启动

重启docker

复制代码
sudo systemctl restart docker

4 Docker安装各种组件

4.1 Docker安装mysql和数据表迁移

下载MySQL9

lua 复制代码
docker pull mysql:9.3.0

如果国内服务器会下载失败,可以先在自己的电脑上下载之后打包:
docker save -o mysql-9.3.0.tar mysql:9.3.0
之后在服务器上安装:
docker load -i mysql-8.3.0.tar

下载完毕,检查镜像:

复制代码
docker images

创建目录

bash 复制代码
cd /home/
mkdir docker/mysql9 -p
mkdir /home/docker/mysql9/log -p
mkdir /home/docker/mysql9/data -p
mkdir /home/docker/mysql9/conf -p
mkdir /home/docker/mysql9/mysql-files -p

使用如下命令来启动mysql容器:

bash 复制代码
docker run -p 3306:3306 --name mysql \
-v /home/docker/mysql9/log:/var/log/mysql \
-v /home/docker/mysql9/data:/var/lib/mysql \
-v /home/docker/mysql9/conf:/etc/mysql/conf.d \
-v /home/docker/mysql9/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=429684235 \
-d mysql \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

其他命令:

arduino 复制代码
docker start mysql
docker stop mysql
docker restart mysql

4.2 Docker安装redis-stack

同样直接拉去redis镜像或者下载安装

arduino 复制代码
docker pull redis/redis-stack:latest

如果国内服务器会下载失败,可以先在自己的电脑上下载之后打包: 
docker save -o redis-stack.tar redis/redis-stack
之后在服务器上安装: 
docker load -i redis-stack.tar

之后启动redis容器:

arduino 复制代码
docker run -d --name redis-stack \
-p 6379:6379 \
-e REDIS_ARGS="--requirepass 429684235" \
redis/redis-stack

4.3 Docker安装searXNG

拉镜像:

bash 复制代码
docker pull searxng/searxng:latest
或者
如果国内服务器会下载失败,可以先在自己的电脑上下载之后打包: 
docker save -o searxng.tar searxng/searxng
之后在服务器上安装: 
docker load -i searxng.tar

启动容器:

bash 复制代码
docker run -p 6080:8080 \
        --name searxng \
        -d --restart=always \
        -v "/home/docker/searxnx:/etc/searxng" \
        -e "BASE_URL=http://localhost:$PORT/" \
        -e "INSTANCE_NAME=mcp-jd" \
        searxng/searxng

5 打包项目

现更改pom文件,在需要打包的工程里的pom中加上如下打包插件

xml 复制代码
<build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

之后meaven点击clean和install,在target就可以找到打包的文件

接下来使用sftp将jar包上传到服务器

之后使用以下指令来运行java程序:

bash 复制代码
nohup java -jar mcp-server.jar >my-server.log 2>&1 &
nohup java -jar mcp-client.jar >my-client.log 2>&1 &

6 安装配置nginx

首先下载nginx:

arduino 复制代码
wget http://nginx.org/download/nginx-1.28.0.tar.gz
  1. 安装依赖环境

    1. 安装gcc环境
      • yum install gcc-c++
    2. 安装PCRE库,用于解析正则表达式
      • yum install -y pcre pcre-devel
    3. zlib压缩和解压缩依赖,
      • yum install -y zlib zlib-devel
    4. SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https
      • yum install -y openssl openssl-devel
  2. 解压,需要注意,解压后得到的是源码,源码需要编译后才能安装

    复制代码
    tar -zxvf nginx-1.16.1.tar.gz
  3. 编译之前,先创建nginx临时目录,如果不创建,在启动nginx的过程中会报错

    bash 复制代码
    mkdir /var/temp/nginx -p
  4. 在nginx目录,输入如下命令进行配置,目的是为了创建makefile文件

    javascript 复制代码
    ./configure \
    --prefix=/usr/local/nginx \
    --pid-path=/var/run/nginx/nginx.pid \
    --lock-path=/var/lock/nginx.lock \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --with-http_gzip_static_module \
    --http-client-body-temp-path=/var/temp/nginx/client \
    --http-proxy-temp-path=/var/temp/nginx/proxy \
    --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
    --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
    --http-scgi-temp-path=/var/temp/nginx/scgi \
    --with-http_stub_status_module --with-http_ssl_module
    • 注:\ 代表在命令行中换行,用于提高可读性

    • 配置命令:

      命令 解释
      --prefix 指定nginx安装目录
      --pid-path 指向nginx的pid
      --lock-path 锁定安装文件,防止被恶意篡改或误操作
      --error-log 错误日志
      --http-log-path http日志
      --with-http_gzip_static_module 启用gzip模块,在线实时压缩输出数据流
      --http-client-body-temp-path 设定客户端请求的临时目录
      --http-proxy-temp-path 设定http代理临时目录
      --http-fastcgi-temp-path 设定fastcgi临时目录
      --http-uwsgi-temp-path 设定uwsgi临时目录
      --http-scgi-temp-path 设定scgi临时目录
  5. make编译

    go 复制代码
    make
  6. 安装

    go 复制代码
    make install
  7. 进入sbin目录启动nginx

    bash 复制代码
    ./nginx
    • 停止:./nginx -s stop
    • 重新加载:./nginx -s reload
  8. 打开浏览器,访问虚拟机所处内网ip即可打开nginx默认页面。

相关推荐
间彧几秒前
什么是Region多副本容灾
后端
爱敲代码的北1 分钟前
WPF容器控件布局与应用学习笔记
后端
爱敲代码的北1 分钟前
XAML语法与静态资源应用
后端
清空mega3 分钟前
从零开始搭建 flask 博客实验(5)
后端·python·flask
爱敲代码的北7 分钟前
UniformGrid 均匀网格布局学习笔记
后端
一只叫煤球的猫28 分钟前
从1996到2025——细说Java锁的30年进化史
java·后端·性能优化
喵个咪44 分钟前
开箱即用的GO后台管理系统 Kratos Admin - 数据脱敏和隐私保护
后端·go·protobuf
我是天龙_绍1 小时前
Java Object equal重写
后端
虎子_layor1 小时前
实现异步最常用的方式@Async,快速上手
后端·spring
一米阳光zw1 小时前
Spring Boot中使用 MDC实现请求TraceId全链路透传
java·spring boot·后端·traceid·mdc