参考链接: https://www.jianshu.com/p/657b0b2bf537
先在服务器中添加安全组规则
为方便操作, 建议打开两个终端
一. 连接服务器
ssh root@服务器地址
二. 服务器基本配置
虚拟环境安装:
首先先更新源:
apt update
配置好Python3:
apt install python3-dev
安装虚拟环境:
pip install virtualenv
pip install virtualenvwrapper
查看安装目录:
type virtualenvwrapper.sh
配置:
vi ~/.bashrc (在文件尾添加)
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh(安装目录)
刷新环境:
source ~/.bashrc
创建虚拟环境:
mkvirtualenv python3 -p /usr/bin/python3
检查是否成功:
Python
退出虚拟环境:
deactivate
数据库安装:
更新源:
apt update
安装MySQL:
apt install mysql-server
查看状态:
systemctl status mysql.service
设置开机自启动:
systemctl enable mysql.service
连接测试:
mysql -uroot -p
nginx安装:
安装key:
wget http://nginx.org/keys/nginx_signing.key
验证key:
sudo apt-key add nginx_signing.key
添加源:
vi /etc/apt/sources.list (在该文件下添加)
deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx
更新源:
apt update
安装nginx:
apt install nginx
查看状态:
systemctl status nginx.service
启动nginx:
nginx
再次查看状态:
ps -ef | grep nginx
设置开机自启动:
systemctl enable nginx.service
systemctl status nginx.service
// 卸载: apt remove nginx
// 杀死进程: pkill -9 nginx
检查是否安装成功:
浏览器中输入服务器IP地址,可以看到''Welcome to nginx!''说明安装成功!
将项目部署到服务器
scp -r 目标目录文件/ 用户名@端口号:/服务器目标目录(示例: scp -r 2048html/ root@47.99.39.236:/root/)
在var目录下创建一个www目录
cd /var/
mkdir www
cd www/
将刚才拷贝的项目放到www目录下(可在www目录下再建细分的目录)
cp ~/2048html/ . -r
另开一个窗口ssh远程连接, 配置nginx(窗口切换会比较频繁)
cd /etc/nginx/
ls
新建mynginx.conf文件
vi mynginx.conf
将以下代码粘贴到mynginx.conf文件里
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
#设定虚拟主机配置
server {
#监听80端口
listen 80;
listen [::]:80 ipv6only=on default_server;
#服务器IP
server_name 47.99.39.236;
#默认请求(路由)
# 以2048游戏为例:
location /2048 {
#别名
alias /var/www/game/2048/;(项目地址)
}
}
#include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
}
文件配置好后, 先杀死nginx进程
pkill -9 nginx
查看进程
ps -ef | grep nginx
以指定文件启动nginx
nginx -c mynginx.conf
查看进程是否启动
ps -ef | grep nginx
在浏览器中查看项目是否部署成功
47.99.39.236/2048/2048.html
部署爱鲜蜂项目
安装Git
apt install git
在www目录下将爱鲜蜂项目克隆下来
git clone git@github.com/iphone3/Python1807AXF.git
(若git没配置好, 可使用下方命令)
git clone https://github.com/iphone3/Python1807AXF.git
进入爱鲜蜂项目的虚拟环境, 并安装相关依赖
cd Python1807AXF
workon python3
pip install -r requirements.txt (依赖在requirements.txt文件)
查看已安装依赖
pip freeze
配置线上操作
cd Python1807AXF/
ls
修改settings.py文件
vi settings.py
DEBUG = False
ALLOWED_HOSTS = ['*']
(视情况修改数据库配置文件)
返回到/var/www/Python1807AXF
cd ..
启动Django项目
python manage.py runserver 0.0.0.0:8000
配置静态文件static
# 在mynginx.conf文件, 2048游戏配置下添加以下代码
location /static{
alias /var/www/Python1807AXF/static/;
}
再次杀死nginx进程, 并指定文件启动(在/etc/nginx/目录)
pkill -9 nginx
nginx -c mynginx.conf
查看nginx是否开启
ps -ef | grep nginx
在浏览器中验证是否能访问静态文件
例: 47.99.39.236/static/base/css/base.css
47.99.39.236/static/uploads/axf.png
在虚拟环境中配置uwsgi(/var/www/Python1807AXF)
安装uwsgi
pip install uwsgi
查看uwsgi安装位置
whereis uwsgi
创建uwsgi.ini文件
touch uwsgi.ini
将以下代码粘贴到uwsgi.ini文件(不要缩进)
# uwsgi基本使用没问题,再对接上nginx,即打开socket,关闭http
[uwsgi]
# 使用nginx连接时 使用
#socket=0.0.0.0:8000
# 直接作为web服务器使用
http=0.0.0.0:8010
# 配置工程目录
chdir=/var/www/Python1807AXF
# 配置项目的wsgi目录。相对于工程目录
wsgi-file=Python1807AXF/wsgi.py
#配置进程,线程信息
processes=1
threads=4
enable-threads=True
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
启动uwsgi
uwsgi --ini uwsgi.ini
查看是否多出两个文件(uwsgi.log uwsgi.pid)
ls
对接uwsgi(编辑mynginx.conf文件, 在2048游戏上方配置)
location / {
# 导入uwsgi配置文件
include /etc/nginx/uwsgi_params;
# 设置uwsgi服务器地址
uwsgi_pass 127.0.0.1:8000;
}
编辑uwsgi.ini文件(将socket打开)
socket=0.0.0.0:8000
再次杀死nginx进程
pkill -9 nginx
检查进程是否杀死
ps -ef | grep nginx
指定文件启动nginx
nginx -c mynginx.conf
杀死uwsgi进程
pkill -9 uwsgi
检查进程是否杀死
ps -ef | grep uwsgi
启动uwsgi
uwsgi --ini uwsgi.ini
检查uwsgi是否有错(查看日志文件)
cat uwsgi.log
浏览器访问
47.99.39.236/axf/
如果能正常显示则表明部署成功
网友评论