服务器终于部署成功啦

2019-5-9 20:40:29

终于弄完了,贴上步骤先(在Linux总结里面也有)

好有成就感的样子,已经成功部署自己的项目真的感觉很爽!中午刚整理完Linux笔记

Linux 笔记

 

经历了小半个月终于部署完了自己项目!感觉到自己真的很开心!

越努力,越幸运!永远不要高估自己!

 

 

关于Nginx 重启报错问题!困扰了好久终于解决了! 

1.nginx 重新加载命令./nginx -s reload,出现

nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"问题。

解决办法:

                 第一步:执行命令  killall -9 nginx   杀掉nginx 进程

                 第二步:执行命令  /opt/nginx1-12/sbin/nginx  -c  /opt/nginx1-12/conf/nginx.conf  

                              重新加载配置文件

                 第三步:执行命令   /opt/nginx1-12/sbin/nginx  -s reload 重新启动nginx

注意: 第二步是自己的Nginx的所在目录

 

服务器部署自己的bbs项目!(Nginx+uWsgi+Django1.11.1+mariadb+virtualenvwrapper+supversior)
项目源码在自己的GitHub中:  www.github.com/TrueNewBee/my_blogs
1.准备python环境,准备虚拟环境,激活了虚拟环境 mkvirtualenv nbcrm 检测是否虚拟环境正常 which pip3 which python3 worken nbcrm (3,4由于没用mysql故忽略,根据实际情况) 2.1.安装django模块(此时的操作都是在nbcrm这个虚拟环境下了) pip3 install django==1.11.11 1.2.安装pymysql连接mysql数据库 pip3 install pymysql 1.3.安装django的一个django-multiselectfield pip3 install django-multiselectfield 1.4.解决项目的数据库连接问题,修改settings.py 1.启动linux的数据库,创建对应的数据库,密码设置等等 create database nb_crm; 2.更改settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'nb_crm', #数据库名 'HOST': '127.0.0.1', #这里服务器的ip地址 'PORT': 3306, #端口 'USER': 'root', #用户名 'PASSWORD': 'redhat123', #用户密码 } } 3.更改允许主机 ALLOWED_HOSTS = ['*'] 4.线上关闭debug debug=True ******************************************* 使用uwsgi启动django(没有静态文件,需通过Nginx配合使用才有) 1.安装uwsgi pip3 install -i https://pypi.douban.com/simple uwsgi 2.通过uwsgi命令启动python应用 uwsgi --http 0.0.0.0:8888 --wsgi-file test1.py --http 指明是http协议 --socket 启动一个socket 链接 --wsgi-file 指明一个python应用文件 3.通过uwsgi启动django项目(问题是,uwsgi不处理static静态文件的配置) uwsgi --http :8888 --module Nb_crm.wsgi 4.uwsgi可以热加载项目 uwsgi --http :9999 --module mycrm.wsgi --py-autoreload=1 --py-autoreload是告诉uwsgi自动重启加载django项目 5.通过uwsgi的配置文件启动项目(把这个文件放在项目的根目录中,和manage.py同级) 1.手动创建uwsgi.ini文件 touch uwsgi.ini 2.写入如下配置 [uwsgi] #项目的绝对路径,定位到项目的第一层 chdir = /opt/my_blogs #指明项目的wsgi文件路径(/my_blogs/bbs_demo/uwsgi.py) module = bbs_demo.wsgi #指明你的虚拟解释器的第一层路径 home = /root/Envs/bbs#指明通过uwsgi,启动多少个进程 processes = 5 #非常重要 #非常重要 #非常重要 #如果你已经配置了nginx(启动了nginx服务,配置了uwsgi_pass),请用这个socket连接 socket = 0.0.0.0:8000 #如果你没用nginx,想通过uwsgi直接启动web服务,指明http协议 # http = 0.0.0.0:9999 #在退出uwsgi环境后,清空环境变量 vacuum = true module :可以这么来理解,对于- myweb_uwsgi.ini文件来说,与它的平级的有一个NB_crm目录,这个目录下有一个wsgi.py文件 ******************************************* 6.通过配置文件启动NB_crm(注意uwsgi不会处理静态文件,如果有,也是浏览器的缓存!!!!) uwsgi --ini uwsgi.ini 7.配置django的settings.py,收集所有NB_crm项目所需的静态文件 1.#通过命令,收集整个项目所有的静态文件,放入到/opt/static/ STATIC_ROOT='/opt/static/' 2.执行命令 python3 manage.py collectstatic 3.此时my_blogs的所有静态文件,都跑到/opt/static/底下了 (bbs) [root@node1 /opt/my_blogs11:09:33]#ls /opt/static/ admin css imgs js plugins 8.配置nginx 1.配置一个网站入口,当用户访问192.168.12.96:80 这个web应用时,自动将请求转发给uwsgi,uwsgi处理后,返回给nginx,返回给用户 当请求是192.168.12.96:80的时候,其实访问的是192.168.12.96:9999 这是动态请求,因为我是找到的uwsgi #匹配度最低的写法,因此就是任何的请求都访问到这里 2.通过nginx去处理静态文件 3.nginx.conf配置如下 #定义负载均衡池,里面放入uwsgi的地址 upstream bbs { server 0.0.0.0:8000; } server { listen 80; server_name 112.74.32.62; #讲nginx入口的请求,直接反向代理给uwsgi location / { uwsgi_pass bbs; include /opt/nginx1-12/conf/uwsgi_params; } #通过nginx处理nbcrm的静态文件 location /static { alias /opt/static/; } } 9.更改uwsgi.ini ,指明socket连接,结合uwsgi 和nginx #如果你已经配置了nginx,请用这个socket连接 socket = 0.0.0.0:8000 10.启动uwsgi.ini (-d 后台运行) uwsgi -d --ini uwsgi.ini 启动nginx /opt/nginx1-12/sbin/nginx -t 检测nginx.conf 配置文件的语法正确性 /opt/nginx1-12/sbin/nginx -s reload #平滑重启(修改了nginx配置文件,不重启服务就加载配置且生效) 并且访问nginx的域名入口,查看是否能访问到uwsgi项目,并且静态文件是否正常 112.74.32.62 查看浏览器状态 # 到这一步已经把网站部署完成了!感觉很吊的样子(已经很成功的访问)

******************************************* 11.配置supversior,管理uwsgi进程 注意,请退出虚拟环境,在宿主机环境下,安装supvervisor 1.安装easy_install ,python2的软件包管理工具 ,如果有了可以忽略 yum install python-setuptools #安装软件 easy_install supervisor 2.使用supervisor命令,常用命令如下 生成配置文件 echo_supervisord_conf > /etc/supervisord.conf 3.修改配置文件,添加任务,按照自己的机器环境修改此命令 [program:s14nbcrm] #启动uwsgi的命令就是这个 command=/root/Envs/nbcrm/bin/uwsgi --ini /opt/NB_crm/uwsgi.ini #自动启动uwsgi,挂了之后自动加载 autorestart=true 4.启动supvervisord服务,启动uwsgi #服务端命令,用于启动这个服务 supervisord -c /etc/supervisord.conf 5.通过命令管理uwsgi supervisorctl 直接回车,进入交互式管理状态 [root@node1 ~ 11:53:32]#supervisorctl s14nbcrm RUNNING pid 2008, uptime 0:01:56 也可以通过命令交互式的管理uwsgi #服务端启动后,通过命令管理软件 supervisorctl start s14nbcrm supervisorctl stop s14nbcrm supervisorctl status s14nbcrm

 

posted @ 2019-05-09 21:13  我想喝杨枝甘露~  阅读(143)  评论(0编辑  收藏  举报