云服務器-從零搭建前后端服務

使用須知

image-20231120092259178

  • 選擇0M帶寬不能訪問公網(不分配公網IP),如需分配公網IP請增加帶寬值。
  • 云服務器ECS默認不開啟虛擬內存如您需要使用請登錄云服務器內部操作。Linux開啟swap(虛擬內存)、Windows虛擬內存的設置
  • 若您購買了數據盤,請先掛載后使用。Linux操作系統掛載數據盤方法、Windows操作系統掛載數據盤方法
  • 如您需要修改登錄密碼,請再ECS控制臺對訂購實例進行“重置密碼“操作。請查看操作指南
  • 如網站用于web訪問,請及時備案。如需幫助,請查看備案專區
  • 阿里云會不定期為您推送活動優惠以及業務通知,如需關閉消息或設置其他人接收消息,請前往 消息中心進行管理
  • ECS使用中遇到環境部署、安全檢測、服務器加速等問題,需要管理工具幫助,請查看軟件市場
  • 如您需要隨時獲取ECS資源信息,信息實時監控,請下載阿里云APP
  • 我們為您提供了專業免費的第三方軟件安裝教程,包含MySQL、寶塔、WordPress、Nginx等十余款常用軟件,還可提問安裝過程中遇到的異常問題。如無法自助完成安裝,可購買一對一專家服務

免密登陸

  1. 安裝 Remote - SSH 插件,即可在 VSCode 中進行配置

  2. 配置別名快速登錄:ssh-config

    Host lynHostName xx.xx.xx.xxUser root# 就可以直接登陸了(需要輸入密碼)
    $ ssh lyn
    
  3. 修改本地 config

    # 提示你輸入密碼,成功后可以直接 ssh 登陸
    $ ssh-copy-id lyn# 就可以直接登陸了(無需輸入密碼)
    $ ssh lyn
    

自動化部署環境

安裝Java

Jenkins 本身是依賴 Java 的,所以我們需要先安裝 Java 環境

  • 注意:最新版本 Jenkins 需要使用 11-17 版本的 Java
  • 由于我使用的是 Alibaba Cloud Linux 3.2104 LTS 64位,就安裝了 java-17-alibaba-dragonwel
$ dnf search java-17
$ dnf install java-17-alibaba-dragonwell.x86_64

如果下載的非最新版 Jenkins 可以安裝 Java1.8 版本

$ dnf search java-1.8 
$ dnf install java-1.8.0-openjdk.x86_64

使用 dnf 安裝的,很難找到 jdk 安裝的位置,會有些小問題。還是推薦在官網下載,手動配置環境變量:https://www.oracle.com/java/technologies/download

  • jdk8,需要先注冊 Oracle 賬號才能下載,官網下載還是很快的

image-20231121164201283

$ tar -zxvf jdk-17_linux-x64_bin.tar.gz
$ tar -zxvf jdk-8u391-linux-x64.tar.gz
$ pwd
/home/software/jdk-17.0.9/
/home/software/jdk1.8.0_391/

修改環境變量文件

# export JAVA_HOME=/home/software/jdk-17.0.9
export JAVA_HOME=/home/software/jdk1.8.0_391
export PATH=$JAVA_HOME/bin:$PATH

需要對應版本了,修改文件重新加載環境變量即可

$ source /etc/profile

安裝Jenkins

$ dnf search jenkins
Last metadata expiration check: 0:29:36 ago on Mon 20 Nov 2023 08:58:40 AM CST.
=================================== Name & Summary Matched: jenkins ===================================
python3-jenkins.noarch : Python bindings for the remote Jenkins API

因為 Jenkins 本身是沒有在 dnf 的軟件倉庫包中的,所以我們需要連接 Jenkins 倉庫:

  • wget 是 Linux 中下載文件的一個工具,-O 表示輸出到某個文件夾并且命名為什么文件
  • 命令如有變動直接參考官網說明即可:https://pkg.origin.jenkins.io/redhat-stable/
$ wget –O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
$ mv jenkins.repo /etc/yum.repos.d/

根據對應 repo 就可以使用 dnf 進行安裝了,但是安裝是有認證的,需要使用 rpm 導入 GPG 密鑰以確保軟件合法

$ rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
# 或者
$ rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

之后編輯一下 jenkins.repo

$ vim /etc/yum.repos.d/jenkins.repo

http://pkg.jenkins.io/redhat-stable-stable 刪除掉

[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1

安裝 Jenkins

$ dnf install jenkins --nogpgcheck

啟動 Jenkins 服務

$ systemctl start jenkins
$ systemctl stop jenkins
$ systemctl status jenkins
$ systemctl enable jenkins

修改 Jenkins 端口

  • 默認端口為 8080,我要改為 8081
$ cd /usr/lib/systemd/system
$ vim jenkins.service

image-20231120102726327

重新加載配置文件

$ systemctl daemon-reload
$ systemctl restart jenkins

直接訪問 Jenkins 是無法展示頁面的,需要將其加入到安全組中

image-20231120103102460

打開瀏覽器,輸入 IP + 對應端口

獲取輸入管理員密碼,解鎖 Jenkins

$ cat /var/lib/jenkins/secrets/initialAdminPassword
fc53e288a4ac429baa33b44b412dd7a1

安裝推薦插件即可

image-20231120103330881

安裝Nginx

安裝 Nginx,或者去官網直接下載

  • https://nginx.org/en/download.html
$ dnf install nginx

啟動 Nginx

$ systemctl start nginx

安裝Git

$ dnf install git-all

Linux下安裝GitLab倉庫,史上最詳細的教程來啦~

我的云服務器小于這個配置…

image-20231120112129257

安裝Maven

去官網下載或者使用 wget 下載到指定目錄

  • https://maven.apache.org/download.cgi
$ wget --no-check-certificate https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz

并解壓 maven 包

$ tar -zxvf apache-maven-3.9.5-bin.tar.gz -C ./
$ pwd
/home/software/apache-maven-3.9.5

配置環境變量

  • 注意:Maven 是基于 jdk 的,所以一定要確保你 jdk 已經裝好
$ vim /etc/profile
export MAVEN_HOME=/home/software/apache-maven-3.9.5
export PATH=$MAVEN_HOME/bin:$PATH

重新加載環境變量

$ source /etc/profile

配置鏡像源

$ vim $MAVEN_HOME/conf/settings.xml
<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>
</mirror>

之后就可以直接打包了

  • 默認沒有配置存放路徑,本地倉庫會在 /root/.m2/repository/
$ mvn clean install

安裝Tomcat

去官網下載或者使用 wget 下載到指定目錄

  • https://tomcat.apache.org/download-90.cgi

解壓 tomcat 包

$ tar -zxvf apache-tomcat-9.0.55.tar.gz
$ pwd
/home/software/apache-tomcat-9.0.55

配置環境變量

$ vim /etc/profile
export TOMCAT_HOME=/home/software/apache-tomcat-9.0.55
export PATH=$TOMCAT_HOME/bin:$PATH

重新加載環境變量

$ source /etc/profile

其他環境

安裝Docker

把 yum 包更新到最新,不要隨意更新,因為我目前是新環境

$ yum update

安裝軟件包

$ yum install -y yum-utils device-mapper-persistent-data lvm2

設置 yum 源

$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看所有倉庫中所有 docker 版本,并選擇特定版本安裝

$ yum list docker-ce --showduplicates | sort -r

安裝 docker

$ yum install -y docker-ce-24.0.6

啟動 docker

$ systemctl start docker

安裝PostgreSQL

Linux下PostgreSQL安裝部署詳細步驟

安裝方法參考官方文檔:https://www.postgresql.org/download/linux/redhat/

部署目錄

名稱目錄位置
PG數據庫安裝目錄/home/postgres/FlyingDB15.4
PG數據庫數據目錄/home/postgres/pgdata
PG數據庫日志目錄/home/postgres/pgdata/log

創建 postgres 系統用戶

(root)
$ useradd -m postgres
$ passwd postgres
postgres@123$ cat /etc/passwd | grep /bin/bash
root:x:0:0:root:/root:/bin/bash
postgres:x:1000:1000::/home/postgres:/bin/bash

切換到 postgres 用戶,上傳數據庫包,并解壓數據庫包

(postgres)
$ pwd
/home/postgres
$ mkdir FlyingDB15.4
$ tar -zxvf FlyingDB15.4.tar.gz -C FlyingDB15.4/
$ mkdir pgdata
$ chmod 0700 pgdata

搭建主庫

  1. 配置環境變量

    $ vim ~/.bash_profile
    export PGHOME=/home/postgres/FlyingDB15.4
    export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
    export PATH=$PGHOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
    export PGDATA=/home/postgres/pgdata
    export PGDATABASE=postgres
    export PGUSER=postgres
    export PGPORT=5432
    export PGHOST=localhost
    export MANPATH=$PGHOME/share/man:$MANPATH
    export LANG=en_US.utf8
    export DATE=`date +"%Y%m%d%H%M"`$ source ~/.bash_profile
    
  2. 初始化數據庫

    $ initdb -D /home/postgres/pgdata -E UTF8 --locale=C -U postgres
    

    image-20231122100831718

  3. 配置允許訪問的 IP,允許所有 IP 以 md5 方式訪問

    $ vim /home/postgres/pgdata/pg_hba.conf
    host    all             all             0.0.0.0/0               md5
    
  4. 啟動數據庫

    $ pg_ctl start
    $ pg_ctl stop
    $ pg_ctl restart
    
  5. 修改數據庫密碼

    $ psql
    alter user postgres with password 'your password';
    
  6. 退出 sql 命令行

    $ \q
    

如果想要暴露數據庫到外面,需要修改 postgresql.conf 文件

$ vim /home/postgres/pgdata/postgresql.conf
listen_addresses = '0.0.0.0'
port = 5432
$ pg_ctl restart

之后再去云服務器把對應安全組放開,即可拿 sql 工具進行訪問

  • 連接之后就可以創建對應表、對應模式,之后執行初始化 sql 腳本了

安裝Redis

去官網下載或者使用 wget 下載到指定目錄

  • http://download.redis.io/releases/

前端環境搭建

安裝Nvm

nvm Github

直接下載可能會超時,沒超時按 Github 安裝方法即可

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash

git clone 下載,之后把環境變量添加到對應文件

$ git clone https://github.com/creationix/nvm.git ~/.nvm
# 在 ~/.zshrc、~/.profile、~/.bashrc 添加以下命令
$ echo "source ~/.nvm/nvm.sh" >> ~/.bashrc
$ echo "source ~/.nvm/nvm.sh" >> ~/.profile

安裝依賴

$ npm i -g pnpm

前端打 jar 包添加如下腳本命令:

  • 并添加對應 pom.xml 文件
"scripts": {"mvn": "npm run build && mvn clean && mvn install"
}

自動化腳本

修改對應配置文件

首先需要核對配置文件是否符合需求

  • 我這邊需要修改對應 pg 配置和對應服務的端口
$ vim /home/template/ticket-base/ticket-base-run/src/main/resources/application-pg-dev.yml
db:url: ..username: ..password: ..
$ vim /home/template/ticket-base/ticket-base-run/src/main/resources/application.yml
server:port: 8080

自動打包程序腳本

編寫自動打包腳本程序:build.sh

  • 需要注意從 Windows 直接復制腳本程序還需要修改換行格式
$ vim build.sh
#!/bin/bash
# 前端打包
cd /home/template/ticket-base-ui
pnpm i
pnpm mvn
# 后端打包
cd /home/template/ticket-base
mvn clean install$ chmod 755 build.sh
# Windows復制需要額外操作
$ vim build.sh
:set ff=unix
:wq

自動開啟關閉程序腳本

編寫自動殺進程、啟動程序腳本

$ vim start.sh
#!/bin/bash
BASE=/home/template
FILE=ticket-base-1.0.0-SNAPSHOT.jar
# 刪除歷史數據
rm -rf $BASE/$FILE
# 數據包拷貝到指定位置
cp $BASE/ticket-base/ticket-base-run/target/$FILE $BASE/$FILE
PID=`ps -ef | grep ticket-base | grep 'java -jar' | awk '{printf $2}'`
# 如果pid為空,提示一下,否則,執行kill命令
if [ -z $PID ];thenecho "java server not started"elsekill -9 $PIDecho "java server stoping...."
fi
# 啟動程序
nohup java -jar $BASE/$FILE >/dev/null 2>&1 &
echo 'java server starting...'

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161131.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161131.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161131.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

含分布式電源的配電網可靠性評估matlab程序

微?關注“電氣仔推送”獲得資料&#xff08;專享優惠&#xff09; 參考文獻&#xff1a; 基于仿射最小路法的含分布式電源配電網可靠性分析——熊小萍 主要內容&#xff1a; 通過概率模型和時序模型分別進行建模&#xff0c;實現基于概率模型最小路法的含分布式電源配電網…

web需求記錄

需求1&#xff1a;根據后端傳過來的設備名:DESKTOP-4DQRGQB&#xff0c;以及mac:e0:be:03:74:40:0b&#xff1b;iQOO-8&#xff0c;mac:b0:33:66:38:c3:25&#xff0c;用web option 是動態增加的&#xff08;也就是那個選擇框里面的東西是根據后端傳過來的值動態增加的&#xf…

upload-labs關卡12(基于白名單的%00截斷繞過)通關思路

文章目錄 前言一、靶場需要了解的前置知識1、%00截斷2、0x00截斷3、00截斷的使用條件1、php版本小于5.3.292、magic_quotes_gpc Off 二、靶場第十二關通關思路1、看源代碼2、bp抓包%00截斷3、驗證文件是否上傳成功 總結 前言 此文章只用于學習和反思鞏固文件上傳漏洞知識&…

LL(1)語法分析程序設計與實現

制作一個簡單的C語言詞法分析程序_用c語言編寫詞法分析程序-CSDN博客文章瀏覽閱讀322次。C語言的程序中&#xff0c;有很單詞多符號和保留字。一些單詞符號還有對應的左線性文法。所以我們需要先做出一個單詞字符表&#xff0c;給出對應的識別碼&#xff0c;然后跟據對應的表格…

國民新旅游時代,OTA們如何制勝新周期?

文 | 螳螂觀察&#xff08;TanglangFin&#xff09; 作者 | 圖霖 消費全面復蘇的大背景下&#xff0c;旅游業正迎來預期中的拐點。 一個顯著表現是&#xff0c;旅游消費正在從可選消費轉化成必選消費。 國內消費者旅游需求的不降反增&#xff0c;就是最好的印證。 同程研究…

DoFaker: 一個簡單易用的換臉工具

DoFaker: 一個簡單易用的換臉工具 基于insightface開發&#xff0c;可以輕松替換視頻或圖片中的人臉。支持windows和linux系統&#xff0c;CPU和GPU推理。onnxruntime推理&#xff0c;無需pytorch。 更新 2023/9/16 更新動作遷移算法2023/9/14 更新臉部增強算法(GFPGAN)和超分…

TypeScript枚舉

1、數字枚舉 enum Direction {Up,Down,Left,Right, } var Direction; (function (Direction) {Direction[Direction["Up"] 0] "Up";Direction[Direction["Down"] 1] "Down";Direction[Direction["Left"] 2] "L…

[點云分割] 基于顏色的區域增長分割

效果&#xff1a; 代碼&#xff1a; #include <iostream> #include <thread> #include <vector>#include <pcl/point_types.h> #include <pcl/io/pcd_io.h> #include <pcl/search/search.h> #include <pcl/search/kdtree.h> #inclu…

AR道具特效制作工具

AR&#xff08;增強現實&#xff09;技術已經逐漸滲透到各個行業&#xff0c;為企業帶來了全新的營銷方式和用戶體驗。在這個背景下&#xff0c;美攝科技憑借其強大的技術實力和創新精神&#xff0c;推出了一款專為企業打造的美攝AR特效制作工具&#xff0c;旨在幫助企業輕松實…

MIKE水動力筆記19_統計平均潮差

本文目錄 前言Step 1 ArcGIS中創建漁網點Step 2 將dfsu數據提取到漁網點Step 3 Python統計平均潮差 前言 日平均潮差&#xff08;average daily tidal range&#xff09;&#xff1a;日高潮潮高合計之和除以實有高潮個數為日平均高潮潮高&#xff0c;日低潮潮高合計之和除以實…

Quartz .Net 的簡單使用

參考了&#xff1a;c# .net framework 4.5.2 , Quartz.NET 3.0.7 - runliuv - 博客園 (cnblogs.com) https://www.cnblogs.com/personblog/p/11277527.html&#xff0c; Quartz.NET 作業調度&#xff08;一&#xff09;&#xff1a;Test - 簡書 自己要輪詢的任務&#xff1a…

NX二次開發UF_CAM_PREPRO_init_module 函數介紹

文章作者&#xff1a;里海 來源網站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_PREPRO_init_module Defined in: uf_cam_prepro.h int UF_CAM_PREPRO_init_module(void ) overview 概述 Initializes the required environment for this module. 初始化此…

淺談Python裝飾器原理與用法分析

前言 本文實例講述了Python裝飾器原理與用法。分享給大家供大家參考&#xff0c;具體如下&#xff1a; 1、裝飾器的本質是函數&#xff0c;主要用來裝飾其他函數&#xff0c;也就是為其他函數添加附加功能 2、裝飾器的原則: (1) 裝飾器不能修改被裝飾的函數的源代碼 (2) 裝…

VScode調試沒有反應

點擊調試按鈕后沒反應 有可能是vscode中安裝的python插件版本問題 可以通過重新安裝比較舊一點的python嘗試解決此問題 步驟如下&#xff1a; 然后從中選擇比當前版本更低的版本即可 安裝完成后需重啟vscode

初識EasyAR

EasyAR 一、介紹&#xff08;核心還是 目標圖像的屏占比&#xff09; 支持 EasyAR-AR|AR技術|AR SDK|Unity AR|下載 1.表面、圖片(靜止/運動)跟蹤&#xff0c;支持多目標 2.3D物體(靜止/運動)跟蹤(注&#xff1a;物體旋轉、遠近移動也可以&#xff0c;本人試過&#xff0c;…

縱享雙創盛宴 “之江創客”再創電商新輝煌

消費日報網訊&#xff08;記者 牛夏風&#xff09;營造良好電商雙創生態&#xff0c;集聚電商發展新勢能。10月31日&#xff0c;以“開放、連接、協同、賦能”為主題的“之江創客”2023全球電子商務創業創新大賽總決賽暨頒獎典禮在湖州南潯圓滿落幕。 記者從現場獲悉&#xff…

SQL 中的 MIN 和 MAX 以及常見函數詳解及示例演示

SQL MIN() 和 MAX() 函數 SQL中的MIN()函數和MAX()函數用于查找所選列的最小值和最大值&#xff0c;分別。以下是它們的用法和示例&#xff1a; MIN() 函數 MIN()函數返回所選列的最小值。 示例&#xff1a; 查找Products表中的最低價格&#xff1a; SELECT MIN(Price) F…

js 獲取當前窗口顯示的放大比例

可以獲取當前窗口顯示的放大比例&#xff0c;也稱為設備像素比 (devicepixelratio) 。這通常用于處理高DPI (高分辨率)屏幕上的視圖縮放。您可以使用window.devicePixelRatio 屬性來獲得當前設備像素比。 以下是一個簡單的JavaScript示例&#xff0c;演示如何獲取設備像素比: j…

基于獼猴Spike運動解碼的不同解碼方法性能對比

公開數據集中文版詳細描述 參考前文&#xff1a;https://editor.csdn.net/md/?not_checkout1&spm1011.2124.3001.6192神經元Spike信號分析 參考前文&#xff1a;https://blog.csdn.net/qq_43811536/article/details/134359566?spm1001.2014.3001.5501神經元運動調制分析 …

2023 年戴森設計大獎得主是誰?給大樓降溫、爭取救援機會

2023 年戴森設計大獎得主是誰&#xff1f;給大樓降溫、爭取救援機會 ?編輯拉風的極客2023/11/22 摘要 當今社會除了持續不斷對科技創新保持注目&#xff0c;還有很多年輕發明家為了實際場景的難題提供解決方案。 11 月 15 日&#xff0c;2023 年戴森設計大獎國際大獎名單正…