Job Search Engine


1049 浏览 5 years, 8 months

2.20 部署

版权声明: 转载请注明出处 http://www.codingsoho.com/

部署

JSE正常部署没有任何问题

但是在部署jse_spide时碰到了问题,因为这个是python3开发的,而我的云主机里的apache是基于python2的,没有简单的兼容方案。

所以我打算用ngnix来试试看

ngnix

下载

去nginx.org下载,不要去.com

启动

启动时不要双击ngnix.exe文件,网上说,这个做有很多问题,用下面命令

start nginx

修改conf目录下的nginx.conf文件

gunicorn

gunicorn -w 3 -b 127.0.0.1:8082 jse_scrap.wsgi:application

# ImportError: No module named 'fcntl'

!!!失败

flup /fastcgi

manage.py runfcgi 在django 1.8之后不支持

!!!失败

uwsgi

window下不支持

2 apache

最后决定装两个不同版本的apache

参考如下 Django在Windows上的部署

结果显示如下

不能两个apache都启动在80端口上,第二个apache启动在8082(可用其他)端口, 如果是在阿里云,记得开放这个端口

[阿里云] - [安全组配置] - [配置规则],添加8082端口

因为和另外一个网站是跨域访问,需要添加跨域配置,可以加jse.codingsoho.com添加到CORS_ORIGIN_WHITELIST,或者设置CORS_ORIGIN_ALLOW_ALLTrue.

# CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = (
    # '<YOUR_DOMAIN>[:PORT]',
    'jse.codingsoho.com'
)

跨域访问时,ajax url用绝对地址

function register_scrab() {
    event.preventDefault();
    $.ajax('{{ajax_host}}',{

最终网站地址 http://jse.codingsoho.com/

遗留问题

时区问题

如果settings设置了时间配置如下

TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True

存储时mysql是当前时间,显示时会在这个时间上添加时间差,这样跟实际时间就差了8个小时

查看django时区配置https://docs.djangoproject.com/en/2.1/topics/i18n/timezones/#time-zones

When support for time zones is enabled, Django stores datetime information inUTC in the database, uses time-zone-aware datetime objects internally, andtranslates them to the end user’s time zone in templates and forms.

所以问题出在mysql的配置,存储时应该存UTC配置,而不应该存储当前时区时间

简单一点也可以取消timezone或者统一用utc时间

参考文档

参考文档