Django 项目部署上线指南
本帖最后由 黑夜 于 2019-11-11 17:52 编辑## uWSGI 的配置
1.安装 uWSGI。
```
pip install uwsgi
```
2.修改 uWSGI 的配置文件(`/root/fishc.com/conf/uwsgi.ini`)。
```
base=/root/fishc.com
name=teamproject
master=true
processes=4
pythonhome=%(base)/venv
chdir=%(base)/code/%(name)
pythonpath=%(pythonhome)/bin/python
module=%(name).wsgi
socket=172.18.61.250:8000
logto=%(base)/logs/uwsgi.log
```
> 说明:可以先将 “通信的地址和端口” 项等号前面改为 http 来进行测试,如果没有问题再改回 成 socket,然后通过 Nginx 来实现项目的“动静分离”(静态资源交给 Nginx 处理,动态内容交给 uWSGI 处理)。按照下面的方式可以启动 uWSGI 服务器。
3.启动服务器。
```
uwsgi --ini conf/uwsgi.ini
```
## Nginx
1. 安装 Nginx
```
yum -y install nginx# CentOS
apt install nginx # Debian/Ubuntu
```
2.修改全局配置文件(`/etc/nginx/nginx.conf`)。
```
# 配置用户
user root;
# 工作进程数(建议跟CPU的核数量一致)
worker_processes auto;
# 错误日志
error_log /var/log/nginx/error.log;
# 进程文件
pid /run/nginx.pid;
# 包含其他的配置
include /usr/share/nginx/modules/*.conf;
# 工作模式(多路IO复用方式)和连接上限
events {
use epoll;
worker_connections 1024;
}
# HTTP服务器相关配置
http {
# 日志格式
log_formatmain'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 访问日志
access_log/var/log/nginx/access.logmain;
# 开启高效文件传输模式
sendfile on;
# 用sendfile传输文件时有利于改善性能
tcp_nopush on;
# 禁用Nagle来解决交互性问题
tcp_nodelay on;
# 客户端保持连接时间
keepalive_timeout 30;
types_hash_max_size 2048;
# 包含MIME类型的配置
include /etc/nginx/mime.types;
# 默认使用二进制流格式
default_type application/octet-stream;
# 包含其他配置文件
include /etc/nginx/conf.d/*.conf;
# 包含项目的Nginx配置文件
include /root/project/conf/*.conf;
}
```
3.编辑局部配置文件(`/root/fishc.com/conf/nginx.conf`)。
```
server {
listen 80;
server_name _;
access_log /root/fishc.com/logs/access.log;
error_log /root/fishc.com/logs/error.log;
location / {
include uwsgi_params;
uwsgi_pass 172.18.61.250:8000;
}
location /static/ {
alias /root/fishc.com/stat/;
expires 30d;
}
}
server {
listen 443;
server_name _;
ssl on;
access_log /root/fishc.com/logs/access.log;
error_log /root/fishc.com/logs/error.log;
ssl_certificate /root/project/conf/cert/214915882850706.pem;
ssl_certificate_key /root/project/conf/cert/214915882850706.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
include uwsgi_params;
uwsgi_pass 172.18.61.250:8000;
}
location /static/ {
alias /root/fishc.com/static/;
expires 30d;
}
}
```
1. 测试 nginx 配置文件的有效性。
```
nginx -t
```
## Docker 部署
更新中....
## QQ 群
最近建立一个 鱼C - 全栈群,有兴趣的可以一起可以交流 794616458
{:10_256:}
页:
[1]