Board logo

标题: CentOS8安装Django+Nginx反向代理 [打印本页]

作者: admin    时间: 2022-3-30 20:18     标题: CentOS8安装Django+Nginx反向代理

实验中,操作系统的版本信息: [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 服务器连接公网安装第三方库(Django): [root@centos8 ~]# pip3 install Django -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 Django Downloading http://mirrors.aliyun.com/pypi/packages/9c/0e/02b7eff8fac2c25ede489933d4e899f6e6f283ae8eaf5189431057c8d406/Django-3.2.12-py3-none-any.whl (7.9MB) Collecting sqlparse>=0.2.2 (from Django) Downloading http://mirrors.aliyun.com/pypi/packages/05/40/d836d55fb3f467243ee839ab7b814822fda522cd395fa41e282684e71ee5/sqlparse-0.4.2-py3-none-any.whl (42kB) Collecting pytz (from Django) Downloading http://mirrors.aliyun.com/pypi/packages/60/2e/dec1cc18c51b8df33c7c4d0a321b084cf38e1733b98f9d15018880fb4970/pytz-2022.1-py2.py3-none-any.whl (503kB) Collecting asgiref<4,>=3.3.2 (from Django) Downloading http://mirrors.aliyun.com/pypi/packages/fe/66/577f32b54c50dcd8dec38447258e82ed327ecb86820d67ae7b3dea784f13/asgiref-3.4.1-py3-none-any.whl Collecting typing-extensions; python_version < "3.8" (from asgiref<4,>=3.3.2->Django) Downloading http://mirrors.aliyun.com/pypi/packages/45/6b/44f7f8f1e110027cf88956b59f2fad776cca7e1704396d043f89effd3a0e/typing_extensions-4.1.1-py3-none-any.whl Installing collected packages: sqlparse, pytz, typing-extensions, asgiref, Django Successfully installed Django-3.2.12 asgiref-3.4.1 pytz-2022.1 sqlparse-0.4.2 typing-extensions-4.1.1 [root@centos8 ~]# 安装成功后,列出当前环境中所有已经安装的第三方库的名称和其版本号: [root@centos8 ~]# pip3 freeze asgiref==3.4.1 Django==3.2.12 pytz==2022.1 sqlparse==0.4.2 typing-extensions==4.1.1 [root@centos8 ~]# 注释:会附带安装一些其他的依赖软件包。 查看Django的版本: [root@centos8 ~]# python3 -c "import django; print(django.get_version())" 3.2.12 打开防火墙(firewalld)的TCP 8081端口: [root@centos8 ~]# firewall-cmd --zone=public --add-port=8081/tcp --permanent success 使规则生效: [root@centos8 ~]# firewall-cmd --reload success 先在创建一个目录/Mysite,用来专门放置Django项目,再创建Web应用“Myapp”: [root@centos8 ~]# mkdir -p /Mysite [root@centos8 ~]# cd /Mysite/ [root@centos8 Mysite]# django-admin.py startproject Myapp [root@centos8 Mysite]# 在项目目录里,可以通过tree命令查看目录结构: 图片1.png 笺注: 如果提示没有tree命令的话,就安装 yum -y install tree 以上是项目目录里的初始文件,manage.py是一个脚本文件,可以通过它管理Django服务; 启动Django的Web应用“Myapp”: cd /Mysite/Myapp/ python3 manage.py runserver 192.168.168.154:8081 图片2.png 笺注: 192.168.168.154为服务器IP地址; 这里的访问端口设置为8081,即TCP 8081端口,也可以自定义为别的数字的; Django的Web应用“Myapp”运行中的效果:(组合键Ctrl+c可结束程序的执行) 图片3.png 客户端访问Django网站: http://192.168.168.154:8081/ 有可能会报以下错误: Invalid HTTP_HOST header: '192.168.168.154:8081'. You may need to add '192.168.168.154' to ALLOWED_HOSTS. 图片4.png 解决方法: [root@centos8 ~]# vi /Mysite/Myapp/Myapp/settings.py ALLOWED_HOSTS = [] 修改为: ALLOWED_HOSTS = ['*'] 重新启动Web应用“Myapp”,客户端再刷新页面即可:(建议使用Firefox浏览器) 图片5.png 笺注: 一旦结束脚本的运行,客户端就无法访问Django网站了;可以把Django的脚本“manage.py”放在后台执行,具体命令如下: [root@centos8 ~]# nohup python3 /Mysite/Myapp/manage.py runserver 192.168.168.154:8081 & [1] 40450 [root@centos8 ~]# nohup: 忽略输入并把输出追加到'nohup.out' [root@centos8 ~]# 查看脚本“manage.py”的进程号: [root@centos8 ~]# ps -aux | grep "manage.py" |grep -v grep root 40450 0.9 2.0 130240 36932 pts/3 S 14:33 0:00 python3 /Mysite/Myapp/manage.py runserver 192.168.168.154:8081 root 40452 2.1 2.2 228328 40932 pts/3 Sl 14:33 0:01 /usr/local/bin/python3 /Mysite/Myapp/manage.py runserver 192.168.168.154:8081 [root@centos8 ~]# 终止脚本“manage.py”的运行:(等于终止Web应用“Myapp”) [root@centos8 ~]# kill -9 40450 [root@centos8 ~]# kill -9 40452 [1]+ 已杀死 nohup python3 /Mysite/Myapp/manage.py runserver 192.168.168.154:8081 [root@centos8 ~]# ###### Nginx反向代理+Django 目的:把客户端对本机的TCP 80端口的访问,反向代理到本机的TCP 8081端口。 Nginx的安装可参考: CentOS8安装LNMP+phpMyAdmin 查看Nginx的版本: [root@centos8 ~]# nginx -v nginx version: nginx/1.14.1 Nginx的反向代理配置:(Nginx默认使用的是TCP 80端口) [root@centos8 ~]# find / -name "nginx.conf" /etc/nginx/nginx.conf [root@centos8 ~]# [root@centos8 ~]# vi /etc/nginx/nginx.conf 插入: proxy_pass http://192.168.168.154:8081; 图片6.png 保存文件退出后,重启Nginx: [root@centos8 ~]# systemctl restart nginx 注释: 反向代理成功后,防火墙只需要打开TCP 80端口; Django使用的端口不得与Nginx使用的端口冲突; 反向代理成功,客户端直接访问服务器的IP地址即可:(访问本机的TCP 80端口等于访问本机的TCP 8081端口) http://192.168.168.154/ 图片7.png ###### Linux下卸载安装好的第三方库(Django): [root@centos8 ~]# pip3 uninstall Django -y Uninstalling Django-3.2.12: Successfully uninstalled Django-3.2.12 ###### 把文件1.txt里的链接地址筛选出来,并写到文件2.txt: [root@centos8 ~]# cat xx.py #coding=utf-8 from io import StringIO String_1 = StringIO() Path_1 = "./1.txt" f_name = open(Path_1,'r') fields_1 = f_name.readlines() #输出结果为列表,包含换行符 f_name.close() K_1 = "Downloading" #关键字 for Key_1 in fields_1: if K_1 in Key_1: Result_1 = f"{Key_1.split()[1]}\n" String_1.write(Result_1) #把输出结果追加到StringIO() Result_2 = String_1.getvalue() Result_3 = Result_2.strip() #去除左边和右边的空格、换行符 print(Result_3) #把最终的输出结果写入(覆盖)到文件2.txt;文件不存在时,会自动创建 Path_2 = r'./2.txt' f_name = open(Path_2,'w') print(Result_3,file=f_name) 脚本“xx.py”运行后的效果: [root@centos8 ~]# python3 xx.py http://mirrors.aliyun.com/pypi/packages/9c/0e/02b7eff8fac2c25ede489933d4e899f6e6f283ae8eaf5189431057c8d406/Django-3.2.12-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/05/40/d836d55fb3f467243ee839ab7b814822fda522cd395fa41e282684e71ee5/sqlparse-0.4.2-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/60/2e/dec1cc18c51b8df33c7c4d0a321b084cf38e1733b98f9d15018880fb4970/pytz-2022.1-py2.py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/fe/66/577f32b54c50dcd8dec38447258e82ed327ecb86820d67ae7b3dea784f13/asgiref-3.4.1-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里都是链接地址: [root@centos8 ~]# cat 2.txt http://mirrors.aliyun.com/pypi/packages/9c/0e/02b7eff8fac2c25ede489933d4e899f6e6f283ae8eaf5189431057c8d406/Django-3.2.12-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/05/40/d836d55fb3f467243ee839ab7b814822fda522cd395fa41e282684e71ee5/sqlparse-0.4.2-py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/60/2e/dec1cc18c51b8df33c7c4d0a321b084cf38e1733b98f9d15018880fb4970/pytz-2022.1-py2.py3-none-any.whl http://mirrors.aliyun.com/pypi/packages/fe/66/577f32b54c50dcd8dec38447258e82ed327ecb86820d67ae7b3dea784f13/asgiref-3.4.1-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==3.2 -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com Looking in indexes: http://mirrors.aliyun.com/pypi/simple Collecting wget==3.2 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 7.6M /down/Django-3.2.12-py3-none-any.whl 44K /down/sqlparse-0.4.2-py3-none-any.whl 492K /down/pytz-2022.1-py2.py3-none-any.whl 28K /down/asgiref-3.4.1-py3-none-any.whl 28K /down/typing_extensions-4.1.1-py3-none-any.whl 8.2M /down [root@centos8 ~]# 当切换到一台新的服务器时,一次性安装多个已经存在的whl文件: [root@centos8 ~]# pip3 install /down/*.whl Processing /down/asgiref-3.4.1-py3-none-any.whl Processing /down/Django-3.2.12-py3-none-any.whl Processing /down/pytz-2022.1-py2.py3-none-any.whl Processing /down/sqlparse-0.4.2-py3-none-any.whl Processing /down/typing_extensions-4.1.1-py3-none-any.whl Installing collected packages: typing-extensions, asgiref, sqlparse, pytz, Django Successfully installed Django-3.2.12 asgiref-3.4.1 pytz-2022.1 sqlparse-0.4.2 typing-extensions-4.1.1 [root@centos8 ~]# 安装成功: [root@centos8 ~]# pip3 freeze asgiref==3.4.1 Django==3.2.12 pytz==2022.1 sqlparse==0.4.2 typing-extensions==4.1.1 [root@centos8 ~]# 相关文章: CentOS8安装Flask+Apache2.4反向代理 CentOS6_Nginx反向代理+负载均衡(轮询) StringIO()函数

图片附件: 图片1.png (2022-3-30 20:09, 79.32 KB) / 下载次数 76
http://blog.zhuohua.store/attachment.php?aid=19256&k=5f50f4e7d025705016c5597e4d73d710&t=1714346080&sid=xJZhBW



图片附件: 图片2.png (2022-3-30 20:09, 60.65 KB) / 下载次数 82
http://blog.zhuohua.store/attachment.php?aid=19257&k=42a7de32ba7a541256c36c0fa8365c2f&t=1714346080&sid=xJZhBW



图片附件: 图片3.png (2022-3-30 20:10, 171.62 KB) / 下载次数 82
http://blog.zhuohua.store/attachment.php?aid=19258&k=a43217f84f0903fce5a3247514082add&t=1714346080&sid=xJZhBW



图片附件: 图片4.png (2022-3-30 20:11, 76.84 KB) / 下载次数 77
http://blog.zhuohua.store/attachment.php?aid=19259&k=b9369a720b79098771865fac9fccb455&t=1714346080&sid=xJZhBW



图片附件: 图片5.png (2022-3-30 20:11, 93.32 KB) / 下载次数 81
http://blog.zhuohua.store/attachment.php?aid=19260&k=87338416ff67a07bb453032c0f7d0061&t=1714346080&sid=xJZhBW



图片附件: 图片6.png (2022-3-30 20:13, 106.25 KB) / 下载次数 94
http://blog.zhuohua.store/attachment.php?aid=19261&k=44db6f6416b7257baf4fd7a63bac2e99&t=1714346080&sid=xJZhBW



图片附件: 图片7.png (2022-3-30 20:14, 92.56 KB) / 下载次数 76
http://blog.zhuohua.store/attachment.php?aid=19262&k=3289f815f8d0265519b6221236b80caf&t=1714346080&sid=xJZhBW






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