从零到一:手把手教你将项目部署上线-环境准备

部署步骤

  • 引言
  • 1.Java环境配置
  • 2.ngnix安装
  • 好书推荐

引言

将自己的项目从本地开发环境顺利部署上线,是每个开发者必经的里程碑。今天,我们就从零开始,一步一步教你如何将手中的项目部署到线上,让全世界见证你的创造力。
首先,我们得从环境准备这一关键步骤谈起。一切精彩的表演都需要合适的舞台,项目部署亦是如此。市面上不乏优秀的云服务提供商,如阿里云、腾讯云、AWS、Google Cloud等,它们提供了多样化的服务器选项,从经济实惠的虚拟私有服务器(VPS)到强大的云服务器实例,总有一款适合你的需求和预算。注册账号,选择一款符合你项目规模的服务套餐,我们的部署之旅正式启航。
本文使用阿里云服务器

1.Java环境配置

jdk安装可以使用线上和本地安装,为了方便使用线上安装,直接使用命令安装

  • 1.查看可以安装的jdk版本
yum -y list java*

在这里插入图片描述

  • 2.选择自己需要的jdk版本进行安装,比如这里安装1.8,执行以下命令:
yum install -y java-1.8.0-openjdk-devel.x86_64

在这里插入图片描述

  • 3.安装成功,查看版本
java -version

在这里插入图片描述

  • 4.使用在线安装默认会被安装到usr/lib/jvm下
cd /usr/lib/jvm
ls

在这里插入图片描述

2.ngnix安装

  • 1.查看防火墙状态
systemctl status firewalld.service

在这里插入图片描述

  • 2.关闭防火墙
systemctl stop firewalld.service
systemctl status firewalld.service

在这里插入图片描述

如果后续想打开可执行以下命令:

systemctl start firewalld.service

也可以设置禁止防火墙自启

systemctl disable firewalld.service

防火墙开机自启

systemctl enable firewalld.service 
  • 3.安装所需插件

1.gcc 可以编译 C,C++,Ada,Object C和Java等语言(安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境)

yum install gcc-c++

2.pcre pcre-devel pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库

yum install -y pcre pcre-devel

3.zlib zlib-devel zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装

yum install -y zlib zlib-devel

4.openssl openssl-devel OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

yum install -y openssl openssl-devel

5.nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库

  • 4.安装nginx

这里我们再次选择在线安装

1.安装之前先安装wget

 yum install wget 

2.使用wget命令下载

wget https://nginx.org/download/nginx-1.21.6.tar.gz

如果报错:-bash: wgte: command not found 那么将wget卸载重新安装就可

//先卸载
yum remove wget
//再安装
 yum -y install wget

3.解压

tar xvf nginx-1.21.6.tar.gz

cd nginx-1.21.6

4.配置

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

5.编译和安装

make

make install

6.查看安装路径

whereis nginx

7.设置服务自启

编辑服务文件

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx service
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

8.服务的启动/停止/刷新配置文件/查看状态

#启动nginx服务
systemctl start nginx.service  
 
#停止服务
systemctl stop nginx.service       
    
 #重新启动服务
systemctl restart nginx.service      
 
#查看所有已启动的服务
systemctl list-units --type=service    
 
#查看服务当前状态
systemctl status nginx.service         
 
 #设置开机自启动
systemctl enable nginx.service     
    
 # 停止开机自启动
systemctl disable nginx.service     

nginx.conf https 配置

    server {
        listen       443 ssl;
        server_name  localhost;
 
        ssl_certificate      cert.pem;#根证书地址(默认把证书放在conf目录)
        ssl_certificate_key  cert.key;#证书秘钥(默认把证书放在conf目录)
 
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
 
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
 
        location / {
            root   html;
            index  index.html index.htm;
        }
    }

将 http 重定向 https

server {
    listen 80;
    server_name localhost;
    #将请求转成https
    rewrite ^(.*) https://$server_name$1 permanent;
}

查看nginx 进程命令

ps aux | grep nginx

好书推荐

《Linux运维从入门到精通》从初学者角度出发,通过通俗易懂的语言、清晰明了的操作步骤,详细介绍了Linux系统管理与运维相关的技术。全书分为3篇,共19章,包括运维工作、服务器、Linux系统、Linux文件目录命令、Linux软件安装、Linux文本编辑、用户和用户组、文件管理与进程、Linux文件系统、Linux磁盘管理、Linux网络、防火墙、FTP服务器的搭建与应用、NFS服务器的搭建与应用、搭建Tomcat应用服务器、企业级Nginx应用服务器搭建、搭建基于LAMP架构服务、Linux数据服务、Linux shell脚本等内容。本书所有知识都结合具体应用场景和操作步骤进行介绍,可以使读者轻松领会Linux系统运维的精髓,快速提高运维技能。

在这里插入图片描述
传送门:https://item.jd.com/14199216.html

本书可作为系统运维入门者的自学用书,也可作为高等院校相关专业的教学参考书,还可供开发人员查阅参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/637742.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第十八篇:探索非关系型数据库:从入门到实践

探索非关系型数据库:从入门到实践 1. 引言 1.1 非关系型数据库的崛起:背景与重要性 在过去的几十年里,关系型数据库(RDBMS)一直在数据存储和管理领域占据主导地位。其严谨的结构化数据模型以及强大的事务处理能力&am…

只需提交几次代码就能轻松实现系统级的变更!——“基础设施即代码”模式与实践

“基础设施即代码”模式与实践 基础设施即代码(Infrastructure as Code,IaC)是指利用脚本、配置或编程语言创建和维护基础设施的一组实践和流程。通过IaC,我们可以轻松测试各个组件、实现所需的功能并在最小化停机时间的前提下进行…

语义化版本规范

Releases 是指软件或项目的正式发布版本,在浏览一些开源仓库时,可以看到当前项目最新版本和历史版本 仔细研究就会发现,版本号不是以固定值递增的,有时候第三位加 1,有时候加 2,有时候直接把第一位加 1&…

一文了解微服务

微服务架构是一种将应用程序划分为一组小型、独立的服务的方法,这些服务运行在自己的进程中,通常通过网络进行通信。微服务架构的主要优点是可以提高应用程序的灵活性和可扩展性,同时也使得开发、部署和维护更加容易。本文将介绍微服务架构的…

C语言 数组——查找算法的函数实现

目录 线性查找(Linear Search) 线性查找的性能 猜数游戏 二分查找(Binary Search) 并非吹毛求疵,鸡蛋里挑骨头 二分查找的性能 线性查找(Linear Search) 不 要求数据表是已排好序的  …

React-JSX基础

什么是JSX 概念:JSX是JavaScript和XML(HTML)的缩写,表示在JS代码中编写HTML模板结构,它是React中编写UI模板的方式 优势:1.HTML的声明式模板写法 2.JS的可编程能力 JSX的本质 JSX并不是标准的JS语法&…

HeyGen AI是什么?怎样使用HeyGen AI?

在数字时代,视频内容为王。无论是在社交媒体还是网站上,视频都以其独特的方式吸引着人们的眼球。然而,制作出专业水准的视频往往需要大量的时间和技术知识。HeyGen AI正是为了解决这一难题而诞生的。 HeyGen AI简介 HeyGen AI是一个创新的视…

【Fiddler抓包工具】第四节.断点设置和弱网测试

文章目录 前言一、断点设置 1.1 全局断点 1.2 局部断点 1.3 打断点的几种常用命令 1.4 篡改响应报文二、弱网测试 2.1 网络限速 2.2 精准限速总结 前言 一、断点设置 1.1 全局断点 特点: 中断Fiddler捕获的所有请求,包括…

You must call removeView() on the child‘s parent first.异常分析及解决

问题描述 对试图组件快速的左右滑动过程,发现某一张图片没加载出来,偶现crash 问题分析 view在上次已经是某个ParentView的child,然而现在又把它做为另外一个view的child,于是出现一个view有两个parent。所以就产生了这个错误。…

Python实现将LabelMe生成的JSON格式转换成YOLOv8支持的TXT格式

标注工具 LabelMe 生成的标注文件为JSON格式,而YOLOv8中支持的为TXT文件格式。以下Python代码实现3个功能: 1.将JSON格式转换成TXT格式; 2.将数据集进行随机拆分,生成YOLOv8支持的目录结构; 3.生成YOLOv8支持的YAML文件…

GetWay

SpringCloud - Spring Cloud 之 Gateway网关,Route路由,Predicate 谓词/断言,Filter 过滤器(十三)_spring.cloud.gateway.routes-CSDN博客 官网:Spring Cloud Gateway 工作原理:Spring Cloud G…

Spring Boot:SpringBoot 如何优雅地定制JSON响应数据返回

一、前言 目前微服务项目中RESTful API已经是前后端对接数据格式的标配模式了,RESTful API是一种基于REST(Representational State Transfer,表述性状态转移)原则的应用程序编程接口(Application Programming Interfac…

光伏电站在线监测智能诊断系统:开启无人值守新纪元

光伏电站在线监测智能诊断系统:开启无人值守新纪元 大家都知道光伏电站是通过汲取着太阳的光芒,为人类提供源源不断的电能源。然而,随着光伏电站规模的扩大和复杂性的增加,如何有效提高发电效率、减少人工维护成本,实…

前端菜鸡,对于35+程序员失业这个事有点麻了

“经常看到30岁程序员失业的新闻,说实话,有点麻。目前程序员供求关系并未失衡,哪怕是最基础的前端或者后台、甚至事务型的岗位也是足够的。 事实上,现在一个开出的岗位要找到一位尽职尽责能顺利完成工作的程序员并不是一件那么容…

YOLOv8原理详解

Yolov8是2023年1月份开源的。与yolov5一样,支持目标检测、分类、分割任务。 Yolov8主要改进之处有以下几个方面: Backbone:依旧采用的CSP的思想,不过将Yolov5中的C3模块替换为C2F模块,进一步降低了参数量&#xff0c…

mysql实战——mysql5.7升级到mysql8.0

1、上传mysql8.0压缩包到/usr/local目录下 tar -zxvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz mv mysql-8.0.25-linux-glibc2.12-x86_64 mysql8 #更改文件夹所属 chown -R mysql.mysql /usr/local/mysql8/ 2、更改配置文件my.cnf vi /etc/my.cnf # 最后几个for8.0的参数要…

Java输入与输出详解

Java输入和输出 前言一、Java打印Hello World二、输出到控制台基本语法代码示例格式化字符串 三、从键盘输入读入一个字符正确写法 使用 Scanner 读取字符串/整数/浮点数使用 Scanner 循环读取 N 个数字 前言 推荐一个网站给想要了解或者学习人工智能知识的读者,这…

tomcat jdbc连接池的默认配置

MySQL 5.0 以后针对超长时间数据库连接做了一个处理,即一个数据库连接在无任何操作情况下过了 8 个小时后(MySQL 服务器默认的超时时间是 8 小时),MySQL 会自动把这个连接关闭。在数据库连接池中的 connections 如果空闲超过 8 小时,MySQL 将…

详解 UML 中的关系概念

关联(Association) 表示两个类之间的一种语义性联系。例如: 学生与班级之间的关联关系。 有向关联(Directed Association) 关联关系有方向性,表示一个类能访问另一个类,但不一定反过来。例如: 教师能查看学生的成绩,但学生不能查…