Centos7 下运行python项目(Python+Uwsgi + Nginx)

注意 :第一步,一定要先安装,否则后面会有莫名奇妙的问题 : yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel xz gcc zlib zlib-devel

yum install yun-utils make get

wget python地址(以tgz结尾的,例如 :Python-3.6.0.tgz )
tar xzf python名字
cd python名字
./configure 如果执行错误,查看 https://blog.csdn.net/qq_31306973/article/details/78538601
make 编译
make install 安装
—————- python 安装完毕 输入python3查看是否安装完毕

yun install nginx
y

—————-nginx 安装完毕

创建项目存在的路径

cd /var/

mkdir www 创建目录
cd www
mkdir mysite

把pycharm里面的项目放进去

python3 -m venv py3 py3 是虚拟环境的名字 如果报错,那么可能是python3默认需要的环境未安装成功,
需要 首先 安装 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel xz gcc zlib zlib-devel
然后重新 make , make install

安装 :yum -y openssl-d

source venv/bin/activate 打开虚拟环境
pip3 install flask 安装对应的插件
pip3 install uwsgi 安装 uwsgi 容器

—————–进行配置—————————–

—-配置nginx /etc/nginx/ 找到对应配置文件

cd /ect
cd /nginx
为防止改错,先复制一份config文件出来 [root@VM_0_13_centos nginx]# cp nginx.conf nginx.conf_bak

修改
user root; 原本 user user;
新增 gzip on;

注释
#    server {
#        listen       80 default_server;
#        listen       [::]:80 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;

#        # Load configur ation files for the default server block.
#        include /etc/nginx/default.d/*.conf;

#        location / {
#        }

#        error_page 404 /404.html;
#            location = /40x.html {
#        }

#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

保存信息

include /etc/nginx/conf.d/*.conf 副本配置在这

配置文件
例如 :test.conf

server {
   listen            80;
   listen 443 default ssl;  #使用https 需要监听该接口
   server_name       www.domain.com;
   charset           utf-8;
   access_log        /var/log/nginx/log/test.access.log     main;
   error_log         /var/log/nginx/log/test.error.log      warn;

#   ssl on;  #使用https 需要关闭该接口
   ssl_certificate      1_domain.com_bundle.crt;
   ssl_certificate_key  2_domain.com.key;
   ssl_session_timeout 5m;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
   ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
   ssl_prefer_server_ciphers on;

   location  /  {
     root   /var/www/test;

     include uwsgi_params;
     uwsgi_pass    127.0.0.1:5000;
     uwsgi_param UWSGI_PYHOME    /var/www/test/venv;
     uwsgi_param UWSGI_CHDIR     /var/www/test;
     uwsgi_param PYTHONPATH      /var/www/test;
     uwsgi_param UWSGI_MODULE    test;
     uwsgi_param UWSGI_CALLABLE  app;
   }
}
创建 vi uwsgi.ini 配置文件
[uwsgi]
enable-theads=true
thunder-lock=true
vhost=true
socket=127.0.0.1:5000
master=true
workers=4
max-requests=128

——-配置完成 ,启动——-

nginx -t -c /etc/nginx/nginx.conf 查看nginx是否存在语法错误如果success,那么直接运行下面指令

systemctl start nginx.service 启动nginx
source venv/bin/activate 打开虚拟环境
运行 uwsgi –ini uwsgi.ini (存放ini的文件目录)

辅助指令:
source venv/bin/activate 打开虚拟环境
deactivate  退出虚拟环境
ps -ef | grep nginx
kill -QUIT  进程号
systemctl status nginx.service可以看到具体的错误是什么
pkill -9 uwsgi 关掉服务器
nginx -s reload  重启

猜你喜欢

转载自blog.csdn.net/Chameleon_zhao/article/details/80857295