django+nginx+fastcgi+flug

本文详细介绍了Nginx服务器的配置文件nginx.conf的具体设置方法,包括用户权限、工作进程数、错误日志级别等基本配置,以及客户端超时时间、连接池大小等高级设置,并给出了静态资源缓存和FastCGI服务器的配置示例。
1:nginx.conf 配置文件------------------------------------------:

user www-data;
worker_processes 1;

error_log /var/log/nginx/error_log info;

events {
worker_connections 1024;
use epoll;
}

http {
# default nginx location
include /etc/nginx/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;
client_body_temp_path /home/corbe/workspace/mysite/log/client_body_temp; #/home/yourusername/projects/myproject/log/client_body_temp;
fastcgi_temp_path /home/corbe/workspace/mysite/log/fastcgi_temp; #/home/yourusername/projects/myproject/log/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;
server {
listen 80;
#server_name mydomainname.com;
server_name localhost;
index index.html;
root /home/corbe/workspace/mysite/public;
# static resources
#location /media/ {
# root /DIGEST/django-trunk/django/contrib/admin/media/;
#expires 30d;
#break;
#}

location ^~ /media/ {
alias /DIGEST/django-trunk/django/contrib/admin/media/; # --- this is importance: refer to django's media dir
}
location /admin_media/ {
expires 30d;
break;
}
location /favicon.ico {
expires 30d;
break;
}

location / {
# host and port to fastcgi server
fastcgi_pass 127.0.0.1:8080;
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_intercept_errors off;
}
location = /_.gif {
empty_gif;
access_log off;
}
access_log /home/corbe/workspace/mysite/log/localhost.access_log main;
error_log /home/corbe/workspace/mysite/log/localhost.error_log;

location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
}
}
}


2: ---------------------------------------------------------------
你需要启动fastcgi server (from the project folder):
python manage.py runfcgi host=127.0.0.1 port=8080 --settings=settings
### DjangoNginx部署教程 在CentOS 7.x上部署Django应用并与Nginx集成是一个常见的生产环境需求。以下是详细的配置过程: #### 一、安装必要的软件包 确保系统已安装Python、pip以及其他依赖项。接着通过`yum`或其他工具安装Nginx和uWSGI。 ```bash sudo yum install epel-release sudo yum install nginx uwsgi uwsgi-plugin-python3 ``` #### 二、配置Nginx服务 编辑Nginx的站点可用配置文件,通常位于`/etc/nginx/sites-available/`目录下。创建一个新的配置文件(如`myproject.conf`),并添加以下内容[^4]: ```nginx server { listen 80; server_name example.com; # 替换为实际的域名或IP地址 location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; # 对应uWSGI监听的socket地址 } location /static/ { alias /path/to/static/files/; # 替换为静态文件的实际路径 } } ``` 完成上述修改后,测试Nginx配置语法是否正确,并重新加载服务[^2]: ```bash sudo nginx -t sudo systemctl reload nginx ``` 如果一切正常,则会显示类似的消息:“syntax is ok”。 #### 三、配置uWSGI 在项目的根目录中创建一个名为`uwsgi.ini`的文件,用于定义uWSGI的行为[^3]。该文件的内容可能类似于下面这样: ```ini [uwsgi] chdir = /root/django-projects/myserver # 更改为您的项目路径 module = myserver.wsgi:application # 根据实际情况调整模块名 master = true processes = 4 threads = 2 socket = 127.0.0.1:8000 vacuum = true py-autoreload = 1 ``` 启动uWSGI服务时可执行以下命令: ```bash uwsgi --ini uwsgi.ini ``` #### 四、处理静态文件 对于Django中的静态资源管理,在开发环境中可以通过内置服务器提供支持;但在生产环境下推荐由Nginx负责托管这些文件。因此需先收集所有应用程序内的静态资产至单一位置[^3]: ```python python manage.py collectstatic ``` 随后更新Nginx配置中的`location /static/ {}`部分指向此集中存储区域。 --- ### 总结 以上步骤涵盖了从基础环境准备到具体参数设定的过程,能够帮助开发者顺利实现基于Linux系统的Django+Nginx架构部署方案[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值