windows环境下apache+SSL+django+wsgi+域名+什么的部署服务器

环境是64位windows,python3.7(64位),apache24(64位),

SSL是证书文件啦,有免费的也可以付费的,例如我使用的是阿里云的免费证书:
https://common-buy.aliyun.com/?spm=5176.2020520163.cas.1.596cc2vFc2vFEZ&commodityCode=cas#/buy

在这里插入图片描述
在这里插入图片描述

然后该买域名买域名去:
https://wanwang.aliyun.com/domain?spm=5176.8076989.1407540.5.546b18387vFkwP

我是申请了SSL才发现要绑定域名啥的,这和需要和证书匹配,总之假设它叫www.yuming.com吧,然后你下载下来的适配apache的SSL证书文件应该是这货:
在这里插入图片描述
与此同时你的apache应该已经准备好了吧,没有的话请去下载:apache:https://www.apachelounge.com/download/

然后你问我apache怎么配置啥的其实我不太懂啦,我用的笨方法:直接解压后从CMD控制台 转到\Apache24\bin跑httpd.exe,有啥报错百度啥报错就行了;运行没问题就是跑起来了,打开网址自己试下,访问不到可能是端口没开。(百度一下怎么配就好了,没有很难)

然后你问我怎么把django框架的项目放进apache去,嗯……说来话长……建议自己百度下,长话短说:
下载mod_wsgi模块:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi 这个是要解压后出一个“mod_wsgi.cpXX-win_amd64.pyd”放到Apache的 Apache24\modules模块文件夹下去的,之后在Apache24\conf\httpd.conf 这个文件里启用它,你就有了加载wsgi模块的apache。


Listen 0000#监听端口自己改啦
ServerName  www.yuming.com#服务器名称啦

LoadModule wsgi_module modules/mod_wsgi.cpXX-win_amd64.pyd #也有的文件把拓展名改.so放在这里的
…………………………
WSGIScriptAlias / D:/my_py/django_https/mydjango/mydjango/wsgi.py
<Directory D:/my_py/django_https/mydjango/mydjango>
	#require all denied
    Require all granted
</Directory>

然后去改你的djando配置文件:mydjango\mydjango\wsgi.py

import os,sys
from django.core.wsgi import get_wsgi_application
work_path = "D:\my_py\django_https\mydjango\mydjango"#我wsgi的绝对路径
if work_path not in sys.path:
    sys.path.append(work_path)
if project not in sys.path:
    sys.path.append(project)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mydjango.settings")#项目名.settings哦别忘了改
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

再去改你的mydjango\mydjango\settings.py文件:


ALLOWED_HOSTS = ['*']#这里变成“*”才能被别的计算机访问到呢

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'werkzeug_debugger_runserver',#抄的不知道干啥用
    'django_extensions',#抄的不知道干啥用
]

以上的配置基本可以跑http的django项目了,但不是https,因为听说https=http+ssl嘛,看到后面再弄
配置djando的时候建议看下IP地址,(使用正确的ip地址的话,即使是编译器跑,也可以被外网访问呢——部署在有公网ip服务器的情况下),这个时候你应该就有了能独立跑的gjango框架,缺啥库用啥包什么的报错会告诉你的,当然百度也会(直接搜报错信息)

    hostname = socket.gethostname()
    print(socket.gethostname())#主机名
    print(socket.gethostbyname(hostname))#IP地址

#############################################
现在你有了有效的证书文件、可以独立跑的djando项目、还有加载了wsgi模块的apache,下面给apache加上SSL。你就有了https

官方给的配置说明我照着做没做出来:但也是很有用的
https://help.aliyun.com/document_detail/98727.html?spm=5176.2020520163.0.0.596cc2vFc2vFEZ

参照后面做出来的,大概就是在“Apache24\conf\extra”里新建个配置文件我起名httpd-ssl2.conf,写好监听端口和你的django项目路径:然后被\Apache24\conf\httpd.conf引用一下,httpd.conf里面哪些模块该启用官方文档告诉你了

……
LoadModule rewrite_module modules/mod_rewrite.so
……
LoadModule ssl_module modules/mod_ssl.so
……
Include conf/extra/httpd-ssl.conf#这个说到了,就是它卡了我两天,最后换了个httpd-ssl2就好了
……

自己去看下嘛:https://blog.csdn.net/A1344714150/article/details/89521019

我的http-ssl2.conf代码也差不多:

Listen 0001#你的https端口监听地址
<VirtualHost *:0001>
  SSLEngine on#抄官方的
  SSLProtocol all -SSLv2 -SSLv3#抄官方的
  SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM#抄官方的
 
  SSLCertificateFile "${SRVROOT}/conf/0000000_yuming.com_public.crt"#我写的相对地址啊写
  SSLCertificateKeyFile "${SRVROOT}/conf/0000000_yuming.com.online.key"#你要是不放心就写绝对地址
  SSLCertificateChainFile "${SRVROOT}/conf/0000000_yuming.com.online_chain.crt"#证书就这仨文件
  DocumentRoot "${SRVROOT}/htdocs"
  
WSGIScriptAlias / D:/my_py/django_https/mydjango/mydjango/wsgi.py#wsgi文件的路径

<Directory D:/my_py/django_https/mydjango/mydjango>#django项目文件的路径
    Require all granted
</Directory>
</VirtualHost>

这个时候再跑apache,访问域名+新的端口号,就是https了。

你要是配出来了记得点个赞,好让我知道我帮助了别人。
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值