Board logo

标题: CentOS8安装Flask+Apache2.4反向代理 [打印本页]

作者: admin    时间: 2022-3-30 19:51     标题: CentOS8安装Flask+Apache2.4反向代理

实验中,操作系统的版本信息: [root@centos8 ~]# cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core) [root@centos8 ~]# [root@centos8 ~]# uname -r 4.18.0-193.el8.x86_64 Python的版本信息: [root@centos8 ~]# python3 --version Python 3.6.8 服务器连接公网安装第三方库(Flask): [root@centos8 ~]# pip3 install flask -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com > 1.txt [root@centos8 ~]# 查看安装记录: [root@centos8 ~]# cat 1.txt Looking in indexes: http://mirrors.aliyun.com/pypi/simple Collecting flask Downloading http://mirrors.aliyun.com/pypi/packages/cd/77/59df23681f4fd19b7cbbb5e92484d46ad587554f5d490f33ef907e456132/Flask-2.0.3-py3-none-any.whl (95kB) Collecting Werkzeug>=2.0 (from flask) Downloading http://mirrors.aliyun.com/pypi/packages/f4/f3/22afbdb20cc4654b10c98043414a14057cd27fdba9d4ae61cea596000ba2/Werkzeug-2.0.3-py3-none-any.whl (289kB) Collecting Jinja2>=3.0 (from flask) Downloading http://mirrors.aliyun.com/pypi/packages/20/9a/e5d9ec41927401e41aea8af6d16e78b5e612bca4699d417f646a9610a076/Jinja2-3.0.3-py3-none-any.whl (133kB) Collecting click>=7.1.2 (from flask) Downloading http://mirrors.aliyun.com/pypi/packages/4a/a8/0b2ced25639fb20cc1c9784de90a8c25f9504a7f18cd8b5397bd61696d7d/click-8.0.4-py3-none-any.whl (97kB) Collecting itsdangerous>=2.0 (from flask) Downloading http://mirrors.aliyun.com/pypi/packages/9c/96/26f935afba9cd6140216da5add223a0c465b99d0f112b68a4ca426441019/itsdangerous-2.0.1-py3-none-any.whl Collecting dataclasses; python_version < "3.7" (from Werkzeug>=2.0->flask) Downloading http://mirrors.aliyun.com/pypi/packages/fe/ca/75fac5856ab5cfa51bbbcefa250182e50441074fdc3f803f6e76451fab43/dataclasses-0.8-py3-none-any.whl Collecting MarkupSafe>=2.0 (from Jinja2>=3.0->flask) Downloading http://mirrors.aliyun.com/pypi/packages/fc/d6/57f9a97e56447a1e340f8574836d3b636e2c14de304943836bd645fa9c7e/MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl Collecting importlib-metadata; python_version < "3.8" (from click>=7.1.2->flask) Downloading http://mirrors.aliyun.com/pypi/packages/a0/a1/b153a0a4caf7a7e3f15c2cd56c7702e2cf3d89b1b359d1f1c5e59d68f4ce/importlib_metadata-4.8.3-py3-none-any.whl Collecting zipp>=0.5 (from importlib-metadata; python_version < "3.8"->click>=7.1.2->flask) Downloading http://mirrors.aliyun.com/pypi/packages/bd/df/d4a4974a3e3957fd1c1fa3082366d7fff6e428ddb55f074bf64876f8e8ad/zipp-3.6.0-py3-none-any.whl Collecting typing-extensions>=3.6.4; python_version < "3.8" (from importlib-metadata; python_version < "3.8"->click>=7.1.2->flask) Downloading http://mirrors.aliyun.com/pypi/packages/45/6b/44f7f8f1e110027cf88956b59f2fad776cca7e1704396d043f89effd3a0e/typing_extensions-4.1.1-py3-none-any.whl Installing collected packages: dataclasses, Werkzeug, MarkupSafe, Jinja2, zipp, typing-extensions, importlib-metadata, click, itsdangerous, flask Successfully installed Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.3 click-8.0.4 dataclasses-0.8 flask-2.0.3 importlib-metadata-4.8.3 itsdangerous-2.0.1 typing-extensions-4.1.1 zipp-3.6.0 [root@centos8 ~]# 安装成功后,列出当前环境中所有已经安装的第三方库的名称和其版本号: [root@centos8 ~]# pip3 freeze click==8.0.4 dataclasses==0.8 Flask==2.0.3 importlib-metadata==4.8.3 itsdangerous==2.0.1 Jinja2==3.0.3 MarkupSafe==2.0.1 typing-extensions==4.1.1 Werkzeug==2.0.3 zipp==3.6.0 [root@centos8 ~]# 注释:会附带安装一些其他的依赖软件包。 保存当前环境中所有已经安装的第三方库的名称和其版本号信息到文件a.txt: [root@centos8 ~]# pip3 freeze > a.txt [root@centos8 ~]# [root@centos8 ~]# cat a.txt click==8.0.4 dataclasses==0.8 Flask==2.0.3 importlib-metadata==4.8.3 itsdangerous==2.0.1 Jinja2==3.0.3 MarkupSafe==2.0.1 typing-extensions==4.1.1 Werkzeug==2.0.3 zipp==3.6.0 [root@centos8 ~]# 打开防火墙(firewalld)的TCP 8080端口: [root@centos8 ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent success 使规则生效: [root@centos8 ~]# firewall-cmd --reload success 给Flask创建一个脚本“index.py”,内容如下: [root@centos8 ~]# cat index.py #coding=utf-8 from flask import Flask app = Flask(__name__) @app.route("/") def func1(): return "Welcome to zhuohua! 这是我的第一个Flask网站。" if __name__ == '__main__': app.run(host='192.168.168.154',port=8080,debug=True) 笺注: 服务器IP地址为 192.168.168.154 这里的访问端口设置为8080,即TCP 8080端口,也可以自定义为别的数字的。 脚本“index.py”运行中的效果:(组合键Ctrl+c可结束程序的执行) python3 index.py 图片1.png 客户端访问Flask网站: http://192.168.168.154:8080/ 图片2.png 笺注: 一旦结束脚本的运行,客户端就无法访问Flask网站了;可以把脚本“index.py”放在后台执行,具体命令如下: [root@centos8 ~]# nohup python3 /root/index.py & [1] 35314 [root@centos8 ~]# nohup: 忽略输入并把输出追加到'nohup.out' [root@centos8 ~]# 查看脚本“index.py”的进程号: [root@centos8 ~]# ps aux | grep "index.py" |grep -v grep root 35314 0.8 1.5 110752 28760 pts/3 S 17:25 0:00 python3 /root/index.py root 35318 5.5 1.6 207324 29756 pts/3 Sl 17:25 0:04 /usr/local/bin/python3 /root/index.py [root@centos8 ~]# 终止脚本“index.py”的运行:(等于终止Flask网站) [root@centos8 ~]# kill -9 35314 [root@centos8 ~]# kill -9 35318 [1]+ 已杀死 nohup python3 /root/index.py [root@centos8 ~]# ###### Apache2.4反向代理+Flask 目的:把客户端对本机的TCP 80端口的访问,反向代理到本机的TCP 8080端口。 Apache的安装可参考: CentOS8安装LAMP+phpMyAdmin Apache的反向代理配置:(Apache默认使用的是TCP 80端口) [root@centos8 ~]# vi /etc/httpd/conf/httpd.conf 文件后面追加: ProxyRequests On ProxyPass / http://192.168.168.154:8080/ ProxyPassReverse / http://192.168.168.154:8080/ 保存文件退出后,重启Apache: [root@centos8 ~]# systemctl restart httpd 注释: 反向代理成功后,防火墙只需要打开TCP 80端口; Flask使用的端口不得与Apache使用的端口冲突; 反向代理成功,客户端直接访问服务器的IP地址即可:(访问本机的TCP 80端口等于访问本机的TCP 8080端口) http://192.168.168.154/ 图片3.png ###### Linux下卸载安装好的第三方库(Flask): [root@centos8 ~]# pip3 uninstall flask -y Uninstalling Flask-2.0.3: Successfully uninstalled Flask-2.0.3 ###### 把文件1.txt里的链接地址筛选出来,并写到文件2.txt: [root@centos8 ~]# cat xx.py #coding=utf-8 Path_1 = "./1.txt" f_name = open(Path_1,'r') fields_1 = f_name.readlines() #输出结果为列表,包含换行符 f_name.close() #把最终的输出结果写入(追加)到文件2.txt;文件不存在时,会自动创建 K_1 = "Downloading" #关键字 Path_2 = r'./2.txt' for Key_1 in fields_1: if K_1 in Key_1: Result_1 = Key_1.split()[1] f_name = open(Path_2,'a') print(Result_1,file=f_name) 脚本“xx.py”运行后的效果: [root@centos8 ~]# python3 xx.py [root@centos8 ~]# 可以看到文件2.txt里都是链接地址: [root@centos8 ~]# cat 2.txt http://mirrors.aliyun.com/pypi/packages/cd/77/59df23681f4fd19b7cbbb5e92484d46ad587554f5d490f33ef907e456132/Flask-2.0.3-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/f4/f3/22afbdb20cc4654b10c98043414a14057cd27fdba9d4ae61cea596000ba2/Werkzeug-2.0.3-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/20/9a/e5d9ec41927401e41aea8af6d16e78b5e612bca4699d417f646a9610a076/Jinja2-3.0.3-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/4a/a8/0b2ced25639fb20cc1c9784de90a8c25f9504a7f18cd8b5397bd61696d7d/click-8.0.4-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/9c/96/26f935afba9cd6140216da5add223a0c465b99d0f112b68a4ca426441019/itsdangerous-2.0.1-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/fe/ca/75fac5856ab5cfa51bbbcefa250182e50441074fdc3f803f6e76451fab43/dataclasses-0.8-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/fc/d6/57f9a97e56447a1e340f8574836d3b636e2c14de304943836bd645fa9c7e/MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl http://mirrors.aliyun.com/pypi/packages/a0/a1/b153a0a4caf7a7e3f15c2cd56c7702e2cf3d89b1b359d1f1c5e59d68f4ce/importlib_metadata-4.8.3-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/bd/df/d4a4974a3e3957fd1c1fa3082366d7fff6e428ddb55f074bf64876f8e8ad/zipp-3.6.0-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/45/6b/44f7f8f1e110027cf88956b59f2fad776cca7e1704396d043f89effd3a0e/typing_extensions-4.1.1-py3-none-any.whl [root@centos8 ~]# ###### 根据文件2.txt里的链接地址下载文件: 服务器连接公网安装第三方库(wget): [root@centos8 ~]# pip3 install wget -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com Looking in indexes: http://mirrors.aliyun.com/pypi/simple Collecting wget Downloading http://mirrors.aliyun.com/pypi/packages/47/6a/62e288da7bcda82b935ff0c6cfe542970f04e29c756b0e147251b2fb251f/wget-3.2.zip Installing collected packages: wget Running setup.py install for wget ... done Successfully installed wget-3.2 [root@centos8 ~]# 创建存放下载下来的文件的目录: [root@centos8 ~]# mkdir -p /down [root@centos8 ~]# cat yy.py #coding=utf-8 import wget Path_1 = "./2.txt" f_name = open(Path_1,'r') fields_1 = f_name.readlines() f_name.close() Path_2 = '/down' for Key_1 in fields_1: Key_1 = Key_1.strip() wget.download(Key_1,Path_2) 脚本“yy.py”运行后的效果: [root@centos8 ~]# python3 yy.py 100% [..............................................................................] 26844 / 26844 [root@centos8 ~]# 文件下载成功: [root@centos8 ~]# du -ah /down 96K /share/Flask-2.0.3-py3-none-any.whl 284K /share/Werkzeug-2.0.3-py3-none-any.whl 132K /share/Jinja2-3.0.3-py3-none-any.whl 96K /share/click-8.0.4-py3-none-any.whl 20K /share/itsdangerous-2.0.1-py3-none-any.whl 20K /share/dataclasses-0.8-py3-none-any.whl 32K /share/MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl 20K /share/importlib_metadata-4.8.3-py3-none-any.whl 8.0K /share/zipp-3.6.0-py3-none-any.whl 28K /share/typing_extensions-4.1.1-py3-none-any.whl 740K /share [root@centos8 ~]# 当切换到一台新的服务器时,一次性安装多个已经存在的whl文件: [root@centos8 ~]# pip3 install /down/*.whl Processing /down/click-8.0.4-py3-none-any.whl Processing /down/dataclasses-0.8-py3-none-any.whl Processing /down/Flask-2.0.3-py3-none-any.whl Processing /down/importlib_metadata-4.8.3-py3-none-any.whl Processing /down/itsdangerous-2.0.1-py3-none-any.whl Processing /down/Jinja2-3.0.3-py3-none-any.whl Processing /down/MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl Processing /down/typing_extensions-4.1.1-py3-none-any.whl Processing /down/Werkzeug-2.0.3-py3-none-any.whl Processing /down/zipp-3.6.0-py3-none-any.whl Installing collected packages: zipp, typing-extensions, importlib-metadata, click, dataclasses, itsdangerous, MarkupSafe, Jinja2, Werkzeug, Flask Successfully installed Flask-2.0.3 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.3 click-8.0.4 dataclasses-0.8 importlib-metadata-4.8.3 itsdangerous-2.0.1 typing-extensions-4.1.1 zipp-3.6.0 [root@centos8 ~]# 安装成功: [root@centos8 ~]# pip3 freeze click==8.0.4 dataclasses==0.8 Flask==2.0.3 importlib-metadata==4.8.3 itsdangerous==2.0.1 Jinja2==3.0.3 MarkupSafe==2.0.1 typing-extensions==4.1.1 Werkzeug==2.0.3 zipp==3.6.0 [root@centos8 ~]# ###### 连接公网安装第三方库时,指定软件版本: [root@centos8 ~]# cat a.txt click==8.0.4 dataclasses==0.8 Flask==2.0.3 importlib-metadata==4.8.3 itsdangerous==2.0.1 Jinja2==3.0.3 MarkupSafe==2.0.1 typing-extensions==4.1.1 Werkzeug==2.0.3 zipp==3.6.0 [root@centos8 ~]# 当切换到一台新的服务器时,会重新从公网下载指定版本的第三方库: [root@centos8 ~]# pip3 install -r a.txt -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com Looking in indexes: http://mirrors.aliyun.com/pypi/simple Collecting click==8.0.4 (from -r a.txt (line 1)) Downloading http://mirrors.aliyun.com/pypi/packages/4a/a8/0b2ced25639fb20cc1c9784de90a8c25f9504a7f18cd8b5397bd61696d7d/click-8.0.4-py3-none-any.whl (97kB) 100% |████████████████████████████████| 102kB 362kB/s Collecting dataclasses==0.8 (from -r a.txt (line 2)) Downloading http://mirrors.aliyun.com/pypi/packages/fe/ca/75fac5856ab5cfa51bbbcefa250182e50441074fdc3f803f6e76451fab43/dataclasses-0.8-py3-none-any.whl Collecting Flask==2.0.3 (from -r a.txt (line 3)) Downloading http://mirrors.aliyun.com/pypi/packages/cd/77/59df23681f4fd19b7cbbb5e92484d46ad587554f5d490f33ef907e456132/Flask-2.0.3-py3-none-any.whl (95kB) 100% |████████████████████████████████| 102kB 490kB/s Collecting importlib-metadata==4.8.3 (from -r a.txt (line 4)) Downloading http://mirrors.aliyun.com/pypi/packages/a0/a1/b153a0a4caf7a7e3f15c2cd56c7702e2cf3d89b1b359d1f1c5e59d68f4ce/importlib_metadata-4.8.3-py3-none-any.whl Collecting itsdangerous==2.0.1 (from -r a.txt (line 5)) Downloading http://mirrors.aliyun.com/pypi/packages/9c/96/26f935afba9cd6140216da5add223a0c465b99d0f112b68a4ca426441019/itsdangerous-2.0.1-py3-none-any.whl Collecting Jinja2==3.0.3 (from -r a.txt (line 6)) Downloading http://mirrors.aliyun.com/pypi/packages/20/9a/e5d9ec41927401e41aea8af6d16e78b5e612bca4699d417f646a9610a076/Jinja2-3.0.3-py3-none-any.whl (133kB) 100% |████████████████████████████████| 143kB 250kB/s Collecting MarkupSafe==2.0.1 (from -r a.txt (line 7)) Downloading http://mirrors.aliyun.com/pypi/packages/fc/d6/57f9a97e56447a1e340f8574836d3b636e2c14de304943836bd645fa9c7e/MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl Collecting typing-extensions==4.1.1 (from -r a.txt (line 8)) Downloading http://mirrors.aliyun.com/pypi/packages/45/6b/44f7f8f1e110027cf88956b59f2fad776cca7e1704396d043f89effd3a0e/typing_extensions-4.1.1-py3-none-any.whl Collecting Werkzeug==2.0.3 (from -r a.txt (line 9)) Downloading http://mirrors.aliyun.com/pypi/packages/f4/f3/22afbdb20cc4654b10c98043414a14057cd27fdba9d4ae61cea596000ba2/Werkzeug-2.0.3-py3-none-any.whl (289kB) 100% |████████████████████████████████| 296kB 423kB/s Collecting zipp==3.6.0 (from -r a.txt (line 10)) Downloading http://mirrors.aliyun.com/pypi/packages/bd/df/d4a4974a3e3957fd1c1fa3082366d7fff6e428ddb55f074bf64876f8e8ad/zipp-3.6.0-py3-none-any.whl Installing collected packages: typing-extensions, zipp, importlib-metadata, click, dataclasses, MarkupSafe, Jinja2, itsdangerous, Werkzeug, Flask Successfully installed Flask-2.0.3 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.3 click-8.0.4 dataclasses-0.8 importlib-metadata-4.8.3 itsdangerous-2.0.1 typing-extensions-4.1.1 zipp-3.6.0 [root@centos8 ~]# 安装成功: [root@centos8 ~]# pip3 freeze click==8.0.4 dataclasses==0.8 Flask==2.0.3 importlib-metadata==4.8.3 itsdangerous==2.0.1 Jinja2==3.0.3 MarkupSafe==2.0.1 typing-extensions==4.1.1 Werkzeug==2.0.3 zipp==3.6.0 [root@centos8 ~]# 相关文章: CentOS8_Apache2.4反向代理 CentOS8安装Django+Nginx反向代理 CentOS8使用Virtual Environment CentOS8_在Docker中安装Flask for循环语句 网络爬虫_爬(电影天堂)

图片附件: 图片1.png (2022-3-30 19:42, 112.93 KB) / 下载次数 67
http://blog.zhuohua.store/attachment.php?aid=19253&k=9a0fe03bd426b7809ce68fb3722d4a46&t=1714260532&sid=h87898



图片附件: 图片2.png (2022-3-30 19:42, 30.22 KB) / 下载次数 78
http://blog.zhuohua.store/attachment.php?aid=19254&k=206b8b5da97d4e2b1d4134ab68d2bc8e&t=1714260532&sid=h87898



图片附件: 图片3.png (2022-3-30 19:45, 29.45 KB) / 下载次数 76
http://blog.zhuohua.store/attachment.php?aid=19255&k=31a7456b233dff0ff57adcf6ff69ec47&t=1714260532&sid=h87898






欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/) Powered by Discuz! 7.2