从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默认页面。

相关推荐
Ray666 小时前
guide-rpc-framework笔记(四):网络编程
后端
Moonbit6 小时前
安装Wasm版的MoonBit工具链
后端·node.js·webassembly
法欧特斯卡雷特6 小时前
从 Kotlin 编译器 API 的变化开始: 2.2.2X -> 2.3.0-Beta1
后端·架构·开源
zjjuejin6 小时前
Maven 现代开发流程的集成
java·后端·maven
hrrrrb6 小时前
【Spring Boot】Spring Boot 中常见的加密方案
java·spring boot·后端
Lilian6 小时前
Trae通过ssh远程访问服务器linux系统不兼容问题
后端·trae
12344526 小时前
Spring Boot 启动流程全解析:从 SpringApplication.run() 到 Bean 初始化与自动配置
后端
Java中文社群7 小时前
我的网站被攻击了!
后端
程序定小飞7 小时前
基于springboot的在线商城系统设计与开发
java·数据库·vue.js·spring boot·后端