随着互联网的飞速发展,越来越多的个人开始关注如何在网络上打造属于自己的平台。而零成本打造个人网站成为了不少人的首选。下面让我带你们一起探索如何实现这一目标。
谈及个人网站的建立,很多人都会觉得这是一件复杂的事情,但实际上只要掌握了正确的方法,我们完全可以做到低成本、甚至零成本地搭建起一个属于自己的网站。首先让我们来聊聊为什么要进行网站的优化和重构。
提到重构这个词,相信很多人都有类似的感慨:只有在遇到较大的问题时才会考虑重构,比如技术人员流动大导致代码风格不一,无效代码堆积如山,逻辑混乱而没有注释。在这种情况下,我们不得不选择重构,寄希望于解决所有问题。但实际上,重构的代价通常远远高于收益,许多人因此被迫出局。
然而,重构是网站成长过程中必然经历的阶段,任何一个产品从诞生到成熟都会经历几次重构。因为没有人能在最初的时候就预测到最终的逻辑(如果能预见到,那还需要最初的阶段吗?)。即便像BT这样的成熟公司,内部的系统也是平均两年进行一次重构的。
让我回过头来说一下我建设个人网站的初衷:1)我也在不断地成长,作为一个想要成为全栈工程师的人,总是对新思路充满好奇心;2)很多关注我的网友们觉得我之前写的教程还不足以满足他们的需求,希望能更深入地了解一些知识;3)php并不是世界上最好的语言(这里可能会引起争议),在使用过程中,迁移到python会是一个不错的选择,同时也能和我们的机器学习知识相结合。
技术栈的选择
首先来说说编程语言。我曾经说过,语言只是工具,每门语言都有其存在的价值和适用的场景,不必勉强自己使用不擅长的语言。对于后端语言,我选择了python,因为它是社区中最活跃的语种之一,且呈上升趋势,同时又是大数据和人工智能方向的主流语言。
接下来是前端框架的选择。在这里,我直接使用了django模板渲染,而没有选择anglar等前端框架。原因是这样做对SEO更友好。
服务端容器的选择
在tomcat、apachehttpd、nginx等web服务器中选择,我们选择了wsgi。它类似于nginx,通过一个守护进程将不同的HTTP请求转发给子进程进行并发处理,支持多线程的方式,性能较高,更重要的是,django会自动帮我们生成wsgi的配置,对wsgi友好。
搭建基本运行环境
在开始之前,确保你已经安装了python。如果没有安装,可以根据你的操作系统来安装。对于rhel或centos系统,可以使用yminstallpython命令;对于bnt系统,可以使用apt-getinstallpython命令;对于mac系统,可以使用brewinstallpython命令。如果以上方法都不适用,你还可以直接下载官方包进行安装。
接下来是django相关组件的安装(当前最新版为1.doban.com/simple–trsted-hostpypi.doban.com)。然后在githb中创建一个名为shareditor的仓库,并在本地对应目录下创建一个空仓库。提交githb库后,你会得到以下信息:[lichang@localhost:~/Developer/shareditor$]lsREDME.md…
创建django工程
在安装django时,已经自动为我们安装了django-admin工具。执行以下命令可以自动创建一个完整的工程目录(其中最后一个参数是工程目录,倒数第二个参数是工程名):django-adminstartprojectshareditor/Users/lichang/Developer/shareditor。
这时,你会找到自动生成的manage.py文件(一个不需要修改的工具脚本),以及工程总目录shareditor(包含了配置文件settings.py、路由配置rls.py、wsgi协议配置文件wsgi.py等)。
创建网站app
在工程目录下,使用以下命令创建我们网站应用:django-adminstartappweb。它会自动生成一个名为web的目录,并组织一些文件。
运行网站
执行以下命令后,你的网站就可以运行了:pythonmanage.pyrunserver。
修改默认页面
打开shareditor.com,你会看到django展示的默认页面。下面我们将对web/views.py中的index函数进行改造:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world!")
修改路由规则
在shareditor/rls.py文件中修改内容为:from web import views。
重新启动服务器,并在浏览器中访问http://127.0.0.1:8000/,你将会看到修改后的页面显示“Hello, world!”。
部署专业网站
实际上,上面执行pythonmanage.pyrnserver只是在django中进行开发和调试的方法。它只能支持单进程单线程的服务器,无法应对高并发请求。下面我们来介绍一下如何部署一个专业的网站。
首先,我们需要配置好web容器。在shareditor目录下创建wsgi.ini文件,内容如下:
[wsgi]
chdir=/Users/lichang/Developer/shareditor
http=0.0.0.0:8001
http-keepalive=1
module=shareditor.wsgi:application
master=reload
processes=4
daemonize=/Users/lichang/Developer/shareditor/logs/wsgi.log
disable-logging=True
buffer-size=1684
harakiri=5
post-buffering=8192
post-buffering-bgsize=65536
pidfile=/Users/lichang/Developer/shareditor/logs/wsgi.pid
enable-threads=True
single-interpreter=True
其中,目录要随着你部署的目录进行相应修改。由于logs目录还不存在,我们需要手动创建一个:
mkdir -p shareditor/logs
然后,执行启动命令:wsgi–inshareditor/wsgi.ini。
检查日志文件
你可以查看logs/wsgi.log文件来确认网站是否已成功部署。使用psx|grepwsgilichang命令,你需要注意进程号可能发生变化。
至此,你已经成功零成本打造了一个个人网站。通过不断学习和实践,相信你的网站会越来越专业。