随着互联网科技的飞速发展,越来越多的个人开始意识到拥有自己的原创网站的重要性。今天,就让我们一起探讨如何在东莞零成本搭建一个个人原创网站。

在正式进入教程之前,让我们先了解一下为什么要进行网站重构。很多人都有感慨,因为只有当遇到比较大的问题时才会考虑重构,比如技术人员流动大导致代码中风格百出,百花齐放,无用代码一大堆不敢删,奇葩逻辑遍地皆是却没有一行注释、一篇文档。在这种无奈情况下,我们不得已选择了重构,寄希望于解决所有问题,但往往代价比收益高出一个数量级,很多人因为重构被迫出局。

然而,重构这件事情是一件必经之路,任何一个产品从诞生到成熟都会经历几次重构,因为没有人能在最初的时候就预示到最终的逻辑。既然如此,接下来便是搭建网站的初衷了。

首先,我是不断成长的个人学习者,作为想要成为全栈工程师的我来说,新思路总想去尝试。很多关注我的网友觉得我之前写的教程总有意猗未尽的感觉,希望能深入写一点。此外,php终究不是世界上最好的语言,用来用去觉得还是迁移python为好,也和我们的机器学习知识做个融合。

下面是搭建网站的技术栈选择:

  1. 语言:Python
  2. Web框架:Django
  3. 前端框架:直接使用Django模板渲染
  4. 服务端容器:Tomcat、ApacheHttpd、Nginx等
  5. 应用服务器容器:WSGI

在确定了技术栈后,我们就可以开始创建项目了。首先,确保已经安装了Python和Django相关组件(可以通过pip进行安装)。然后,在GitHub中创建仓库shareditor,并在本地创建空仓库提交GitHub库。

接下来,我们需要创建Django工程。执行以下命令自动创建一个完整的工程目录:

django-admin startproject shareditor [工程目录]

这时,我们会找到自动创建的manage.py文件(一个工具脚本,不需要修改)和工程总目录shareditor(其中包含了配置文件settings.py、总路由配置urls.py、wsgi协议配置文件wsgi.py等)。

下面我们在这个工程里创建网站app:

django-admin startapp web

此时,我们会看到自动创建的web目录,并且自动帮我们组织了一些文件,包括:admin.py、apps.py、migrations目录、models.py、tests.py和views.py。

到现在为止,我们的网站已经可以运行了。执行以下命令就可以访问网页:

python manage.py runserver

打开我的原创www.shareditor.com有更多内容哦!

为了让网站更专业,我们需要考虑如何部署一个专业的网站。实际上,通过执行python manage.py runserver命令只是在开发调试环境中运行Django,它只是一个进程、一个线程在运行,无法支持网站的高并发访问。

首先,配置好我们的web容器。在shareditor目录下创建wsgi.ini文件,内容如下:

[wsgi]
chdir=/Users/lichang/Developer/shareditor
http = 0.0.0.0:8080
http-keepalive = 1
model = shareditor.wsgi:application
master = processpool:4
daemonize = /Users/lichang/Developer/shareditor/logs/wsgi.log
disable-logging = 1
buffer-size = 1684
harakiri = 5
post-buffering = 8192
post-buffering-size = 65536
pidfile = /Users/lichang/ Developer/shareditor/logs/wsgi.pid
enable-threads = true

在文件目录下创建logs目录。然后,执行以下启动命令:

wsgi --ini shareditor/wsgi.ini

这时,我们可以查看一下logs/wsgi.log文件,如果没有异常信息说明网站已经部署成功了。我们通过ps -x | grep wsgi查看进程,就能看到正在运行的WSGI服务。

最后,为了让我们的网站具有高可用性(即挂掉一台机器不影响服务),我们需要至少部署两台完全对等的web服务来同时提供服务。用户在浏览器里访问时,可以配置DNS记录或使用稳定的代理服务器如Nginx、ApacheHttpd等进行负载均衡。

总结来说,东莞零成本搭建个人原创网站的教程已经介绍完毕。在这个过程中,我们学习了Python和Django等技能,通过不断的学习和实践提高了自己的技术能力。希望这篇文章对大家有所帮助!