Python3自带HTTP服务:轻松开启与后台管理

Python3自带有http服务,可以在服务器,也可以在本地启动,并运行一些常用的网页程序。比如:我们可以把streamlit框架编写的网页放到服务器上,开启http服务,就可以通过网页来调用这个pythont程序了,如下面的单词批量查询工具。我们服务器某个端口上运行这个程序,再通过1panel为这个服务器建立一个反向代理,申请一个免费的证书,就可以通过域名来访问这个python程序了。

下面,我们一起来看看如何开启和使用web服务器。

一、开启Web服务

1. 基本方法

Python 3内置了简单的HTTP服务器,操作非常简便。

如果还没有在服务器上安装python,请自行查询相关资料安装。安装完成后,请按照以下步骤进行:

首先,进入www目录:

复制代码
cd www 

用python命令,启动HTTP服务器:

复制代码
python3 -m http.server 

如果是在本地,可以运行以下代码:

启动成功后,你会看到"Serving HTTP on 0.0.0.0 port 8000..."的提示,说明服务已在8000端口启动。

2. 后台运行服务

如果希望将服务放在后台运行,可以在命令后加上&,这样按Ctrl+C也不会关闭服务:

复制代码
python3 -m http.server & 

为了确保服务不会被挂起,可以使用nohup命令:

复制代码
nohup python3 -m http.server 8001 & 

二、指定端口

如果想使用其他端口,只需在命令中最后,附加端口号,例如:

复制代码
python3 -m http.server 8001 

这样就会在8001端口启动HTTP服务。默认会从8501这个端口开启,如果端口被占用会继续顺延。

三、使用Web服务

访问 http://0.0.0.0:8000/ 可以查看www目录下的网页文件。

如果没有index.html,则会显示目录内容。此外,可以用ifconfig命令查看本机IP并进行访问。

四、nohup后台运行与关闭程序

对于需要长时间运行或输出信息较多的程序,建议使用后台运行并将输出保存到日志中,具体步骤如下:

1. 运行命令

复制代码
nohup python3 -u test.py > test.log 2>&1 & 

例如,我要在我的服务器上运行一个dic.py的文件,可以cd到py文件所在dict目录运行以下代码:

复制代码
nohup python3 -m  streamlit run dic.py

2. 按回车键,输入exit命令退出终端

注意:请勿直接关闭终端。

3. 命令解析

&:后台运行程序

nohup:程序不受挂起影响,即使退出服务器,也能后台运行该程序

-u:不启用缓存,实时输出

test.py:要执行的Python文件

test.log:保存输出的日志文件

>:将打印信息重定向到日志文件

2>&1:将标准错误输出重定向到标准输出

五、查看与管理后台程序

你可以使用以下命令查看和管理后台运行的程序:

1. 查看当前终端任务

jobs命令

查看当前终端后台运行的任务,jobs -l 可显示任务PID。

2. 查看所有进程

ps命令:

查看所有进程。使用如下命令:bash

复制代码
ps -aux | grep "test.py" 

六、结束进程

使用kill命令结束进程的步骤:

通过jobs命令查看任务编号,然后执行:

复制代码
kill %jobnum 

通过ps命令获取进程号PID,执行:

复制代码
kill PID 

对于前台运行的程序,可以直接按 Ctrl+C 终止。

这样,你就能轻松地管理Python的HTTP服务,并有效地在后台运行你的程序!

相关推荐
快乐肚皮2 分钟前
Linux系统中,Ctrl+C的运行过程是什么?
linux·运维·服务器·linux命令
2401_8614121413 分钟前
Python编程从入门到实践 PDF 高清版
python·pdf
TPBoreas18 分钟前
Jenkins服务器配置密钥对
运维·服务器·jenkins
weixin_4173271019 分钟前
局域网文件互传工具:无需数据线,手机电脑秒传大文件!
运维·服务器
2301_7786588026 分钟前
【Python训练营打卡】day31 @浙大疏锦行
python
敲键盘的小夜猫31 分钟前
如何理解大模型的幻觉输出及RAG技术的应用与实战案例
开发语言·python
三道杠卷胡33 分钟前
【AI News | 20250520】每日AI进展
人工智能·pytorch·python·语言模型·github
Takoony44 分钟前
verify_ssl 与 Token 验证的区别详解
python
Mr_Dwj1 小时前
【蓝桥杯真题精讲】第 16 届 Python A 组(省赛)
python·蓝桥杯
Johny_Zhao1 小时前
线下IDC数据中心迁移至阿里云详细方案
linux·网络·mysql·网络安全·信息安全·云计算·shell·数据迁移·yum源·系统运维·itsm