建议:FreeBSD RELENG_6
使用心得:nginx处理大并发比较稳定,特别省内存,配置简单.
1.安装python
cd /usr/ports/lang/python
make install clean
2.安装flup
cd /usr/ports/www/py-flup
make install clean
3.安装django 1)
cd /usr/ports/www/py-django
make install clean
4.安装nginx
cd /usr/ports/www/nginx
make install clean
5.启动和管理flup的脚本 参考http://docs.djangoproject.com/en/1.0/howto/deployment/fastcgi/
5.1prefork方式
#!/bin/sh
# Replace these three settings.
PROJDIR="/home/user/myproject"
PIDFILE="$PROJDIR/mysite.pid"
SOCKET="$PROJDIR/mysite.sock"
cd $PROJDIR
if [ -f $PIDFILE ]; then
kill `cat -- $PIDFILE`
rm -f -- $PIDFILE
fi
exec /usr/local/bin/python manage.py runfcgi method=prefork socket=${SOCKET} pidfile=${PIDFILE} minspare=5 maxspare=10 maxchildren=40
5.2threaded方式
/usr/local/bin/python manage.py runfcgi method=threaded host=127.0.0.1 port=3033
6.配置nginx 参考http://wiki.codemongers.com/Main
nginx.conf
user www www;
worker_processes 5;
pid /var/run/nginx.pid;
error_log /var/log/httpd/error.log warn;
events {
worker_connections 10240;
use kqueue;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 4 2k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
sendfile on;
tcp_nopush on;
keepalive_timeout 75 20;
tcp_nodelay on;
client_max_body_size 10m;
client_body_buffer_size 256k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
client_body_temp_path /var/log/nginx/client_body_temp;
proxy_temp_path /var/log/nginx/proxy_temp;
fastcgi_temp_path /var/log/nginx/fastcgi_temp;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain text/html application/x-javascript text/xml text/css;
ignore_invalid_headers on;
include website.conf;
}
website.conf
6.1prefork方式
server {
listen 80;
server_name test.tmdxy.org;
access_log /var/log/httpd/access.log main;
location / {
# host and port to fastcgi server
fastcgi_pass unix:/tmp/test_tmdxy.sock;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_intercept_errors off;
}
location ^~ /media/ {
alias /home/www/django/test_tmdxy_org/meida/;
}
location ~* ^.+\.(gif|png|jpg|jpeg|css|swf|htm|html|asp|php|jsp|js|doc|txt)$ {
root /home/www/django/test_tmdxy_org/media/;
access_log off;
}
}
6.2threaded方式
server {
listen 80;
server_name test.tmdxy.org;
access_log /var/log/httpd/access.log main;
location / {
# host and port to fastcgi server
fastcgi_pass 127.0.0.1:3033;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_intercept_errors off;
}
location ^~ /media/ {
alias /home/www/django/test_tmdxy_org/meida/;
}
location ~* ^.+\.(gif|png|jpg|jpeg|css|swf|htm|html|asp|php|jsp|js|doc|txt)$ {
root /home/www/django/test_tmdxy_org/media/;
access_log off;
}
}
7.配置反向代理服务器
只需在server {}里加入
location /go/ {
proxy_pass http://192.168.1.5:8088/;
proxy_redirect http://192.168.1.5:8088/ /;
}
8.nginx+django推荐打的补丁 http://code.djangoproject.com/ticket/8874
主要解决,nginx+django,访问/的时候,无法正确映射到django的方法的问题.
分享到:
相关推荐
在构建高性能的Web应用时,Django作为Python的主流Web框架,经常与Nginx和uWSGI结合使用。Nginx是一个强大的反向代理服务器,用于处理静态资源和HTTP请求分发,而uWSGI则是一个应用服务器,能够高效地运行Django应用...
### Centos部署Django服务Nginx+uWSGI的方法详解 #### 一、概述 在CentOS系统中部署基于Django的服务时,通常会采用Nginx作为反向代理服务器,uWSGI作为应用服务器的方式。这种方式可以充分利用Nginx的高性能特性...
### Nginx配置优化、负载均衡与动静分离详解 #### 一、Nginx配置优化 在现代Web应用中,Nginx作为一种高性能的HTTP服务器和反向代理服务器,在提高网站响应速度、处理高并发连接方面起着至关重要的作用。通过对...
### Qt登录及Nginx上传回调及Django上传服务器等 #### 1. 开始 本文档继续前文的研究,重点在于使用Qt设计一个登录系统,该系统在用户登录成功后能够上传文件,并通过Nginx上传模块进行文件管理。同时,通过Django...
2. **Nginx**:作为前端的负载均衡器和反向代理服务器,Nginx监听外部端口8000,并将请求转发至内部Django应用所在的5050端口。此外,Nginx还负责反向代理Elasticsearch服务,使得外部可以直接通过Nginx的8081端口...
### 使用Nginx+uWsgi实现Python的Django框架站点动静分离 #### 知识点概述 在本文中,我们将详细介绍如何通过结合Nginx 和 uWsgi 实现一个高效的 Django 应用部署方案。这种方法的核心优势在于利用 Nginx 的强大...
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old ``` 将新编译的Nginx复制到相应目录: ```bash cd objs/ cp nginx /usr/local/nginx/sbin/ ``` 进行平滑升级: ```bash cd .. make upgrade ``...
django-on-docker 这是使用Nginx,Gunicorn和PostgreSQL在Docker上构建Django环境的示例。用法Git克隆$ git clone git@github.com:dsonoda/django-on-docker.git建立开发环境目标使用docker-compose在单个主机上设置...
在本文中,我们将深入探讨如何实现Django项目的部署,使用uwsgi和Nginx作为关键组件。Django是一个强大的Python Web框架,而uwsgi是一个高效的应用服务器,用于处理Web应用程序,而Nginx则是一个高性能的反向代理...
总结起来,"django-on-docker"项目是利用Docker容器化技术,搭建了一个包含Django应用、PostgreSQL数据库、Gunicorn服务器和Nginx反向代理的完整Web服务栈,同时还实现了通过LetsEncrypt自动获取HTTPS证书,以确保...
如果需要在服务器上部署,可以使用WSGI服务器如Gunicorn或uWSGI,再配合Nginx作为反向代理和静态文件服务器。 10. **二次开发**:由于Django的模块化设计,对现有系统的扩展和定制变得容易。开发者可以根据需求增加...
为了确保项目的顺利部署,我们将遵循一系列详细步骤,这些步骤将涵盖环境配置、Django安装、数据库设置、Nginx反向代理以及Gunicorn应用服务器的配置。 首先,确保您的系统是最新的,运行以下命令更新系统包: ```...
使用Postgres,Gunicorn和Nginx对Django进行Docker化是否想学习如何构建? 查看 。要使用这个项目吗?发展历程使用默认的Django开发服务器。 将.env.dev-sample重命名为.env.dev 。 更新docker-compose.yml和.env....
sendfile on; server { listen 80; server_name www.django.cn; charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8997; uwsgi_param UWSGI_SCRIPT mysite.wsgi; uwsgi_param ...
此外,Nginx可以与其他语言的服务配合,如Node.js、Ruby on Rails等,通过反向代理功能提供高效的Web服务。 总的来说,解压并配置Nginx.zip文件涉及到了系统环境的准备、配置文件的定制、依赖库的安装以及与其他...
【描述】"Customer management app on django" 描述了这个项目的核心功能,即用于管理客户信息的应用。在Django中实现这样的应用,通常会涉及到以下几个关键知识点: 1. **数据库模型**:Django的ORM(对象关系映射...
在 Digital Ocean 中使用 nginx 和 gunicorn 部署 Django 的 Fabric 集合 可用命令: command Send custom command with args or not. Usag... create_package Create virtualenv create_...
最后,将项目部署到服务器,如使用Gunicorn或uWSGI作为WSGI服务器,Nginx作为反向代理服务器,确保网站能够稳定、高效地对外提供服务。 通过以上步骤,我们便能利用Python Django框架构建一个功能完备的在线公交...