《小团队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技术搭建》
相关文章
|
2天前
|
SQL 缓存 搜索推荐
后端技术在现代Web开发中的应用与挑战
本文将深入探讨后端技术在现代Web开发中的重要性,涵盖从基础架构到性能优化的多个方面。通过分析当前主流后端技术的优缺点,并提供一些实用的解决方案和建议,帮助开发者更好地应对日常开发中的挑战。
15 1
|
8天前
|
安全 JavaScript Java
后端技术在现代Web开发中的实践与挑战
本文旨在探讨后端技术在现代Web开发中的关键作用,分析其在数据处理、业务逻辑实现和系统安全等方面的重要性。通过阐述常见的后端技术和框架,如Node.js、Django和Spring Boot,展示它们在实际项目中的应用。同时,文章将讨论后端开发所面临的主要挑战,包括性能优化、扩展性和维护性问题,以及如何应对这些挑战。最终,通过对实际案例的分析,总结出一套行之有效的后端开发最佳实践,为开发者提供参考。
31 5
|
8天前
|
人工智能 关系型数据库 数据安全/隐私保护
后端技术在现代Web开发中的应用与挑战
本文将深入探讨后端技术在现代Web开发中的重要性,通过分析其在数据处理、业务逻辑实现和安全性保障方面的应用,揭示后端技术的核心价值。同时,本文还将讨论当前后端开发面临的主要挑战,如高并发处理、数据安全、微服务架构的复杂性等,并给出相应的解决方案。无论是后端开发者还是对后端技术感兴趣的读者,都可以通过这篇文章获得启发和指导。
|
19天前
|
前端开发 安全 Java
技术进阶:使用Spring MVC构建适应未来的响应式Web应用
【9月更文挑战第2天】随着移动设备的普及,响应式设计至关重要。Spring MVC作为强大的Java Web框架,助力开发者创建适应多屏的应用。本文推荐使用Thymeleaf整合视图,通过简洁的HTML代码提高前端灵活性;采用`@ResponseBody`与`Callable`实现异步处理,优化应用响应速度;运用`@ControllerAdvice`统一异常管理,保持代码整洁;借助Jackson简化JSON处理;利用Spring Security增强安全性;并强调测试的重要性。遵循这些实践,将大幅提升开发效率和应用质量。
45 7
|
19天前
|
前端开发 JavaScript
构建你的第一个Web应用:从零到部署
【8月更文挑战第33天】 在这篇文章中,我们将一起踏上构建一个基本Web应用的旅程。不同于传统的“安装这个、运行那个”教程,我们的目标是通过理解每一步的意义和目的来深化你的技术理解。我们将探索HTML、CSS、JavaScript的基础,并学习如何将它们结合起来创建一个简单的个人网站。接着,我们会介绍如何使用GitHub Pages进行免费部署,让你的应用上线。准备好了吗?让我们开始吧!
|
15天前
|
负载均衡 网络协议 应用服务中间件
web群集--rocky9.2源码部署nginx1.24的详细过程
Nginx 是一款由 Igor Sysoev 开发的开源高性能 HTTP 服务器和反向代理服务器,自 2004 年发布以来,以其高效、稳定和灵活的特点迅速成为许多网站和应用的首选。本文详细介绍了 Nginx 的核心概念、工作原理及常见使用场景,涵盖高并发处理、反向代理、负载均衡、低内存占用等特点,并提供了安装配置教程,适合开发者参考学习。
|
6天前
|
数据处理 Python
Django视图:构建动态Web页面的核心技术
Django视图:构建动态Web页面的核心技术
|
15天前
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
30 0
|
20天前
|
Java Maven Apache
Struts 2 配置不再难!跟着这篇详解从零搭建开发环境
【8月更文挑战第31天】要搭建Struts 2开发环境,需先安装JDK,然后下载并解压Struts 2二进制包,将其核心库`struts2-core`添加到项目类路径中。使用Maven或Gradle时,可在配置文件中添加依赖。接着,在`web.xml`中配置Struts 2过滤器及其映射。`struts.xml`通常位于`src/main/resources`目录下,用于定义动作映射和拦截器等核心配置。最后,通过配置类路径下的`log4j.properties`文件,可以设置Struts 2的日志记录级别及输出方式。完成以上步骤后,即可开始基于Struts 2框架进行Web应用开发。
39 0
|
20天前
|
Java UED 自然语言处理
Struts 2 国际化竟有如此神奇魔力?快来揭开多语言支持的 Web 应用神秘面纱
【8月更文挑战第31天】在全球化背景下,Web应用需适应多种语言环境。Struts 2凭借其强大的国际化(i18n)支持,简化了多语言应用开发。通过不同语言的资源文件,它能自动匹配用户语言偏好,优化用户体验并扩展用户群。下面是一个示例:创建`messages.properties`(英语)与`messages_zh_CN.properties`(中文),并在Struts 2的Action类及JSP页面中调用`getText()`方法及Struts标签展示相应语言内容。此外,在struts.xml中指定资源文件,以确保框架正确加载对应语言包。通过这些步骤,开发者可以轻松实现应用的多语言支持。
43 0