当前位置:   article > 正文

Centos8从零部署上线Django后台_centos 8 部署 django

centos 8 部署 django

一 系统环境安装

1.1 mysql

  1. #下载
  2. wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
  3. #安装数据源
  4. yum install mysql80-community-release-el8-1.noarch.rpm
  5. #检查数据源
  6. yum repolist enabled | grep "mysql.*-community.*"
  7. #禁用CentOS8自带mysql模块
  8. yum module disable mysql
  9. #安装数据库
  10. yum install mysql-community-server
  11. # 上面的不成功用下面的这个命令
  12. yum install mysql-community-server --nogpgcheck
  13. #启动mysql
  14. service mysqld start
  15. service mysqld status
  16. #显示mysql的随机密码
  17. grep 'temporary password' /var/log/mysqld.log
  18. #登录mysql
  19. mysql -u root -p
  20. #修改密码
  21. ALTER USER 'root'@'localhost' IDENTIFIED BY 'Test_123456';
  22. #查看密码策略
  23. SHOW VARIABLES LIKE 'validate_password%';
  24. #开放远程访问
  25. #1.创建权限用户记录
  26. create user 'root'@'%' identified by 'Test_123456';
  27. #2. 授权
  28. grant all privileges on *.* to 'root'@'%' with grant option;
  29. #开放3306端口

二 Django环境

2.1 安装Django

  1. # 安装Django
  2. pip3 install Django
  3. # 安装mysqlclient
  4. yum install mysql-devel
  5. pip3 install mysqlclient

2.2 配置uwsgi启动ini

sudo yum install gcc python3-devel

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple uWSGI==2.0.19.1
 

  1. [uwsgi]
  2. #项目目录
  3. chdir = /home/YanServer
  4. file = /home/YanServer/YanServer/wsgi.py
  5. master = True
  6. # 进程数
  7. processes = 4
  8. # 线程数
  9. threads=2
  10. max-requests = 5000
  11. #使用nginx连接时使用,Django程序所在服务器地址
  12. socket = 127.0.0.1:8002
  13. uid = 1000
  14. gid = 2000
  15. # 存放进程编号的文件
  16. pidfile=uwsgi.pid
  17. # vim /etc/sysctl.conf 在文件最后添加一行记录net.core.somaxconn = 1024
  18. # 执行sysctl -p重新load参数设置,这样会立即生效,并且以后重新启动机器也会生效。
  19. # listen=1024
  20. # 指定依赖的虚拟环境
  21. ;virtualenv=/server
  22. # websocket支持
  23. # http-websockets=true
  24. # 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
  25. daemonize=uwsgi.log

三 Nginx

3.1 安装Nginx

注意打开服务器安全组80端口

  1. # 安装
  2. sudo yum install -y nginx
  3. #
  4. sudo systemctl enable nginx
  5. # 启动NGINX
  6. sudo systemctl start nginx
  7. # NGINX启动状态
  8. sudo systemctl status nginx
  9. # 停止NGINX服务器
  10. sudo systemctl stop nginx
  11. # 重启
  12. sudo systemctl start nginx
  13. # NGINX修改,重新加载它而不必停止并重新启动
  14. sudo systemctl reload nginx

3.2 nginx.conf

centos安装完Nginx后,/etc/nginx/下没有sites-available 和 sites-enabled目录,自行创建,唯一注意的是需要再/etc/nginx/nginx.conf中添加:

include /etc/nginx/sites-enabled/*;

完整的/etc/nginx/nginx.conf环境:

  1. user www-data;
  2. worker_processes auto;
  3. pid /run/nginx.pid;
  4. include /etc/nginx/modules-enabled/*.conf;
  5. events {
  6. worker_connections 768;
  7. # multi_accept on;
  8. }
  9. http {
  10. ##
  11. # Basic Settings
  12. ##
  13. sendfile on;
  14. tcp_nopush on;
  15. tcp_nodelay on;
  16. keepalive_timeout 65;
  17. types_hash_max_size 2048;
  18. # server_tokens off;
  19. # server_names_hash_bucket_size 64;
  20. # server_name_in_redirect off;
  21. include /etc/nginx/mime.types;
  22. default_type application/octet-stream;
  23. ##
  24. # SSL Settings
  25. ##
  26. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
  27. ssl_prefer_server_ciphers on;
  28. ##
  29. # Logging Settings
  30. ##
  31. access_log /var/log/nginx/access.log;
  32. error_log /var/log/nginx/error.log;
  33. ##
  34. # Gzip Settings
  35. ##
  36. gzip on;
  37. # gzip_vary on;
  38. # gzip_vary on;
  39. # gzip_proxied any;
  40. # gzip_comp_level 6;
  41. # gzip_buffers 16 8k;
  42. # gzip_http_version 1.1;
  43. # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
  44. ##
  45. # Virtual Host Configs
  46. ##
  47. include /etc/nginx/conf.d/*.conf;
  48. include /etc/nginx/sites-enabled/*;
  49. server {
  50. listen 443 ssl; # 1.1版本后这样写
  51. server_name www.yanfriends.com; #填写绑定证书的域名
  52. ssl_certificate /etc/nginx/cert/4147706_www.xxx.com.pem; # 指定证书的位置,绝对路径
  53. ssl_certificate_key /etc/nginx/cert/4147706_www.xxx.com.key; # 绝对路径,同上
  54. ssl_session_timeout 5m;
  55. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
  56. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #密码加密方式
  57. ssl_prefer_server_ciphers on; #依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
  58. # ssl on; #开启ssl 这个不注释将只能通过https访问
  59. # location / {
  60. # root html; #站点目录,绝对路径
  61. # index index.html index.htm;
  62. # }
  63. location /static {
  64. alias /home/YanServer/static; # 指向django的static目录
  65. }
  66. #其他文件转wsgi处理
  67. location / {
  68. uwsgi_pass 127.0.0.1:8002;
  69. include /etc/nginx/uwsgi_params;
  70. }
  71. }
  72. }

3.3 两个文件夹

注意2个目录sites-available/,sites-enabled/,2个文件nginx.conf,uwsgi_params
sites-available/  这个文件夹的作用就是放置我们设置的文件,可以写很多设置文件放在这里备用,不影响nginx的运行
sites-enabled/   这个文件夹的作用是,放我们将要启动的设置文件(通常的做法是,通过在site-available/里的设置文件,创建一个软链接放在sites-enabled,)
uwsgi_params 程序nginx就是通过这个uwsgi_params配合我们刚刚设置的8002端口和uwsgi进行通信。
现在cd 进sites-available/创建我们的配置文件
~# cd /etc/nginx/sites-available/
~# vim your_project_nginx.conf

  1. server {
  2.     listen 8001;
  3.     server_name abqqe;
  4.     charset utf-8;
  5.     client_max_body_size 75M;
  6.     location /static {
  7.         alias /path-of-your-project/project/static;
  8.     }
  9.     
  10.     location /media {
  11.         alias /path-of-your-project/project/media;
  12.     }
  13.     location / {
  14.         uwsgi_pass 127.0.0.1:8002;
  15.         include /etc/nginx/uwsgi_params;
  16.     }
  17. }    

参数说明listen 8001 表示对外监听8001端口,你的网站通过8001这个端口通信;
server_name 域名,例如qq.com这种,如果没有就随便打一个,不影响nginx运行;
location /static 表示静态文件的放置路径;
location /media 表示客户上传文件的放置路径;
location / 表示和uwsgi的通信,uwsgi_pass 127.0.0.1:8002 通过环回接口127.0.0.1和刚刚uwsgi设置的8002端口,与本机的程序uwsgi进行通信,include 另外带上这个文件; /etc/nginx/uwsgi_params,是和uwsgi通信的一些设置;
your_project_nginx.conf文件写好之后创建软链接(创建快捷方式放到sites-enabled/);

# ln -s /etc/nginx/sites-available/your_project_nginx.conf /etc/nginx/sites-enabled/your_project_nginx.conf

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/508343
推荐阅读
相关标签
  

闽ICP备14008679号