djnago + apache 部署 从 http 强跳 https

个人练手项目 >_< 简单的网站开发

首先当您写好您的django 项目 买好你的服务器 买好你的域名(这里的域名要进行备案.)

1.准备工作

服务器 windows server 2012 r2(虽然我知道用win的服务器很low,但是其他的我也不会啊!)

python 3.7.4 的准备:

apache 准备:

我用的是 mod_wsgi-4.5.24+ap24vc14-cp37- 从下面的网站下载用pip 安装 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

2.万事具备

我把我的apache 放到了c盘下

web 是我django 放置的地方 我的文件结构目录

django setting.py 配置 

# 好像改的就这么多
DEBUG = False
ALLOWED_HOSTS = ['hahaaa.cn','localhost','127.0.0.1','www.hahaaa.cn'] # '*',


# 确定静态文件路径?_?
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    # os.path.join(os.path.dirname(__file__),'..','static').replace('\\',''),
    os.path.join(BASE_DIR, 'static'),
    # os.path.join('static'),
)

apache 配置

主要配置的文件有 C:\Apache24\conf  文件夹下的 httpd.conf 配置如下 这里并不是完整的文件信息 只是我进行更改的列出来啦

Define SRVROOT "C:/Apache24"
ServerRoot "C:/Apache24"
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so # https 强转需要的
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule socache_dbm_module modules/mod_socache_dbm.so # https 强转需要的
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so # https 强转需要的
LoadModule ssl_module modules/mod_ssl.so # https 强转需要的
LoadModule vhost_alias_module modules/mod_vhost_alias.so
<IfModule unixd_module>
User daemon
Group daemon
</IfModule>
# 这个是我的邮箱
ServerAdmin [email protected]

# 网站发布的端口 只有80端口的才能被收录  这里要在防护墙里加80端口的入站规则
Listen 0.0.0.0:80
ServerName www.hahaaa.cn:80

<Directory />
    AllowOverride All
    Require all denied
</Directory>

DocumentRoot "C:/Apache24/htdocs"
<Directory "C:/Apache24/htdocs">
   Options Indexes FollowSymLinks
   AllowOverride All
   Require all granted
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<Files ".ht*">
    Require all denied
</Files>

ErrorLog "logs/error.log"
LogLevel warn
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access.log" common
    </IfModule>
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "C:/Apache24/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>

<Directory "C:/Apache24/cgi-bin">
    AllowOverride All
    Options None
    Require all granted
</Directory>

<IfModule headers_module>
    RequestHeader unset Proxy early
</IfModule>

<IfModule mime_module>
	TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz 
</IfModule>

#启动 httpd-vhosts.conf 配置域名
Include conf/extra/httpd-vhosts.conf

<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>
# https 强转需要的 启动 httpd-ssl.conf
Include conf/extra/httpd-ssl.conf
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

# mod_wsgi 链接 在cmd 中输入 mod_wsgi-express module-config 就可以看到相关路径啦
LoadFile "c:/users/administrator/desktop/python/python37.dll"
LoadModule wsgi_module "c:/users/administrator/desktop/python/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win32.pyd"
WSGIPythonHome "c:/users/administrator/desktop/python"

WSGIScriptAlias / "C:/web/ChpHahaa/ChpHahaa/wsgi.py"

# 项目目录
WSGIPythonPath "C:/web/ChpHahaa"
<Directory "C:/web/ChpHahaa/ChpHahaa">
    <Files wsgi.py>
        Require all granted
    </Files>
    # 这里的目的是让全部网页http 强转 https
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</Directory>

# 静态文件位置
Alias /static "C:/web/ChpHahaa/HLCHP/static"
<Directory "C:/web/ChpHahaa/HLCHP/static">
    AllowOverride None
    Options None
    Require all granted
</Directory>

 C:\Apache24\conf\extra\httpd-vhosts.conf

<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot "C:/web/ChpHahaa"
   ServerName localhost
   ServerAlias localhost
   ErrorLog "logs/localhost-error_log"

</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/web/ChpHahaa/ChpHahaa"
    ServerName hahaaa.cn
    ServerAlias www.hahaaa.cn
    ErrorLog "logs/localhost-error_log"

</VirtualHost>

C:\Apache24\conf\extra\httpd-ssl.conf

ServerName www.hahaaa.cn:443
ServerAdmin [email protected]
# 匹配证书 这里上面要是有相同的属性名注释掉
SSLCertificateFile "C:\Apache24\conf\ssl\hahaaa.cn.crt"
SSLCertificateKeyFile "C:\Apache24\conf\ssl\hahaaa.cn.key"
SSLCertificateChainFile "C:\Apache24\conf\ssl\hahaaa.cn_ca.crt"

3.扬帆起航

配置已经配置成功现在进入apache 的bin 文件 启动 ApacheMonitor.exe

启动服务 在网页中输入 hahaaa.cn

启动成功!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章