【入门】从零开始建网站

欢迎关注微信公众号“Python小灶,和我一起每天学习Python新知识”
在这里插入图片描述

文章目录

    • 基础入门,快速上手
      • 说明
      • 目标
      • 最终效果图
      • 流程
        • 购买服务器
        • 购买域名
        • 备案
        • 域名解析
        • 基本的配置
        • 让服务跑起来(上线)
      • 总结
    • 细节优化1--稳定运行
      • 为什么是flask + nginx + uWSGI部署
      • 先写一段简单的代码
      • uWSGI
        • 安装
        • 下载
        • 在项目的目录创建一个uwsgi的配置文件
        • 启动
        • 其它命令
      • nginx
        • 安装
        • 启动
        • Nginx 其它命令
      • 总结

基础入门,快速上手

说明

相信很多技术人和我一样,有个建立一个属于自己的网站的心。
那如何从头到尾建立自己的网站呐?最近正好也在做这方面的内容,所以梳理整理了以下,希望能对大家有所帮助。

根据本教程,可以实现最基本的外网访问自己所搭建的网站,后续会有进阶版内容,希望能和大家一起成长,共同见证一个正儿八经的网站的诞生,如果网站能发挥点作用就更好了。

目标

从零开始建立一个外网可以正常访问的网站,内容不限。

最终效果图

在这里插入图片描述

流程

首先我们要知道当用户输入一个链接地址,点击一个按钮,整个过程发生了什么事。实际的过程是十分复杂的事,这里只做了简化流程。

1.DNS解析(域名解析)
DNS解析的过程就是寻找哪台机器上有你需要资源的过程,寻找的过程遵循就近原则。

2.进行TCP连接

浏览器终于得到了IP以后,向服务器发送TCP连接,TCP连接经过三次握手。

3.浏览器发送HTTP请求

4.服务器处理请求

5.浏览器解析渲染页面

6.关闭TCP连接

从上面流程我们可以看出,我们需要有个域名,DNS服务根据域名解析去寻找资源所在的IP,还需要一台服务器,这个服务器有对应的IP,资源就在这个服务器上。

购买服务器

购买服务器很简单,某宝上有,随便你选,价格不到一百一年,便宜的贵的都有,看你需求,只要点个购买按钮就可以。本人买的事98/年的某某云服务器。

购买域名

域名就是用户在地址栏输入的地址,所以是相当重要了。一般你买哪家公司的云服务产品,就附带有域名购买服务。热门的域名像.com,.cn这种肯定特别贵,但是我们是自己业余爱好搞得,没必要,就找那种一年一两块钱的就可以,我买的是wxhz.work。

备案

这简直是噩梦般的一步。因为国内的网络审查比较严,所以备案特别麻烦,如果有嫌麻烦的同学可以有两个选择,第一是花钱让服务商帮你备案,另一个就是购买境外的服务器。

难度倒是不大,就是各种不合格打回重新备案特别烦。

我在初审因为网站内容被打回了两次,网站名称被打回了两次(最后选的我的生活笔记1),短信校验被打回一次(在垃圾短信没看到)。前后耗时七天,如果你运气比较好,可能三四天就完事了。

域名解析

参考文档
解析完成后,就相当于可以通过访问www.wxhz.work
访问自己的网址了,但是此时我网站还什么都没做,所以还访问不了。
在这里插入图片描述

基本的配置

先用Python的flask框架简单实现Hello world。
好,现在我们有了服务器,有了公网IP,有了域名,就可以实现一个最简单的网站了。那当然是最流行的Hello World!了。不过我们不能这么老套,就Fuck World!好了。

记住,现在是最基本最基本的教程,不需要考虑太多,只需要外网能访问就行!

  • 如果你服务器有Python3,不用安装,如果没有,安装Python3。
  • 创建虚拟环境

pip3 install virtualenv
cd 你的目录 : cd /home/blyang
virtualenv 你的虚拟环境名 : virtualenv flask_demo
切换到你的虚拟环境: source /home/blyang/flask_demo/bin/activate

成功的标志:(venv) [root@poplang flask_demo]#

  • 安装flaskpip install flask
  • 去xx云给你的服务配置一个端口
    在这里插入图片描述
让服务跑起来(上线)
  • 写一个简单的demo,放在服务器。
"""
-*- coding: utf-8 -*-
@Author  : blyang
@project : PythonCode
@Time    : 2021/1/4 21:35
"""from flask import Flaskapp = Flask(__name__)@app.route('/')
def index():return '

Fuck World!

'if __name__ == "__main__":app.run(host='0.0.0.0', port=4000)

  • cd 到文件所在目录,运行起来Python Hello.py,效果如图:
    在这里插入图片描述
  • 随意浏览器,地址栏输入47.111.250.14:4000,即可访问我的最基础的个人网站:
    -在这里插入图片描述

总结

这是最基本最基本的教程,实际生产环境肯定不会如此简陋,这我还是用的flask自带的调试服务器。但是千里之行,始于足下,我们慢慢完善这个网站,我的初步构想是把它打造成一个流浪动物救助/认领网站,有以下功能。

  • 收录各地动物救助站
  • 账户注册,登陆
  • 发帖功能
  • 评论功能
  • 分享功能
  • web+移动端
    希望能一起见证这个网站的成长。后期可能会有Java做这个项目。

细节优化1–稳定运行

我们开始进一步的网站搭建。之前的基础入门是最简单的基本访问,如果我断开Linux的远端连接,服务就会挂掉。因为用的是flask自带的简易调试服务器,正儿八经还得是成熟的产品才行,所以我们用flask + nginx + uWSGI部署。

为什么是flask + nginx + uWSGI部署

  • wsgi web应用程序之间的接口。它的作用就像是桥梁,连接在web服务器和web应用框架之间。
  • uwsgi 是一种传输协议,用于定义传输信息的类型。
  • uWSGI 是实现了uwsgi协议WSGI的web服务器。

想了解详细内容可以参考这篇文章:
什么是uWSGI?什么是flask?什么是nginx?

先写一段简单的代码

"""
-*- coding: utf-8 -*-
@Author  : blyang
@project : PythonCode
@Time    : 2021/1/4 21:35
"""from flask import Flaskapp = Flask(__name__)@app.route('/')
def index():return '

Hi,欢迎您的光临~
关注公众号Python小灶,每天学习新知识~

'if __name__ == "__main__":app.run()

uWSGI

安装

切换到虚拟环境,以你自己的为准:
source /home/blyang/flask_demo/bin/activate

下载

pip install uwsgi

在项目的目录创建一个uwsgi的配置文件

比如我在/home/blyang/python_code/flask_demo
目录下创建uwsgi.ini文件

[uwsgi]
#配合nginx使用
socket = 127.0.0.1:8000
#项目路径 /home/blyang/python_code/flask_demo/
chdir = 自己项目路径
#文件名
wsgi-file = run.py
#程序内启用的application变量名
callable = app
#指定工作进程
processes = 4
#主进程
master = true
#每个工作进程有2个线程
threads = 2
#指的后台启动 日志输出的地方
daemonize = uwsgi.log
#保存主进程的进程号
pidfile = uwsgi.pid
#虚拟环境环境路径
virtualenv = /home/blyang/flask_demo/

启动

uwsgi /home/blyang/python_code/flask_demo/uwsgi.ini

其它命令

uwsgi --reload /home/blyang/python_code/flask_demo/uwsgi.pid 重启
uwsgi --stop /home/blyang/python_code/flask_demo/uwsgi.pid 停止

nginx

安装

按照以下教程,成功启动nginx服务。

nginx作用
nginx安装教程

简单来说,nginx是全球比较流行的服务器(不是物理服务器,是软件,我们的代码要挂在一个服务上一直跑,就是这个web服务器)

安装过程总体顺利,有点小坑的地方:
1、在 安装 Nginx 部分,所用示例版本太老,用最新的稳定版,否则可能安装不成功
2、在 Nginx 配置 部分,先用默认的的/usr/local/webserver/nginx/conf/nginx.conf配置文件就好,然后这个地方改成自己的IP和监听端口就可以了。

 server {listen       80;server_name  47.111.250.14;#charset koi8-r;#access_log  logs/host.access.log  main;location / {#root   html;#index  index.html index.htm;include uwsgi_params;uwsgi_pass 127.0.0.1:8000;}
启动

/usr/local/webserver/nginx/sbin/nginx
**最终效果:**代表nginx成功安装、启动。
在这里插入图片描述

Nginx 其它命令

/usr/local/webserver/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx

配置nginx.conf ,/usr/local/webserver/nginx/conf/nginx.conf

总结

**最终效果:**代表nginx成功安装、启动。
经过这样一番操作,我写的代码就24小时挂在了网上一直在运行,全世界都可以访问啦!这就是网站的雏形,接下来只需要不断地丰富网站就行啦!
域名访问:(注意端口要是默认的80才能生效)
在这里插入图片描述

公网IP访问:
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部