Centos7.5 64位操作系统部署django服务nginx+uwsgi的方法

    科技2024-06-15  76

    Centos7.5 64位操作系统部署django服务nginx+uwsgi的方法 安装过程中有两个大坑: 1.安装后python3不能用pip3安装各种包的问题,当出现如下错误提示: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. Could not fetch URL https://pypi.python.org/simple/django/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=‘pypi.python.org’, port=443): Max retries exceeded with url: /simple/django/ (Caused by SSLError(“Can’t connect to HTTPS URL because the SSL module is not available.”,)) - skipping Could not find a version that satisfies the requirement django3.0.3 (from versions: ) No matching distribution found for django3.0.3 解决办法:在安装之前先用yum install openssl 安装ssl 包 2. 安装后python3不能用yum, 解决办法:安装python3之前将所有需要用yum下载的包都提前下载 原因是:yum 是python2.7.5中自带的,安装python3之后将不可用, 为了避免麻烦,安装python3之前将所以需要yum下载的包都提前下载

    项目上线正式步骤如下: 一 ,安装python3之前将所有需要的支持包下载好: yum -y install wget gcc make yum install openssl-devel openssl bzip2-devel expat-devel gdbm-devel mysql-devel yum install sqlite-devel xz-devel tk-devel ncurses-devel readline-devel zlib-devel 在服务器中解压,压缩,可以先安装支持ZIP的工具 yum install -y unzip zip

    二.项目中有数据库的还要安装mysql 下载mysql源安装包 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 安装mysql源 yum localinstall mysql57-community-release-el7-8.noarch.rpm yum install mysql-devel 安装MySQL yum install mysql-community-server 启动MySQL服务 systemctl start mysqld

    查看MySQL的启动状态 systemctl status mysqld 出现: Active: active (running) since Wed 2020-08-19 14:28:52 CST; 1min 16s ago 表示服务正在运行。 开机启动 systemctl enable mysqld cat /var/log/mysqld.log |grep password 查看初始密码Pwe:6I9aZ*WC

    用 mysql -uroot -p 初始密码 登录后再用下面的语句修改密码 alter user ‘root’@‘localhost’ identified by ‘SHuyang970819!$’; 重置密码(4种字符,每个字符2个以上和) 注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号, 并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误

    三,安装python3 切换到你想要下载到的目录cd /home (python3.6.5 的下载目录) mkdir /usr/local/python3 ( 创建python3.6.5的安装目录)

    切换到你想要下载到的目录下再用wget 命令下载工具包 所有用wget 下载的工具包都是如下这个流程: wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz

    xz -d Python-3.6.5.tar.xz

    tar -xvf Python-3.6.5.tar

    cd Python-3.6.5 (解压后进入解压的目录) prefix选项是配置安装的路径,执行后所有资源文件放在/usr/local/python3的路径中 (mkdir /usr/local/python3 创建python3.6.5的安装目录) ./configure --prefix=/usr/local/python3 --enable-optimizations make make install 在make与make install时可能要几分钟,请耐心等待,并注意安装后的提示,检查是否缺少支持包,如缺少某个包再用yum install 安装

    创建软连接(与windows系统下创建环境目录是同一个概念) 即在任意目录下输入python3都将执/usr/local/python3/bin/python3 ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

    如果想要删除软连接可用如下 rm -rf /usr/bin/python3 查看软连接 ls -l pip install --upgrade pip 升级版本号 查看Python3和pip3安装情况 这是通过编译的方式来安装的 输入 python3 –V 和 pip3 –V 进行测试 版本号 再安装django项目的各种支持包: 在centos7统下: pip3 install uwsgi pip3 install xxxx pip3 install xxxx

    四. 安装nginx rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install -y nginx systemctl start nginx.service 用此方法将安装在Centos7系统的 /etc/nginx目录下,下一步将修改Nginx配置文件,实现Nginx服务器与uwsgi服务器通信连接 切换到Centos7系统的 /etc/nginx目录 编辑nginx.conf文件, 用 nginx -V 命令查看nginx的版本与配置情况 configure arguments: –prefix=/etc/nginx nginx.conf 配置文件路径 –sbin-path=/usr/sbin/nginx 二进制可执行文件路径 –modules-path=/usr/lib64/nginx/modules 库文件路径 –conf-path=/etc/nginx/nginx.conf 配置文件路径 –error-log-path=/var/log/nginx/error.log 错误日志文件 –with-http_ssl_module ssl相关模块 –with-http_stub_status_module

    另外一种安装nginx的方法 cd /home/ wget http://nginx.org/download/nginx-1.18.tar.gz 下载完成后,执行解压命令:

    tar -zxvf nginx-1.18.tar.gz 进入解压后的nginx-1.18文件夹,依次执行以下命令:

    ./configure make make install nginx一般默认安装好的路径为/usr/local/nginx nginx安装好之后,在Centos7上输入nginx启动指令systemctl start nginx,然后在本地浏览器中输入Centos7系统的IP地址,可以看到nginx启动成功 然后再配置nginx.conf 在/usr/local/nginx/conf/中先备份一下nginx.conf文件, vi /usr/local/nginx/conf/nginx.conf 然后打开nginx.conf,把原来的内容删除,直接加入以下内容: user root; worker_processes auto;

    error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;

    pid logs/nginx.pid;

    events { worker_connections 1024; }

    http { include mime.types;

    default_type application/octet-stream; limit_req_zone $binary_remote_addr zone=allips:10m rate=30r/s; limit_req zone=allips burst=5 nodelay; sendfile on; #tcp_nopush on;

    #keepalive_timeout 0; keepalive_timeout 65;

    server { listen 80 default_server; server_name _;

    limit_conn?allips 10; #并发连接数为6

    #limit_conn_zone allips 6; limit_rate 100k; #限速为 100KB/秒 keepalive_requests 120; #单连接请求上限次数。 deny 36.112.61.34; #拒绝的ip36.112.61.34 return 403;

    } server { listen 80 ; #默认端口 listen 443 ssl; server_name gcdav.com;

    charset UTF-8; ssl_certificate #你的ssl 证书; ssl_certificate_key #你的ssl 证书; location /download { alias /home/file/; # 文件下载目录的配置 存放目录要以 '/' 结尾; index index.html; # autoindex on; autoindex_localtime on; autoindex_exact_size off; }

    location /static/ { # 静态文件存放目录要以 ‘/’ 结尾; expires 30d; autoindex on; add_header Cache-Control private; alias /home/ForumSystem/static/; }

    location / { # 项目根目录的配置 include uwsgi_params; uwsgi_pass 154.83.16.77:8090; # 这里端口8090与uwsgi端口要一致 uwsgi_read_timeout 200; } }

    } 配置好上面nginx之后 进入/usr/local/nginx/sbin/目录 执行./nginx -t命令先检查配置文件是否有错,没有错就执行以下命令: ./nginx 终端没有任何提示就证明nginx启动成功。 可以使用你的服务器地址查看,成功之后就会看到一个nginx欢迎页面。

    nginx的相关命令如下: cd /usr/local/nginx/sbin nginx: /usr/local/nginx/sbin 在此目录执行 ./nginx 启动 ./nginx -s quit 退出 ./nginx -s stop 停止 ./nginx -s reload 重新加载

    ps aux | grep uwsgi 查看uwsgi正在运行的进程 ps aux | grep nginx 查看uwsgi正在运行的进程 pkill -f uwsgi -9 终止 uwsgi正在运行的进程 pkill -f nginx -9 终止nginx正在运行的进程

    五:使用FileZilla将本地系统的django项目上传到centos7 的home 文件夹 测试uwsgi服务器能否正常运行,指令如下: uwsgi --http :8080 --chdir /home/youobject -w youobject.wsgi 本地系统访问http://10.68.1.124:8080,浏览器会出现你的项目的首页 uwsgi服务器测试成功后再配置你的项止的uwsgi文件 在你的项目目录下创建uwsgi.ini文件: [uwsgi] socket= :8090 #与你的nginx的端口要一致 chdir = /home/datalist module = datalist.wsgi master = true processes=4 vacuum=true

    六:启动服务器

    cd /usr/local/nginx/sbin nginx: /usr/local/nginx/sbin 在此目录执行 ./nginx 启动cd /home/datalist uwsgi --ini uwsgi.ini uwsgi -d --ini uwsgi.ini 后台运行 后台运行成功 :[uWSGI] getting INI configuration from uwsgi.ini 至此,整个采票django项目在centos7系统的布署己全部完成,另外出售项目的源代码,有意留言作者
    Processed: 0.012, SQL: 9