网站部署前先安装Nginx服务器 sudo apt-get nginx
启动Nginx sudo service nginx start
1. uwsgi部署
配置文件
- 从配置文件启动 uwsgi (socket) uwsgi.ini
uwsgi --ini uwsgi.ini
- 找到要部署的项目文件目录下,在manage.py同级目录中创建 uwsgi.ini文件内容如下:
[uwsgi] socket = 127.0.0.1:5000 module = manage callable = app daemonize = /var/log/uwsgi.log
Nginx转发(HTTP)
- 在
/etc/nginx/conf.d
下增加yourproject.conf
server {
listen 80;
server_name 192.168.242.130; # 你的服务器IP地址
location / {
# 加载 uwsgi 配置
include uwsgi_params;
# 将请求转发到 127.0.0.1:5000
uwsgi_pass 127.0.0.1:5000;
}
}
Nginx配置完成后重启Nginx sudo service nginx restart
2. Gunicorn部署
创建虚拟环境 python3 -m venv venv_django
启动虚拟环境 source venv_django/bin/activate
进入项目所在文件目录,安装项目依赖包
pip install -r requeirements.txt
ps:根据项目创建数据库,并迁移同步。
安装Gunicorn和gevent pip install gunicorn gevent
Nginx配置端口转发
server{
listen 80; # 监听的端口
server_name 127.0.0.1;
server_name 111.111.111.111;
server_name your_www;
#当请求这些server name的时候,nginx才会做反向代理,0.0.0.0是指全部
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# location 顾名思义,定位,就是当访问 / 的时候,nginx会将请求转给本地的8080端口,而后面的设置都是一些基本的配置,可以直接用
location /static {
alias /home/project/static;
}
# 这个就是配置静态文件的地方,要用绝对地址,对应最开始的目录形式,假设project就在/home下面,那么这样配置就可以的了,还有个前提是,你在开发的时候,采取了django的建议,每个app的静态文件都用多了一层app_name的文件夹来包住。
}
测试运行 gunicorn -w 2 -b 127.0.0.1:8000 项目名.wsgi:application
在项目根目录编写一个gunicorn.conf.py
文件,在里面填写gunicorn相关的配置。
workers = 2 # 定义同时开启的处理请求的进程数量,根据网站流量适当调整
bind = "0.0.0.0:8000"
然后启动服务:gunicorn -c gunicorn.conf.py 项目名.wsgi:appliction
---------------- 官方文档 ----------------
其他:
安装mysql
apt-get -y install mysql-server mysql-client libmysqlclient-dev mytop
创建mysql用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
授权用户某个数据库所有权限
GRANT ALL ON 数据库名.表名 TO 'username'@'%
Linux 将一个前台正在运行的任务切换到后台,三步
1. 暂停程序运行CTRL+Z
[oracle@isgis121 ~]$ sh ins.sh
^Z
[1]+ Stopped ins.sh
2. 查看暂停的程序
察看jobs使用jobs或ps命令可以察看正在执行的jobs。
[oracle@isgis121 ~]$ jobs -l
[1]+ 4524 Stopped ins.sh
jobs命令执行的结果,+表示是一个当前的作业,减号表是是当前作业之后的一个作业。
jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated
3. 切换程序至后台
bg将一个在后台暂停的命令,变成继续执行如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出.
[oracle@isgis121 ~]$ bg %1
[oracle@isgis121 ~]$ jobs -l
[1]+ 4524 Running ins.sh
4.切换程序至前台
也可以用 fg %[number] 指令把一个程序掉到前台运行
[oracle@isgis121 ~]$ fg %1
./tcpserv01
- 终止后台程序
也可以直接终止后台运行的程序,使用 kill 命令
[oracle@isgis121 ~]$ kill %1
但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息。
command &
# 让进程在后台运行
jobs –l
# 查看后台运行的进程
fg %n
# 让后台运行的进程n到前台来
bg %n
# 让进程n到后台去;
网友评论