标题:
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命令查看目录结构:
下载
(79.32 KB)
2022-3-30 20:09
笺注: 如果提示没有tree命令的话,就安装
yum -y install tree
以上是项目目录里的初始文件,
manage.py
是一个脚本文件,可以通过它管理Django服务; 启动Django的Web应用“Myapp”: cd /Mysite/Myapp/ python3
manage.py
runserver 192.168.168.154:
8081
下载
(60.65 KB)
2022-3-30 20:09
笺注: 192.168.168.154为服务器IP地址; 这里的访问端口设置为
8081
,即TCP 8081端口,也可以自定义为别的数字的; Django的Web应用“Myapp”运行中的效果:(组合键Ctrl+c可结束程序的执行)
下载
(171.62 KB)
2022-3-30 20:10
客户端访问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.
下载
(76.84 KB)
2022-3-30 20:11
解决方法: [root@centos8 ~]# vi /Mysite/Myapp/Myapp/settings.py ALLOWED_HOSTS = [] 修改为: ALLOWED_HOSTS = [
'*'
] 重新启动Web应用“Myapp”,客户端再刷新页面即可:(建议使用Firefox浏览器)
下载
(93.32 KB)
2022-3-30 20:11
笺注: 一旦结束脚本的运行,客户端就无法访问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
;
下载
(106.25 KB)
2022-3-30 20:13
保存文件退出后,重启Nginx: [root@centos8 ~]# systemctl restart nginx 注释: 反向代理成功后,防火墙只需要打开TCP 80端口; Django使用的端口不得与Nginx使用的端口冲突; 反向代理成功,客户端直接访问服务器的IP地址即可:(访问本机的TCP 80端口等于访问本机的TCP 8081端口) http://192.168.168.154/
下载
(92.56 KB)
2022-3-30 20:14
###### 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