生产环境有时,并不是为了一个项目而存在的。毕竟,域名是比较稀有的。

今天遇到这个问题,解决了。作个记录。

并且,如果将django项目部署在Nginx后面,那如何获取用户真实的IP地址呢?

下面就来解决吧。

一,gunicorn.ini的编写

bind = "127.0.0.1:xxxx"
workers = 4
errorlog = './gunicorn.error.log'
accesslog = './gunicorn.access.log'
timeout = 3000
loglevel = 'debug'
proc_name = 'gunicorn_proc'
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'
daemon = True
worker_connections = 1000
max_requests = 2000
graceful_timeout = 300
#loglevel = 'info'

二,nginx配置

location  /abc/ {
            proxy_redirect    off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:xxxx;
        }
	location ^~ /abc/static {
            	alias /xxx/abc/static;
        }

三,顺便,启停gunicorn的命令

gunicorn -c gunicorn.ini acsctl.wsgi

pkill - gunicorn

四,settings.py文件更改(注意DEBUG关闭及ALLOW_HOSTS打开)

STATIC_URL = '/abc/static/'
LOGIN_URL = '/abc/accounts/login/'

五,urls.py里,记得带上子目录前缀

。。。。
    path('abc/accounts/login/', user_login, name='login'),
。。。。

六,获得用户浏览器真实IP

        try:
            real_ip = self.request.META['HTTP_X_FORWARDED_FOR']
            if len(real_ip) > 1:
                ip = real_ip.split(",")[0]
        except Exception as e:
            try:
                ip = self.request.META['REMOTE_ADDR']
            except Exception as e:
                ip = "0.0.0.0"

使用gunicorn将django项目部署到生产环境的子目录下,在nginx后端获取客户真实IP地址的更多相关文章

  1. flask项目部署到生产环境的方案

    背景 使用Python+flask编写的一个小项目,在本地开发完毕后,需要部署到测试服务器上,这时候犯难了,因为之前没部署过这块东西,所以各种百度,总算是部署成功了,也对这个项目进行了jenkins持 ...

  2. Laravel 5 项目部署到生产环境的实践

    作者:mrcn链接:https://www.zhihu.com/question/35537084/answer/181734431来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  3. Django项目部署(django+guncorn+virtualenv+nginx)

    一.说明 为了django项目部署到生产环境上,能够稳定的运行,且能够同时指出http和https的访问,对django的部署进行了一些研究,决定采用django + gunicorn + virtu ...

  4. Django项目部署在Linux下以进程方式启动

    Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...

  5. Django项目部署(阿里云)(1)--基本功能实现

    新博客地址:http://muker.net/django-server.html 手头需要部署一个Django项目,前面的博客也因为偷懒也没有部署,这里记录一下部署过程.ps:其实网上比较靠谱的说明 ...

  6. django项目部署过程

    django项目部署过程 1.上传代码 用git或者其他工具,如scp 代码上传后保证每个应用下的migrations文件夹里只有一个__init__.py文件,自己的迁移文件不要上传上来,具体的gi ...

  7. Windows下django项目部署 通过Apache2.4+mod_wsgi

    经过几天踩坑,记录在Windows10下通过Apache2.4部署Django项目的过程 运行环境: 先说下环境,怎么安装倒是其次的,版本很重要,我是根据mod_wsgi的版本要求下载的各个版本(py ...

  8. Greenplum 数据库安装部署(生产环境)

    Greenplum 数据库安装部署(生产环境) 硬件配置: 16 台 IBM X3650, 节点配置:CPU 2 * 8core,内存 128GB,硬盘 16 * 900GB,万兆网卡. 万兆交换机. ...

  9. 转_Greenplum 数据库安装部署(生产环境)

    Greenplum 数据库安装部署(生产环境) 硬件配置: 16 台 IBM X3650, 节点配置:CPU 2 * 8core,内存 128GB,硬盘 16 * 900GB,万兆网卡. 万兆交换机. ...

随机推荐

  1. H5静态资源本地化实践

    现在很多app都是通过webview内嵌H5的页面,这种方式的好处就是无需发版就能更新线上的内容,而且可以做到多平台的统一开发,节约开发成本.但是这种模式也带来了一定的问题,web开发很大程度依赖于网 ...

  2. Redis模块学习笔记(一)RediSearch简单使用

    说明:安装的Redis服务器必须为 4.0 以上版本,通过info命令查看 > INFO redis_version: 一.安装 RediSearch git clone https://git ...

  3. DotNetBar滚动条的疑似BUG

    1.重现过程,在winform窗体上拖一个VScrollBarAdv 2.Button里点击跟踪代码 3.Value居然是-5,,而不是0,这是直接赋值,不是手动拖的呀. 4.解决办法,将LargeC ...

  4. Javaweb学习笔记——(三)——————JavaScript基础&DOM基础

    day031.js的String对象 **创建String对象 ***var str = "abc"; **方法和属性(文档) ***属性 lenth:字符串的长度 ***方法 ( ...

  5. QSS-qt样式表

    QSS即Qt StyleSheet(Qt样式表)的简称,是一种用来自定义控件外观的强大机制,QSS可以让我们的程序界面更加漂亮 每条QSS样式都由两部分组成:1. 选择器,该部分指定要美化的控件  2 ...

  6. js加减法运算多出很多小数点

    链接:http://www.jb51.net/article/73043.htm 解决方法:解决这种问题两种方法,第一种就是利用JavaScript 的toFixed(n) 方法,直接获取N 位小数, ...

  7. yolov3实践(一)

    很多博友看了我的第一篇博客yolo类检测算法解析——yolo v3,对其有了一定的认识和了解,但是并没有贴出代码和运行效果,略显苍白.因此在把篇博客理论的基础上,造就了第一篇实践文章,也就是本文.只要 ...

  8. PWA,SPA,MPA

    PWA渐进式应用 特点: 不会部署到应用商店. 离线应用,通过设备进行存储规划 在发布了pwa的网站,浏览器会询问是否安装app到主屏. 方便分享,通过url. 可推送通知 . 通过service w ...

  9. Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1

    create table my_user (    id tinyint(4) not null auto_increment,    account varchar(255) default nul ...

  10. DFP算法(转载)

    转载链接:http://blog.csdn.net/itplus/article/details/21896981 注意:式(2.25)中,蓝色变量之所以是实数可以根据它们的矩阵系数相乘为1*1得到.