最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

腾讯云:从0到1手把手带你Web开发个人网站及其线上部署 (阿里云同理)

业界 admin 16浏览 0评论

部署到云服务器上的原因:

本地开发完一个web项目是可以用本地电脑作为服务器的。

但是本地电脑可能因为电脑的环境、硬件等原因导致电脑处于关机状态。此时部署到本机电脑的项目外界就无法通过网络访问了。

云服务相对于本地电脑来说,可以保证无时无刻都不处于关机状态,用户可以时刻访问做好的web项目查看效果。


项目上线流程:

  1. 本地开发web项目(这里以go为例)
  2. 本地环境搭建
  3. 本地web项目代码实现
  4. 测试及打包导出及sql脚本
  5. 迁移到腾讯云/阿里云服务器
  6. 云服务器环境搭建
  7. 云服务器部署web项目
  8. 绑定域名及https

web项目的开发:(以go为例)

  • 本地web项目概述(前端页面的编写)
  • 本地开发环境准备(go的环境、数据库)
  • 创建web项目及包结构
  • 创建数据库并导入配置文件
  • 编写核心代码
  • 整体测试并打包

这里很简单,就是用go+vue打造一个TODO web:

 


云服务器与数据库的环境:

腾讯云服务器流程:

  • 购买或租用云服务器
  • 远程登录和上传工具
  • 搭建服务器部署环境
  • 部署web项目
  • 绑定域名
  • 绑定https协议服务

云服务器:在腾讯云首页选择相应配置的服务器(这里以centos7.6 64位镜像)

云数据库: 阿里云数据库选择使用MySql5.6/8.x版本数据库,使用流量计费 或 按月计费(学生可学生认证)

腾讯云提供了免费的产品:

1. 云服务器的租用:

第一次使用腾讯云产品会有免费试用:

不想试用也可以直接租用:

这里选择自定义配置:

 

注意:按量付费需要个人认证:

 

实例的选择根据具体情况而定。

这里的安全组也可以全部开放,但有一定的风险:

出站和入站暂时不处理:

确认好后开通即可:

弄好后记得ping 公网ip一下。

2. 云mysql的租用:

地区和云服务器最好保持一致。

架构个人开发选用基础版,企业级用高可用版本:

 实例规格视具体情况而定:

 

等会儿会对mysql整个进行配置(地址,内网地址是不行的)

要操作云mysql需要开放出相应的公网地址,然后在本地就可以访问云mysql上的数据了。

确定后大概等1分钟后就行了。

 开启外网:

其实只需要等待几秒就行了。。。

复制后打开Navicat工具:

把本地的mysql数据导出sql文件:

这个项目本地用的govueto

右键选择"转储sql文件"->"结构和数据":

将该脚本同步到云mysql中:

右键选择运行sql文件:

 

此外,还需要更改代码的配置:将本地的mysql配置改为云mysql的配置。

改为:

localhost:改为云mysql的外网地址。

端口3306:改为云mysql的端口。

 然后启动项目看是否成功:

 


Go+Vue的打包:

将项目打包后然后放到云服务器上。

按照常规流程前端应该通过npm/yarn打包并把生成的文件放到后端指定的目录下:

vue的视图文件、静态文件是不能编译的。其他的文件才会编译为可执行文件。

那么如何把静态资源文件打包到应用里?

可以使用脚本:windows用xx.bat,linux用xxx.sh

 这里对脚本进行说明:

rd: remove dir即如果存在就删除该文件夹

md: make dir 创建这个文件夹

windows下exe文件会有黑色窗体,可以用这个命令消除黑色窗体:

go build -ldflags "-H windowsgui" -o xxx.exe

copy是指复制文件到哪个文件夹下。

XCOPY: 是把文件下的所有资源都复制到其他地方。

linux平台和windows平台命令差不多,特别的是chomd,

chmod +x 是需要帮我们生成的可执行文件添加可执行的属性.

为了在服务器上的后台运行,还应用nohup运行可执行文件。

windows执行后:

 

这里测试了windows打包成功了。

linux同理:

 windows上安装了git bash的可以执行linux的.sh脚本文件:

把这个文件夹拷贝到服务器上即可。(注意还需要配置golang在服务器上并用nohup运行。可参考我这篇文章:go部署到云服务器)


云服务器上Go的环境搭建:

因为项目是用golang写的,所以服务器上需要配置一下环境。如果是java项目就配jdk等。(当然可以用docker更加方便)

远程登陆服务器和上传服务器的工具:

  • Xshell: 可以在windows下访问远端不同系统下的服务器,比较好的达到远程控制终端的目的。
  • WinSCP: 可执行所有基本的文件操作,主要功能就是在本地与远程计算机间安全的复制文件。
  • SQLyog: 一个快速而简洁的图形化管理mysql数据库的工具,能在任何地点有效的管理我们的数据库。

先连接腾讯云服务器:

 新的服务器全是干净的:

然后把打包后的release文件夹通过xftp工具上传到服务器上或者直接拖拽到xshell:

弄完后 

尴尬了。没事,弄下权限:

部署web项目:

  • 将本地代码打包放到云服务器的对应位置
  • 执行sql脚本将数据同步到云mysql
  • 使用公网ip:端口/项目名。。。测试项目是否跑通。


绑定域名:

  • 购买域名和实名认证:腾讯云或阿里云等
  • 解析域名
  • 服务器端口配置
  • 绑定项目
  • 域名解析及修改服务器端口号
  • 目名和指定资源省略配置方式
  • SSL证书申请及https协议配置
  • http协议跳转https安全配置

 

这里提一下:

域名的购买,国内需要备案,国外不需要。

等待域名审核完成后还需要一下实名认证:

等待审核。

几分钟就好了(审核是真的快比阿里云)

实名认证成功后提示请修改DNS:

 

在“域名DNS未修改”上面的悬浮框上点击“刷新”: 

解析域名成功后启动服务器并通过域名访问:

 

接下来是https:

  • 下载免费https证书
  • golang证书启动服务器
  • http自动跳转https的安全配置。

手动添加一条解析记录和上图保持一致: 

等待系统颁发证书然后下载使用证书。

下载后的文件结构:

并且,golang需要修改代码,使用gin中间件提供TLS支持:

"github/unrolled/secure"
func TLSHandler() gin.HandlerFunc  {
	return func(c *gin.Context) {
		secureMiddleware := secure.New(secure.Options{
			SSLRedirect: true,
			SSLHost:     "yinleilei.club:8080",
		})
		err := secureMiddleware.Process(c.Writer, c.Request)

		if err != nil {
			 return 
		}
		c.Next()
	}
}

key和cerf还可以通过openssl生成。

还要通过nginx添加ssl:

centos安装nginx:

$ sudo yum -y install nginx   # 安装 nginx
$ sudo yum remove nginx  # 卸载 nginx

使用yum进行Nginx安装时,Nginx配置文件在/etc/nginx目录下。

配置nginx服务:

$ sudo systemctl enable nginx # 设置开机启动 
$ sudo service nginx start # 启动nginx服务
$ sudo service nginx stop # 停止nginx服务
$ sudo service nginx restart # 重启nginx服务
$ sudo service nginx reload # 重新加载配置,一般是在修改过nginx配置文件时使用。

找到腾讯云颁发的nginx需要用到的证书:

其中:

  • www.yinleilei.club.csr: CSR文件
  • 1_www.yinleilei.club_bundle.crt: 证书文件
  • 2_www.yinleilei.club.key: 私钥文件

CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。

 

将已获取到的1_www.yinleilei.club_bundle.crt: 证书文件和 2_www.yinleilei.club.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /usr/local/nginx/conf 目录(此处为默认安装目录):

若无 /usr/local/nginx/conf 目录,可通过执行 mkdir -p /usr/local/nginx/conf 命令行创建。.

编辑 Nginx 根目录下的 conf/nginx.conf 文件:

Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on

 上传文件:

测试nginx是否有语法错误:

不加前缀https会默认访问http,这是很不好 的,,所以需要http协议跳转https安全配置:(自动跳转可以查看腾讯云文档说明,这里就不做了)

 

这样建个人站就成功了,欢迎访问:

https://yinleilei.club:8080/

 或

yinleilei

需要注意的是:

对于java开发的应用同样需要先后端跑一个https服务,这样后端的请求才是https的。然后nginx添加ca证书反向代理到后端。

对于golang开发的应用,同样要遵守https网站不能发送http请求的约定,对于golang原生支持了runTLS()将证书和密钥文件名传递到参数中。这样就可以起一个https的服务。发送的网络请求就是https的了。这样网站nginx是https的服务,网站中发送的网络请求也是https的。保证了安全性。

可以看到的是:我这里贴的都是腾讯云试用的服务器和mysql。

等到过期了只需要重新替换租用mysql的公网ip和端口、云服务器的域名重新解析为新租用的服务器的公网ip、证书可能也得重新下发一次。

以上就是本次个人网站部署教程,流程大致都相同,只不过是不同语言的切换罢了。此篇文章仅为各位迷茫的小白提供一个思路。如有不对请指正。


学生或25岁以下的可以购买校园套餐

网址:快速入口

 

部署到云服务器上的原因:

本地开发完一个web项目是可以用本地电脑作为服务器的。

但是本地电脑可能因为电脑的环境、硬件等原因导致电脑处于关机状态。此时部署到本机电脑的项目外界就无法通过网络访问了。

云服务相对于本地电脑来说,可以保证无时无刻都不处于关机状态,用户可以时刻访问做好的web项目查看效果。


项目上线流程:

  1. 本地开发web项目(这里以go为例)
  2. 本地环境搭建
  3. 本地web项目代码实现
  4. 测试及打包导出及sql脚本
  5. 迁移到腾讯云/阿里云服务器
  6. 云服务器环境搭建
  7. 云服务器部署web项目
  8. 绑定域名及https

web项目的开发:(以go为例)

  • 本地web项目概述(前端页面的编写)
  • 本地开发环境准备(go的环境、数据库)
  • 创建web项目及包结构
  • 创建数据库并导入配置文件
  • 编写核心代码
  • 整体测试并打包

这里很简单,就是用go+vue打造一个TODO web:

 


云服务器与数据库的环境:

腾讯云服务器流程:

  • 购买或租用云服务器
  • 远程登录和上传工具
  • 搭建服务器部署环境
  • 部署web项目
  • 绑定域名
  • 绑定https协议服务

云服务器:在腾讯云首页选择相应配置的服务器(这里以centos7.6 64位镜像)

云数据库: 阿里云数据库选择使用MySql5.6/8.x版本数据库,使用流量计费 或 按月计费(学生可学生认证)

腾讯云提供了免费的产品:

1. 云服务器的租用:

第一次使用腾讯云产品会有免费试用:

不想试用也可以直接租用:

这里选择自定义配置:

 

注意:按量付费需要个人认证:

 

实例的选择根据具体情况而定。

这里的安全组也可以全部开放,但有一定的风险:

出站和入站暂时不处理:

确认好后开通即可:

弄好后记得ping 公网ip一下。

2. 云mysql的租用:

地区和云服务器最好保持一致。

架构个人开发选用基础版,企业级用高可用版本:

 实例规格视具体情况而定:

 

等会儿会对mysql整个进行配置(地址,内网地址是不行的)

要操作云mysql需要开放出相应的公网地址,然后在本地就可以访问云mysql上的数据了。

确定后大概等1分钟后就行了。

 开启外网:

其实只需要等待几秒就行了。。。

复制后打开Navicat工具:

把本地的mysql数据导出sql文件:

这个项目本地用的govueto

右键选择"转储sql文件"->"结构和数据":

将该脚本同步到云mysql中:

右键选择运行sql文件:

 

此外,还需要更改代码的配置:将本地的mysql配置改为云mysql的配置。

改为:

localhost:改为云mysql的外网地址。

端口3306:改为云mysql的端口。

 然后启动项目看是否成功:

 


Go+Vue的打包:

将项目打包后然后放到云服务器上。

按照常规流程前端应该通过npm/yarn打包并把生成的文件放到后端指定的目录下:

vue的视图文件、静态文件是不能编译的。其他的文件才会编译为可执行文件。

那么如何把静态资源文件打包到应用里?

可以使用脚本:windows用xx.bat,linux用xxx.sh

 这里对脚本进行说明:

rd: remove dir即如果存在就删除该文件夹

md: make dir 创建这个文件夹

windows下exe文件会有黑色窗体,可以用这个命令消除黑色窗体:

go build -ldflags "-H windowsgui" -o xxx.exe

copy是指复制文件到哪个文件夹下。

XCOPY: 是把文件下的所有资源都复制到其他地方。

linux平台和windows平台命令差不多,特别的是chomd,

chmod +x 是需要帮我们生成的可执行文件添加可执行的属性.

为了在服务器上的后台运行,还应用nohup运行可执行文件。

windows执行后:

 

这里测试了windows打包成功了。

linux同理:

 windows上安装了git bash的可以执行linux的.sh脚本文件:

把这个文件夹拷贝到服务器上即可。(注意还需要配置golang在服务器上并用nohup运行。可参考我这篇文章:go部署到云服务器)


云服务器上Go的环境搭建:

因为项目是用golang写的,所以服务器上需要配置一下环境。如果是java项目就配jdk等。(当然可以用docker更加方便)

远程登陆服务器和上传服务器的工具:

  • Xshell: 可以在windows下访问远端不同系统下的服务器,比较好的达到远程控制终端的目的。
  • WinSCP: 可执行所有基本的文件操作,主要功能就是在本地与远程计算机间安全的复制文件。
  • SQLyog: 一个快速而简洁的图形化管理mysql数据库的工具,能在任何地点有效的管理我们的数据库。

先连接腾讯云服务器:

 新的服务器全是干净的:

然后把打包后的release文件夹通过xftp工具上传到服务器上或者直接拖拽到xshell:

弄完后 

尴尬了。没事,弄下权限:

部署web项目:

  • 将本地代码打包放到云服务器的对应位置
  • 执行sql脚本将数据同步到云mysql
  • 使用公网ip:端口/项目名。。。测试项目是否跑通。


绑定域名:

  • 购买域名和实名认证:腾讯云或阿里云等
  • 解析域名
  • 服务器端口配置
  • 绑定项目
  • 域名解析及修改服务器端口号
  • 目名和指定资源省略配置方式
  • SSL证书申请及https协议配置
  • http协议跳转https安全配置

 

这里提一下:

域名的购买,国内需要备案,国外不需要。

等待域名审核完成后还需要一下实名认证:

等待审核。

几分钟就好了(审核是真的快比阿里云)

实名认证成功后提示请修改DNS:

 

在“域名DNS未修改”上面的悬浮框上点击“刷新”: 

解析域名成功后启动服务器并通过域名访问:

 

接下来是https:

  • 下载免费https证书
  • golang证书启动服务器
  • http自动跳转https的安全配置。

手动添加一条解析记录和上图保持一致: 

等待系统颁发证书然后下载使用证书。

下载后的文件结构:

并且,golang需要修改代码,使用gin中间件提供TLS支持:

"github/unrolled/secure"
func TLSHandler() gin.HandlerFunc  {
	return func(c *gin.Context) {
		secureMiddleware := secure.New(secure.Options{
			SSLRedirect: true,
			SSLHost:     "yinleilei.club:8080",
		})
		err := secureMiddleware.Process(c.Writer, c.Request)

		if err != nil {
			 return 
		}
		c.Next()
	}
}

key和cerf还可以通过openssl生成。

还要通过nginx添加ssl:

centos安装nginx:

$ sudo yum -y install nginx   # 安装 nginx
$ sudo yum remove nginx  # 卸载 nginx

使用yum进行Nginx安装时,Nginx配置文件在/etc/nginx目录下。

配置nginx服务:

$ sudo systemctl enable nginx # 设置开机启动 
$ sudo service nginx start # 启动nginx服务
$ sudo service nginx stop # 停止nginx服务
$ sudo service nginx restart # 重启nginx服务
$ sudo service nginx reload # 重新加载配置,一般是在修改过nginx配置文件时使用。

找到腾讯云颁发的nginx需要用到的证书:

其中:

  • www.yinleilei.club.csr: CSR文件
  • 1_www.yinleilei.club_bundle.crt: 证书文件
  • 2_www.yinleilei.club.key: 私钥文件

CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。

 

将已获取到的1_www.yinleilei.club_bundle.crt: 证书文件和 2_www.yinleilei.club.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /usr/local/nginx/conf 目录(此处为默认安装目录):

若无 /usr/local/nginx/conf 目录,可通过执行 mkdir -p /usr/local/nginx/conf 命令行创建。.

编辑 Nginx 根目录下的 conf/nginx.conf 文件:

Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on

 上传文件:

测试nginx是否有语法错误:

不加前缀https会默认访问http,这是很不好 的,,所以需要http协议跳转https安全配置:(自动跳转可以查看腾讯云文档说明,这里就不做了)

 

这样建个人站就成功了,欢迎访问:

https://yinleilei.club:8080/

 或

yinleilei

需要注意的是:

对于java开发的应用同样需要先后端跑一个https服务,这样后端的请求才是https的。然后nginx添加ca证书反向代理到后端。

对于golang开发的应用,同样要遵守https网站不能发送http请求的约定,对于golang原生支持了runTLS()将证书和密钥文件名传递到参数中。这样就可以起一个https的服务。发送的网络请求就是https的了。这样网站nginx是https的服务,网站中发送的网络请求也是https的。保证了安全性。

可以看到的是:我这里贴的都是腾讯云试用的服务器和mysql。

等到过期了只需要重新替换租用mysql的公网ip和端口、云服务器的域名重新解析为新租用的服务器的公网ip、证书可能也得重新下发一次。

以上就是本次个人网站部署教程,流程大致都相同,只不过是不同语言的切换罢了。此篇文章仅为各位迷茫的小白提供一个思路。如有不对请指正。


学生或25岁以下的可以购买校园套餐

网址:快速入口

 

发布评论

评论列表 (0)

  1. 暂无评论