一、系统配置
hostnamectl set-hostname xxx
|
二、所需软件安装
Python3.6及以上
MySQL5.6及以上
Nginx
Git
三、安装&创建虚拟环境
四、项目代码注意事项
在setting.py中修改
DEBUG = False
ALLOWED_HOSTS = ['*']
|
五、安装与配置uwsgi
nginx是门户,它负责转发,它转发动态请求给uwsgi,然后uwsgi在转给django处理。
在项目文件夹与manage.py同级的目录下创建uwsgi.ini,文件内容如下(注意路径):
[uwsgi] # uwsgi监听的socket,一会儿配置Nginx会用到 socket = 127.0.0.1:11001 # 在app加载前切换到该目录,设置为Django项目根目录 chdir = /srv/addcoder # 加载指定的python WSGI模块,设置为Django项目的wsgi文件 module = addcoder.wsgi # 启动一个master进程来管理其他进程 master = true # 工作的进程数 processes = 2 # 每个进程下的线程数量 threads = 4 # 当服务器退出的时候自动删除unix socket文件和pid文件 vacuum = true # 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器 daemonize = /srv/addcoder/uwsgi.log
|
uwsgi --ini uwsgi_addcoder.ini # 出现getting INI configuration from uwsgi.ini(成功)
|
# 启动uwsgi服务器 uwsgi --ini uwsgi_addcoder.ini
# 查看uwsgi是否运行 ps -aux | grep uwsgi
# 查看端口号占用 netstat -anp | grep 11001
# 结束uwsgi进程 pgrep uwsgi | xargs kill -s 9
|
六、配置Nginx
配置nginx,若启动失败,测试配置文件是否正确
nginx.conf文件尽量不做修改,只需在最末尾加载配置文件,然后在conf.d文件中放入不同的conf文件进行编辑配置。
include /etc/nginx/conf.d/*.conf
|
vim /etc/nginx/conf.d/addcoder.conf
|
# 网站配置 server { # 设置监听端口 listen 80; # 设置对外访问入口,可以是域名可以是公网IP server_name blog.xxx.com; # 设置虚拟主机的基本信息 location / { include uwsgi_params; uwsgi_pass 127.0.0.1:11001; uwsgi_read_timeout 60; } # 静态文件设置 location /static { expires 30d; alias /srv/addcoder/static/; } # 创建Let’s Encrypt免费SSL证书临时文件 location /.well-known/acme-challenge { alias /srv/addcoder/.well-known/acme-challenge; } # 允许网段 allow all; # 设置访问的语言编码 charset UTF-8; # nginx的超时参数设置为60秒 send_timeout 60; # 实IP在X-Forwarded-For请求头中 real_ip_header X-Real-IP; # X-Forwarded-For请求头中的最后一个IP当成真实IP real_ip_recursive off; # 设置fastcgi缓冲区为8块128k大小的空间 fastcgi_buffers 8 128k; # 上传文件大小限制,默认1m client_max_body_size 0; # 访问日志记录 access_log /var/log/nginx/addcoder_access.log; # 错误日志记录 error_log /var/log/nginx/addcoder_error.log; # 开启gzip gzip on; # 是否在http header中添加Vary:Accept-Encoding gzip_vary on; # 设置压缩所需要的缓冲区大小 gzip_buffers 32 4K; # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间 gzip_comp_level 5; # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩 gzip_min_length 100; # 配置禁用gzip条件,支持正则 gzip_disable "MSIE [1-6]\."; # 进行压缩的文件类型 gzip_types application/javascript text/css text/xml; # HTTP严格传输安全的max-age需要大于15768000秒 add_header Strict-Transport-Security "max-age=31536000"; }
|
七、启动服务器
# 切换到项目目录下运行 uwsgi --ini uwsgi_addcoder.ini
# 重启nginx服务 systemctl restart nginx
|