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_ALL
为True
.
# 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时间
参考文档
- 什么Django设置时区为TIME_ZONE = 'Asia/Shanghai' USE_TZ = True后,存入mysql中的时间只能是UTC时间
- django中的时区设置TIME_ZONE,USE_TZ
参考文档
- https://pypi.org/project/uWSGI
- Windows环境下安装和使用nginx
- nginx + django windows上部署 - fastcgi
- 初次部署django+gunicorn+nginx
- django,flup,nginx,fastcgi
- windows下安装设置Nginx+python+flup+django,并设为服务运行!
- Nginx + Gunicorn + Django 部署小记
- Django + Uwsgi + Nginx 的生产环境部署
- windows下使用nginx部署django程序 - runcgi windows nginx flup django 网站部署