《小团队web技术搭建》(五)项目的简单部署方式

简介: 《小团队web技术搭建》(五)项目的简单部署方式
欢迎关注系列专栏《小团队web技术搭建》


《小团队web技术搭建》(一)环境和工具的准备-第一部分

《小团队web技术搭建》(二)环境和工具的准备-第二部分

《小团队web技术搭建》(三)环境和工具的准备-第三部分

《小团队web技术搭建》(四)虚拟机的安装使用

《小团队web技术搭建》(五)项目的简单部署方式

《小团队web技术搭建》(六)自动化部署方式(CI/CD)(一)

《小团队web技术搭建》(七)自动化部署方式(CI/CD)(二)

持续更新中...

为了方便有些读者的理解,我们从比较原始、简单的服务器部署开始讨论,后面的文章再介绍更为合理的方式以及需要的环境、工具。

准备一个基础前端项目

项目只包含一个index.html,以做最简演示,运行结果只显示一行“Hello world!”:

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Hello world!</title>
</head>
<body>
  <h1>Hello world!</h1>
</body>
</html>

将代码上传git,我存放在github这个目录:https://github.com/doterlin/small-team-tech/tree/main/demo/simple-demo

git上传在部署流程中并非是必须的,如果你在部署的时候不需要git来拉取代码的话。

连接服务器

连接远程服务器你需要一个连接工具,比如:MobaXtermIIS7SecureCRT(付费)等等。我比较喜欢用的是MobaXterm,并且用它来做演示。

  1. 新建一个连接会话,按图示顺序设置完成:

image.png

  1. 双击刚才新建好的会话,输入密码连接即可完成:

image.png

首先我们要做的是想办法上传代码到服务器。

方式1. Git拉取项目

新建一个用于存放项目的目录并进入,目录位置根据自己需要去定:

mkdir -p /www/projects/demo/
cd /www/projects/demo/

clone下来项目,发现git未安装:

git clone git@github.com:doterlin/small-team-tech.git
-bash: git: command not found

我们安装一下git(根据linux版本不同,安装方式不同):

yum install git

image.png

生成ssh key:

ssh-keygen -t rsa -C "your_email"

image.png

显示出来public key,然后复制它:

cat ~/.ssh/id_rsa.pub

image.png

把key粘贴到git托管平台:

image.png

把复制的key粘贴到Key一栏,Title填写一个你能知道是来自哪台机子的名字:

image.png

再次进行git clone:

image.png

至此我们的代码就算同步到服务器了,当以后有代码更新时就git pull一下代码即可。

方式2. FTP上传项目

我们也可以用看起来更加简单的方式,直接用FTP或SFTP协议(File Transfer Protocol 文件传输协议)上传文件到服务器。

进入之前我们新建的目录,在它下面新建一个目录:

cd /www/projects/demo/
mkdir demo1
cd demo1

MobaXterm的界面有比较方便的FTP支持,点击左侧的SSH brower,勾选下面的Follow teminal folder(或者你可以自己手动进入目录),再点击上面的upload图标,选择一个目录上传(在此之前我们压缩下项目包,因为不支持上传文件夹):
image.png

现在代码的压缩包已经上传了:
image.png

解压:

unzip simple-demo.zip
Archive:  simple-demo.zip
  inflating: index.html

代码上传完毕,部分ssh客户端还支持lrzsz服务,比如SecureCRT,输入rz命令即可选择文件上传:

rz

配置nginx

文件上传完毕,我们需要用代理服务器把他解析到公网。

先查看nginx是否已安装:

nginx -v
nginx version: nginx/1.20.1

如果没安装,请根据自己linux的系统安装和启动nginx。

查看nginx状态和配置文件位置:

nginx -t
nginx: the configuration file /www/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /www/server/nginx/conf/nginx.conf test is successful

现在我们知道nginx的配置文件是/www/server/nginx/conf/nginx.conf,接着编辑它:

vim /www/server/nginx/conf/nginx.conf

http字段里面加入几行配置,解析我们刚才上传的代码,端口号随意(只要不被占用):

server {
        listen 8989;
        root /www/projects/demo/small-team-tech/demo/simple-demo/;
}

如果你对nginx的配置规则不熟悉,可以使用一些生成工具进行生成(当然我还是建议你去学习下,成本不高),如:https://github.com/digitalocean/nginxconfig.io

接着刷新一下配置:

nginx -s reload

我们尝试在服务器里请求下我们部署的文件,是通的:

curl localhost:8989/index.html

image.png

但公网地址http://47.96.177.197:8989/index.html是不通的:

image.png
你可能需要检查下防火墙:

# iptables
iptables -L

# ufw
ufw status

# firewalld
firewall-cmd --list-all

以及看看服务器云厂商的端口放行,比如阿里云的添加安全组,下图我们将上面配置的8989加入到某个安全组即可:

image.png

重新访问http://47.96.177.197:8989/index.html成功:

image.png

这样就算部署成功了。

感谢阅读!欢迎关注系列专栏《小团队web技术搭建》
相关文章
|
1天前
|
JavaScript
js中如何使用工厂方式和构造函数创建对象,web开发项目实例
js中如何使用工厂方式和构造函数创建对象,web开发项目实例
|
1天前
|
前端开发 Java Go
从前端到后端:构建现代化Web应用的技术实践
本文将介绍如何通过前端和后端技术相结合,构建现代化Web应用的技术实践。我们将探讨前端开发、后端架构以及多种编程语言(如Java、Python、C、PHP、Go)在构建高效、可扩展的Web应用中的应用。
|
2天前
|
存储 JSON JavaScript
Web存储与传输:技术的背后
Web存储与传输:技术的背后
|
3天前
|
存储 安全 数据安全/隐私保护
Web应用程序的会话管理是一种跟踪和识别特定用户与Web服务器之间交互的技术
【5月更文挑战第12天】Python Web开发中,会话管理用于跟踪用户与服务器交互,如Flask框架提供的内置功能。以下是一个简单示例:安装Flask后,设置应用密钥,通过session读写用户状态。例如,创建一个显示和设置用户名称的Web应用,用户提交的名字将保存在会话中。在生产环境中,应安全存储密钥,如使用环境变量。扩展会话管理可借助第三方库实现更多功能,但可能需更多配置。
214 2
|
3天前
|
Go
golang学习3,golang 项目中配置gin的web框架
golang学习3,golang 项目中配置gin的web框架
|
3天前
|
前端开发 搜索推荐 安全
AJAX和CSR(客户端渲染)是Web开发中常用的两种技术
【5月更文挑战第8天】AJAX提升用户体验,减轻服务器压力,但对搜索引擎不友好且增加开发复杂度,易引发安全问题。CSR提供快速响应和交互性,改善用户体验,但首屏加载慢,搜索引擎支持不足,同样面临安全挑战。两者各有适用场景,需按项目需求选择。
15 0
|
3天前
|
应用服务中间件 nginx
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
12 0
|
3天前
|
开发框架 JavaScript 安全
WIndows Server 2016 部署 Web服务(简单篇)
WIndows Server 2016 部署 Web服务(简单篇)
|
3天前
|
存储 前端开发 安全
13:会话跟踪技术Session的深度应用与实践-Java Web
13:会话跟踪技术Session的深度应用与实践-Java Web
34 3