保姆级别教你python后端的网站上线(gunicorn+nginx)

目录

前提准备:

1.服务器:

2.域名

flask

对于前后端

也可以无前端,纯flask后端

如果你想立刻让这个网站上线

测试环境python环境

正文开始!!!gunicorn+nginx

gunicorn的下载安装很简单,

对于nginx的安装你可能需要上点心思

设置项目文件路径:

flask 

gunicorn

nginx的conf配置文件

最后,命令行输入

最重要的:


为了装x,展示一下我的私人网站(当然,用了别人的模板)LJR的主页 (ljr672.top)icon-default.png?t=N7T8http://www.ljr672.top/,这个网站是纯前端开发的(无后端),问题不大,后期会优化更新

今天说的是基于后端开发的网站的上线,而且主要是教大家如何上线,会教大家做一个最简单的网页,并且用世界上任何可联网设备都能打开该网页,要是想有什么修饰的话,可以移步至其他flask和html+css+JavaScript的详细教学(大概一个月可以搞定),当然,大家也可以找模板

前提准备:

1.服务器:

linux云服务器(而且会使用Linux的基础操作),一般几百米一年,大家可以买中国境内的服务器,也可以买香港或境外的,后者不需要备案,相对方便一点

服务器如何查看IP?在云服务器终端输入

ipconfig
2.域名

并且绑定到你服务器的ip地址

        way:打开阿里云官网,登录,搜索注册域名(要花钱,不同域名后缀价格不同),注册后,

点击域名控制台--域名列表--解析--新手引导(框内输入云服务器IP),解析到自己服务器即可

flask

对于前后端

项目文件夹
|
|-app.py
|-Template
    |-index.html
import time
from flask import Flask, render_template
from fuzzywuzzy import fuzz
import re
app = Flask(__name__)


@app.route('/search', methods=['GET', 'POST'])
def helloworld():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

项目内python启动文件为app.py,代码如上,指向index.html,

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>你好,这是一个网站</h1>
</body>
</html>

也可以无前端,纯flask后端

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

if __name__ == '__main__':
    app.run(debug=True)

如果你想立刻让这个网站上线

注意!第一步,放行端口和安全组

放行端口可以看这个博主的文章放行安全组需要在阿里云(或其他平台)的“防火墙”处设置

不然别人无论如何看不到这个端口挂载的网站

需要在flask的run()函数里面设置ip和端口号,如

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

if __name__ == '__main__':
    app.run(debug=True, port=8080)

这里你的网站挂在了端口为8080上,记得放行8080端口和防火墙。

然后进入对应的虚拟环境(我这篇文章有提及如何安装conda便于配环境),或者在主环境

测试环境python环境

终端输入python,如果无报错且版本号为3.x,就可以。

如果是2.x,试试输入python3,如果输入python3报错,则安装3.x版本。

如输入python3无报错,那以下所有含有“python”的命令都要写成“python3”

输入代码,运行

python app.py

报错的话,如果是类似于“no model...”,则是环境内没有安装需要的库,比如说对于没有flask的报错,就

pip install flask

此时,在浏览器上面输入url的小框框里面输入:你的服务器公网ip:端口号,即可,如

1.2.3.4:8080

正文开始!!!gunicorn+nginx

Nginx 是一个高性能的开源反向代理服务器,也可以用作负载均衡器、HTTP缓存以及作为静态文件服务器。它最初由伊戈尔·赛索耶夫创建,其设计目标是处理高并发的网络流量。Nginx 的主要特点包括低内存消耗、高并发处理能力、处理静态文件效率高、模块化设计、可扩展性强等。Nginx 在 Web 服务器领域的广泛应用,特别是作为反向代理服务器,使得它成为构建高可用性、高性能 Web 应用的重要工具之一。

Gunicorn(Green Unicorn)是一个 Python WSGI HTTP 服务器,用于运行 Python Web 应用程序。它实现了WSGI(Web Server Gateway Interface)规范,允许 Python 应用程序通过标准接口与外部 Web 服务器(如 Nginx、Apache 等)进行通信。Gunicorn 最初是由Benjamin Peterson创建的,现在是一个广泛使用的 Python Web 服务器。Gunicorn 的设计目标是简单、易于使用、高效,并且能够处理多个并发请求。

gunicorn的下载安装很简单,

pip install gunicorn

对于nginx的安装你可能需要上点心思

请移步至该文章

设置项目文件路径:

项目文件夹
|
|-app.py
|-gunicorn.conf.py
|-file             #存放静态文件
|    |-img
|    |-static
|    |-等等
|
|-Template
    |-index.html

flask 

 app.py     # run()函数里面不需要设置端口号,在gunicorn里面设置

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

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

gunicorn

gunicorn.conf.py    bind里更改端口号

bind = "0.0.0.0:8000"  # 绑定到所有IP地址上的8000端口
workers = 3  # 根据你的服务器资源调整工人数

nginx的conf配置文件

命令行输入nginx -t可显示,比如是/usr/local/nginx/conf/nginx.conf

那就命令行输入

vi /usr/local/nginx/conf/nginx.conf

然后

sever块:

server {
    listen 80;   
    server_name www.ljr672.top;  // 改为绑定你网站的域名  

    location / {
        proxy_pass http://127.0.0.1:8080;    // 更改端口,“127.0.0.1”不要动
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

结束,现在刷新nginx配置

nginx -s reload

最后,命令行输入

gunicorn app:app -c gunicorn.conf.py > gun.log 2>&1 &

没有报错的话,你大概就可以去浏览器看看你的网站了!

最重要的:

新手在配置环境,操作等等时候很容易出现错误,这时候一定要学会面向百度编程、面向ChatGPT编程,只有这样,你才能事半功倍

祝网站上线成功!!!

如果觉得有帮助的话,不要忘记点赞关注哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值