实现步骤:

第一步:准备操作系统,安装必备的软件

第二步:配置nginx

第三步:部署Vue.js

第四步:部署Django项目

一、nginx安装

nginx: Linux packages

sudo yum install yum-utils

切换到/etc/yum.repos.d/nginx.repo 插入(如果没有nginx.repo 就 vim nginx.repo新建一个)

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

配置

sudo yum-config-manager --enable nginx-mainline

安装

sudo yum install nginx

执行

nginx

可以使用ps命令看有没有启动

ps -ef | grep nginx

二、使用WinSCP上传前端项目

将Vue项目api地址(原:localhost:8080/api => 将localhost:8080去掉)

将vue项目 构建执行 npm run bulid ,把打包好的文件压缩成zip文件

在服务器端新建文件夹用于存放项目

使用WinSCP将前端项目上传到服务器文件夹中

使用unzip将文件解压(未安装unzip  可使用  yum install unzip安装)

按pwd获取当前目录并复制  /mnt/www/trip-mobile/dist

去nginx配置文件  cd /etc/nginx/conf.d  编辑里面的default.conf文件,root处改为刚才复制的路径,然后重启nginx配置生效 

nginx -s reload

三、安装mysql

MySQL :: MySQL 8.0 Reference Manual :: 2.5.1 Installing MySQL on Linux Using the MySQL Yum Repository

wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

然后使用yum进行安装

yum install mysql80-community-release-el7-7.noarch.rpm

执行看有没有相关版本

yum repolist enabled | grep "mysql.*-community.*"

执行安装

sudo yum install mysql-community-server

执行启动mysql服务

systemctl start mysqld

查看mysql状态

systemctl status mysqld

找到初始用户密码,复制下来

sudo grep 'temporary password' /var/log/mysqld.log

登录root账户

mysql -uroot -p

修改新的密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

看一下现在有哪些数据库

show databases

添加远程访问权限

select user,host from mysql.user;update mysql.user set host = '%' where user = 'root';flush privileges; //刷新数据库

使用navcat远程连接

防火墙配置

# 开启

service firewalld start

# 重启

service firewalld restart

# 关闭

service firewalld stop

# 查看端口是否开放

firewall-cmd --query-port=3306/tcp

# 开放3306端口

firewall-cmd --permanent --add-port=3306/tcp

# 移除3306端口

firewall-cmd --permanent --remove-port=3306/tcp

# 重启防火墙 (修改后要重启生效)

firewall-cmd --reload

四、安装redis和python

4.1 redis

Download | Redis

下载

wget https://download.redis.io/releases/redis-5.0.14.tar.gz

解压

tar -zxvf redis-5.0.14.tar.gz

进入 redis-5.0.14文件夹

cd redis-5.0.14

编译安装需要安装gcc

yum install gcc gcc-c++

进行编译

make

进行安装

make install

启动redis服务

cd src./redis-server

修改redis设置,将 daemonize 改为yes 使其长期启动

cd ..
vim redis.conf

4.2 安装python3

CNPM Binaries Mirror

下载

wget https://registry.npmmirror.com/-/binary/python/3.8.6/Python-3.8.6.tgz

解压

tar -zxvf Python-3.8.6.tgz

进入目录

cd Python-3.8.6

执行文件检测(绿色的可以直接执行)(执行前提是安装了gcc)

sh configure

安装python需要的软件包依赖

yum install zlib zlib-devel openssl openssl-develyum install glib2-devel openssl-devel pcre-devel bzip2-devel gzip-develyum install libffi-devel -yyum install zlib zlib-develyum install libjpeg libjpeg-develyum install freetype freetype-devel

新建装python3的文件夹

mkdir /usr/local/python3

安装完重新

./configure prefix=/usr/local/python3

编译python源代码

make

安装python

make install

由于CentOs自带python2所以pip并不能用,需要更改软连接使得python指向python3,同时设置python2指向python2.7

将python的软链接指向python3

ln -s /usr/local/python3/bin/python3.8.6 /usr/bin/python

由于yum不支持python3,只有用python2才能正常运行,因此需要修改yum的相应配置,使其默认的指向改为python2.7版本,

将#! /usr/bin/python修改为#! /usr/bin/python2;

vim /usr/libexec/urlgrabber-ext-downvim /usr/bin/yum

五、上传Django后端项目

打开django项目,通过pip freeze > requirements.txt 将相关依赖提取出来

打开WinSCP,将项目上传到nmt/www目录下

安装mysql-devel

yum install mysql-devel

安装python-devel

yum install python-devel

到Django项目上传目录

cd /mnt/www/trip1019cat requirement.txt

安装所需依赖

pip install -r requirements.txt

修改django下的settings.py文件 修改一下数据库的密码,改成linux中的密码

使用navicat 创建数据库trip

linux中执行,注意不要执行python manage.py makemigrations 因为做项目中时已经执行

python manage.py checkpython manage.py migrate

安装uWSGI

Quickstart for Python/WSGI applications — uWSGI 2.0 documentation

pip install uwsgi

uwsgi配置

[uwsgi]
socket = 127.0.0.1:9090 # Django项目运行的地方
master = 1
processes =1
pidfile = /var/run/trip1019.pid
daemonize = /var/log/uwsgi/trip1019.log
module = trip1019.wsgi:application
chdir = /mnt/www/trip1019
listen = 100
buffer-size = 32768
max-requests = 200

新建  trip1019.ini 将配置文件中内容复制进去

cd /mnt/wwwvim trip1019.inimkdir -p /var/log/uwsgi/uwsgi --ini trip1019.ini

查看进程有没有成功

ps -ef | grep uwsgi

重启uwsgi

kill -HUP 6431

进入到nginx文件夹将default.conf文件复制一份命名为django.conf

cd /etc/nginx/cd conf.dcp default.conf django.confvim django.conf 

把django.conf 中location中修改为

执行

nginx -t

重启nginx

nginx -s reload

进入到django项目的settings.py中

cd /mnt/www/trip1019/trip1019vim settings.py

在 ALLOWED_HOSTS = []  中添加公网ip地址和 127.0.0.1

重启uwsgi

kill -HUP 6431

在阿里云防火墙中添加8000端口规则

进入到nginx配置,在里面添加location反向代理

cd /etc/nginx/conf.dvim default.conf

执行

nginx -t

重启nginx

nginx -s reload

nginx反向代理

location ^~/api/{proxy_pass http://127.0.0.1:8000/;add_header X-Slave $upstream_addr;proxy_redirect  off;proxy_set_header  Host      $host;proxy_set_header  X-Real-IP  $remote_addr;proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
}

重启nginx

nginx -s reload

数据库中要填充数据

把前端static中的图片复制到Django项目中,并把Django项目中settings.py中 MEDIA_URL =[],中添加公网的ip

Nginx项目部署笔记相关推荐

  1. Django+Linux+Uwsgi+Nginx项目部署文档

    Django+Linux+Uwsgi+Nginx项目部署文档 WSGI 在生产环境中使用WSGI作为python web的服务器 WSGI:全拼为Python Web服务器网关接口,Python We ...

  2. 瞬间心情愉悦,头发都少掉了几根!---Django+uwsgi+Nginx项目部署超详细步骤

    文章目录 瞬间心情愉悦,头发都少掉了几根!---Django+uwsgi+Nginx项目部署超详细步骤 先决条件 步骤 本地运行测试 上传服务器 环境安装 准备django程序 完美解决! 瞬间心情愉 ...

  3. Nginx 项目部署和配置

    nginx 作为代理服务器,需要代理多个项目的话配置如下: [plain] view plaincopyprint? server { listen       80; server_name  lo ...

  4. Nginx项目部署:新域名、二级目录、不同端口

    Vue项目打包以及单域名部署:https://blog.csdn.net/geidongdong/article/details/122305841 简单介绍如何使用二级目录部署新项目 进入你ngin ...

  5. nginx(项目部署)linux版

    linux下安装tomcat 下载链接:https://tomcat.apache.org/download-80.cgi 将下载好的tomcat 放到 /usr/local 目录下 (nginx的安 ...

  6. Linux nginx 项目部署

    nginx 安装 进入 etc/nginx 目录下安装(没有新建) yum install nginx nginx启动 安装目录下 配置 nginx.conf cd /etc/nginx vim ng ...

  7. Linux上搭建SpringBoot项目部署环境和流程分享

    Linux上搭建SpringBoot项目部署环境和流程分享 背景介绍 环境搭建 1.JDK 2.Mysql 数据库 3.Redis 4.Nginx 项目部署 总结 背景介绍 最近在开发一个 Sprin ...

  8. 王者荣耀全栈项目部署到阿里云服务器笔记

    王者荣耀全栈项目部署到阿里云服务器笔记 原创Charles_GX 最后发布于2020-03-27 01:27:00 阅读数 177  收藏 展开 王者荣耀全栈项目部署到阿里云服务器笔记 学习的项目来自 ...

  9. 阿里云ECS服务器购买及配置,SpringBoot项目部署到阿里云ECS服务器,阿里云ECS服务器安装JDK、Mysql、nginx详细步骤

    1.购买阿里云ECS服务器 官网:阿里云-上云就上阿里云 根据自己的需要选择相应的配置: 目前有一个月的服务器免费体验时间,我选择了免费体验,点击后,可以看到你刚才购买的服务器: 也可以通过这里查看你 ...

最新文章

  1. ORACLE 中为什么要把列名都转换成大写字母?
  2. Java String,StringBuilder和StringBuffer的区别 StringBuilder StringBuffer String
  3. MySQL修改用户(RENAME USER)
  4. 自从装了windows神器,再也不用羡慕mac了
  5. CCD与CMOS摄像头的区别
  6. Ubuntu设置root登录
  7. Win7系统桌面壁纸换不了怎么办
  8. linux shell中获取mongodb最大连接数、内存使用情况等
  9. 2018 年力扣高频算法面试题汇总-难题记录-鸡蛋掉落
  10. keystone环境搭建(源码方式+yum方式)(ocata版本)
  11. UDS协议之诊断会话管理服务 0x10
  12. ie加载项存在残留是什么_残余IE加载项无法修复
  13. 智能家居小知识普及篇——智能家居技术有哪些劣势
  14. java.sql.SQLException: Incorrect string value: ‘\xE6\xB5\x8B\xE8\xAF\x95...‘ for column ‘xxx‘
  15. 2016 威斯康星 计算机科学,威斯康星麦迪逊大学计算机科学本科申请条件及案例分析...
  16. 英特尔第十代处理器为什么不支持win7_Intel的7代酷睿CPU可以安装Win7系统吗?能不能完美支持呢?为什么有人说不能使用Win7系统...
  17. BGA焊接可靠性评价指引,为产品质量保驾护航
  18. 在ICT圈子找非研发工作
  19. Ubuntu PPPoE拨号上网
  20. 洛谷 P5717 【深基3.习8】三角形分类

热门文章

  1. 《悲惨世界》--[法]雨果
  2. 配置 Windows Server 2008 R2 DNS 服务器
  3. 卡西欧科学计算机玩法,巨好玩:计算器CASIO(卡西欧)新玩法
  4. eclipse插件升级
  5. DelphiXE7操作sqlite数据库
  6. android支付宝支付成功后调其他界面,支付宝支付成功回调地址怎么不改变当前页面?...
  7. Windows Debug 详解
  8. 控制window系统应用程序定时关闭和开启
  9. Scikit-plot画图
  10. HP前中国CEO孙振耀:关于工作与生活