点击上方

“Python Web与Django大咖之路”关注我!

工 作 原 理

一、安装nginx

  • 安装依赖包

yum install gcc gcc-c++ pcre-devel patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl-devel -y
  • 准备用户

groupadd nginxuseradd -g nginx nginx
  • 下载、配置、编译、安装

# 下载源码包wget http://nginx.org/download/nginx-1.16.1.tar.gz# 解压tar -zxvf nginx-1.16.1.tar.gz# 进入目录cd nginx-1.16.1/# 配置./configure --user=nginx --group=nginx --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-stream# 编译make# 安装make install# 查看cd /usr/local/nginx  # conf:  配置目录  # logs: 日志文件——access.log、error.log  # sbin: 运行nginx的目录  # html: 显示html的文件
  • 小技巧

    • 如果想要将centos7下面的Nginx的配置文件nginx.conf的代码高亮,那么就要将下载的源码包contrib/vim/*的文件拷贝到本机安装的vim下:

cp -r contrib/vim/* /usr/share/vim/vim74/
  • 将启动nginx的运行目录加入环境变量,这样你就可以在任何目录下直接输入nginx运行 —— 编辑文件:vim ~/.bash_profile

vim ~/.bash_profile# 编辑环境变量PATH=/usr/local/nginx/sbin:$PATH:$HOME/bin# 通过source使更改生效:source ~/.bash_profile

二、安装node环境(部署前端项目需要)

  • 下载源码包、解压、转移软件、做软连接

# 下载源码包wget https://nodejs.org/dist/v12.16.2/node-v12.16.2-linux-x64.tar.xz# 解压tar -xf node-v12.16.2-linux-x64.tar.xz# 移动到你选择的安装目录mv node-v12.16.2-linux-x64 /usr/local/node-v12.16.2# 做软连接ln -s /usr/local/node-v12.16.2 /usr/local/node
  • 小技巧

将node添加进环境变量 —— 编辑文件:vim ~/.bash_profile

vim ~/.bash_profile# 编辑环境变量PATH=/usr/local/node/bin:/usr/local/nginx/sbin:$PATH:$HOME/bin# 通过source使更改生效:source ~/.bash_profile

进行测试:

node -vnpm -v

更新npm版本:

npm i -g npm

部署前端项目

# 假设现在linux上有一个文件:storm_vue,是一个vue前端项目, 路径是/djano_project/storm_vue# 第一步:进入目录cd storm_vue# 第二步:npm install# 第三步:准备编译打包vue项目,替换api.js配置文件所有地址,改为服务器地址# xx.xxx.xxx.xxx为服务器地址sed -i 's#127.0.0.1#xxx.xxx.xxx.xxx#g' /djano_project/storm_vue/src/restful/api.js# 第四步:此时打包vue项目,生成一个dist静态文件夹npm run build# 至此vue代码就结束了,只需要让nginx配置,找到vue的index.html首页文件即可.# 第五步: 配置nginx.conf,指向生成的dist文件夹vim /usr/local/nginx/conf/nginx.conf   """   server {   listen 80;   server_name vue.stormztt.com;   location / {     root /djano_project/storm_vue/dist;     index index.html index.htm;   }    error_page 400 403 404 405 /40x.html; }   """# 检测nginx语法nginx -t# 不停机重新加载nginxnginx -s reload

三、安装Python环境

  • 下载配置Python

# 下载源码包wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz# 解压tar -zxvf Python-3.6.4.tgz# 进入目录cd Python-3.6.4/# 生成Python环境安装文件./configure --prefix=/usr/local/python3 --enable-optimizations  --with-ssl # 编译make# 安装make install# 创建软链接ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3# 验证是否安装成功python3 -Vpip3 -V# 修改pip安装源(一般如果是买的服务器都已经自动设置好的)cd ~mkdir .pipcd .pipvim pip.conf    #进入后添加以下内容,保存退出.    [global]    index-url = http://mirrors.tencentyun.com/pypi/simple    trusted-host = mirrors.tencentyun.com
  • 安装包管理工具virtualenv

# 安装pip3 install virtualenvyum install python-setuptools python-develpip3 install virtualenvwrapper# 配置全局变量# 查找/virtualenvwrapper.sh路径find / -name virtualenvwrapper.sh# 查找python3路径find / -name python3# 查找virtalenv路径find / -name  virtualenv# 编辑.bashrc文件vim ~/.bashrc# 打开.bashrc文件将下面五行添加到末尾WORKON_HOME=~/EnvsVIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/python3/bin/virtualenvsource /usr/local/python3/bin/virtualenvwrapper.sh # 重启配置文件  source ~/.bashrc
虚拟环境列表 workon新建虚拟环境  mkvirtualenv [虚拟环境名称]启动/切换虚拟环境  workon [虚拟环境名称]删除虚拟环境  rmvirtualenv [虚拟环境名称]离开虚拟环境  deactivate
  • 测试:新建虚拟环境

mkvirtualenv project_env

如果报错:

...Creating virtual environment...usage: virtualenv [--version] [--with-traceback] [-v | -q] [--app-data APP_DATA] [--clear-app-data] [--discovery {builtin}] [-p py] [--creator {builtin,cpython2-posix}] [--seeder {app-data,pip}] [--no-seed] [--activators comma_sep_list]                  [--clear] [--system-site-packages] [--symlinks | --copies] [--download | --no-download] [--extra-search-dir d [d ...]] [--pip version] [--setuptools version] [--wheel version] [--no-pip] [--no-setuptools] [--no-wheel]                  [--symlink-app-data] [--prompt prompt] [-h]                  destvirtualenv: error: unrecognized arguments: --no-site-packages...

没有这个参数 –no-site-packages ,是 virtualenv 版本问题。升级:

pip3 install --upgrade virtualenv==16.7.9

四、新建Python环境,安装django常用的包

# 新建虚拟环境mkvirtualenv [虚拟环境名称]# 安装uwsgipip3 install uwsgi# 安装djangopip3 install django==2.2.4# 一次性安装pip3 install -r /django_project/requirements.txt    文件requirements.txt的内容    """    amqp==2.5.2    billiard==3.6.3.0    celery==4.4.2    certifi==2019.11.28    chardet==3.0.4    coreapi==2.3.3    coreschema==0.0.4    Django==2.2.4    django-cors-headers==3.2.1    django-crispy-forms==1.9.0    django-filter==2.2.0    django-formtools==2.2    django-guardian==2.2.0    django-redis==4.11.0    djangorestframework==3.11.0    djangorestframework-jwt==1.11.0    drf-extensions==0.6.0    elasticsearch==7.6.0    idna==2.9    importlib-metadata==1.6.0    itypes==1.1.0    Jinja2==2.11.1    kombu==4.6.8    Markdown==3.2.1    MarkupSafe==1.1.1    mongoengine==0.19.1    Pillow==7.0.0    Pygments==2.6.1    PyJWT==1.7.1    pymongo==3.10.1    PyMySQL==0.9.3    pytz==2019.3    redis==3.4.1    requests==2.23.0    six==1.14.0    sqlparse==0.3.1    uritemplate==3.0.1    urllib3==1.25.8    vine==1.3.0    zipp==3.1.0    """

五、部署django项目

# 假设Linux上有一个django项目:blog-storm, 路径为:/django_project/blog-storm
  • 配置uwsgi

vim /django_project/blog-storm/uwsgi.ini# 进入文件后,写入下列语句[uwsgi]# 指定运行目录chdir=/django_project/blog-storm# Django项目的wsgi文件的所在位置module=blog-storm.wsgi# http:直接做web服务器使用http=127.0.0.1:9001# 项目运行环境所在路径 virtualenv=/root/Envs/project_env# master允许主进程存在master=true# 开启的进程数量processes=1# pidpidfile=/django_project/blog-storm/uwsgi.pid# 日志daemonize=/django_project/blog-storm/uwsgi.log# 当服务器退出的时候自动清理环境,删除 unix socket 文件和 pid 文件vacuum = true
  • 启动uwsgi

# uWSGI配置为开机自启uwsgi --ini /django_project/blog-storm/uwsgi.ini &
  • 配置nginx

vim /usr/local/nginx/conf/nginx.conf# 进入文件后,新启一个server{},修改为下列语句upstream django {  server 127.0.0.1:9001;}server {   listen 8000;   server_name blog.stormztt.com;   charset utf-8;   client_max_body_size 75M;   location / {     root /django_project/blog-storm;     # uwsgi_pass 指的是本机 IP 和端口号,并且要与 uwsgi.ini 配置文件中的 IP 和端口号必须保持一致。     uwsgi_pass django;     # uwsgi_params文件的位置     include /usr/local/nginx/conf/uwsgi_params;   }   location /static {     alias /django_project/blog-storm/static;   }   location /media {     alias /django_project/blog-storm/media;   }}
  • nginx负载均衡

vim /usr/local/nginx/conf/nginx.conf# 写入"""{  worker_processes 1;  events {     worker_connections 1024;  }  http {     include mime.types;     default_type application/octet-stream;     sendfile on;     keepalive_timeout 65;     upstream backend {         server xxx.xxx.xxx.1:80 weight=1;         server xxx.xxx.xxx.2:80 weight=1;      }     server {         listen 80;         server_name www.stormztt.com;         location / {             index index.html index.htm;             proxy_pass http://backend;             proxy_set_header Host $host;             proxy_set_header X-Forwarded-For $remote_addr;             proxy_connect_timeout 60;              proxy_send_timeout 60;              proxy_read_timeout 60;              proxy_buffer_size 4k;              proxy_buffers 4 32k;             proxy_busy_buffers_size 64k;              proxy_temp_file_write_size 64k;      }   }}"""

六、安装、配置git

  • 安装git

# yum安装yum -y install git# 测试git --version
  • 配置git账户

    • 配置账户和密码

git config --global user.name "xxxx"git config --global user.email "xxxx@xxx.com"
  • 查看配置是否生效

git config --list
  • 配置SSH用于拉取远程仓库

    • 先在本地生成ssh key,生成公钥和私钥,后续在github配置中需要。

ssh-keygen -t rsa -C "xxxx@xxx.com"
    • 确认路径按1次回车,提示:Enter passphrase(输入密码),不用输密码再按2次回车即可。生成的密钥存放路径 /root/.ssh/

    • id_rsa:私钥 ,id_rsa.pub:公钥            

  • 配置github

    1、打开网址:https://github.com/,找到settings

2、复制刚才生成的 id_rsa.pub 公钥,Add SSH key

  • 测试拉github私有项目

git clone [git@github.com:xxxx.git]

八、安装MySQL、Redis、Mongo

  • MySQL安装

# 查询出来已安装的mariadbrpm -qa|grep mariadb  # 卸载mariadb,文件名为上述命令查询出来的文件rpm -e --nodeps 文件名  # 创建mysql用户组groupadd mysql# 创建一个用户名为mysql的用户并加入mysql用户组useradd -g mysql mysql# 进入目录/usr/localcd /usr/local# 创建目录mkdir mysql# 进入目录cd mysql/# 新建文件夹mkdir data# 下载wget  http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gz# 解压tar -zxvf mysql-5.6.23.tar.gz# 进入解压目录cd mysql-5.6.23# yum方式安装相关依赖包yum -y install cmake bison git ncurses-devel gcc gcc-c++ autoconf# 设置安装参数cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1# 编译安装makemake install # 安装完之后,清除临时文件make clean# 修改目录属主权限chown -R mysql:mysql /usr/local/mysql/data/chown -R mysql:mysql /usr/local/mysql/# 创建MySQL Server系统表cd /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data# 配置启动脚本cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql# 启动mysql/etc/init.d/mysql start# 查看状态/etc/init.d/mysql status # 设置环境变量vim ~/.bash_profile    PATH=/usr/local/mysql/bin/:$PATH    export PATHsource ~/.bash_profile# 开机启动chkconfig  --level 345 mysql on# 最后设置数据库管理员的登录密码:/usr/local/mysql/bin/mysqladmin -u root  password 'xxxxxx'# 设置完成进入mysqlmysql  -uroot -p
  • Redis安装

# 进入目录/usr/localcd /usr/local# 下载wget http://download.redis.io/releases/redis-stable.tar.gz# 解压tar -zxvf redis-stable.tar.gz# 进入解压目录cd redis-stable# 装包yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bashecho "source /opt/rh/devtoolset-9/enable" >>/etc/profile# 编译make MALLOC=libc # 进入src目录cd src# 安装 (作用:将/usr/local/redis-stable/src目录下的文件加到/usr/local/bin目录)make install# 修改/usr/local/redis-stable/redis.conf文件  daemonize no 更改为 daemonize yes  # 设置redis连接密码  requirepass 密码  # 允许redis远程连接  bind 127.0.0.1 更改为 0.0.0.0  # 指定redis.conf文件启动./redis-server /usr/local/redis-stable/redis.conf# 放行6379端口firewall-cmd --zone=public --add-port=6379/tcp --permanentfirewall-cmd --reload# 检查端口是否开启firewall-cmd --query-port=6379/tcp

Linux下登录redis:

# 命令行登录redisredis-cli  # 输入密码auth [password] # 选择数据库: 1-15(redis默认16个数据库)select xx

注意:

当修改了redis.conf,都要进行更新

cd /usr/local/redis-stable/src./redis-server /usr/local/redis-stable/redis.conf

Mongo安装

# 进入目录/usr/localcd /usr/local# 创建目录mkdir mongodb# 进入目录cd mongodb# 下载mongodb安装文件wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.4.tgz# 解压安装文件tar -zxvf mongodb-linux-x86_64-rhel70-3.2.4.tgz# 解压包移动到指定目录mv mongodb-linux-x86_64-rhel70-3.2.4/* /usr/local/mongodb# 配置全局变量并启用配置vim ~/.bash_profile  """    .......    PATH=/usr/local/mongodb/bin/:$PATH    export PATH  """source ~/.bash_profile# 将mongo路径软链到/usr/bin路径下,方便随处执行mongo命令ln -s /usr/local/mongodb/bin/ /usr/local/bin/mongo# 创建数据库及log目录cd /usr/local/mongodb/bin mkdir -p data/test/db mkdir -p data/test/logs# 创建配置文件vi mongodb.conf》》》》》》》》》》》》》》》》》》》》》》》》》》#  设置数据文件的存放目录dbpath = /usr/local/mongodb/bin/data/test/db# 设置日志文i件的存放目录及其日志文件名logpath = /usr/local/mongodb/bin/data/test/logs/mongodb.log# 设置端口号(默认的端口号是 27017)port = 27017# 设置为以守护进程的方式运行,即在后台运行fork = true# 关闭http接口,默认关闭27018端口访问nohttpinterface = true # 设置允许远程连接bind_ip = 0.0.0.0》》》》》》》》》》》》》》》》》》》》》》》》》》# 启动配置./mongod -f mongodb.conf      # 如果要取消配置文件:关闭配置      ./mongod -f ./mongodb.conf --shutdown# 查看MongoDB进程ps -ef | grep mongodb# 进入mongodb,查看mongodb是否真的已经安装成功cd /usr/local/mongodb/bin./mongo# 创建数据库用户use admin... db.createUser(  ...   {  ...     user: "admin1",  ...     pwd: "admin1234",  ...     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]  ...   }  ... )# 测试是否可以访问db.auth("admin1","admin1234")1

九、使用图形化工具连接管理MySQL、Redis、Mongo

  • Navicat连接mysql

    第一步:使用xshell做隧道转换:

    数字1:表示你将在window电脑上侦听的端口;

    数字2:表示服务器上mysql数据库的端口;

第二步:使用navicat连接:

  • RedisDesktopManager连接redis

    Name: 连接名;

    Host:服务器ip

    Port:端口

    Auth: 数据库密码

  • Robo 3T 连接Mongo数据库

1、Name:连接名

2、Address:远程服务器的ip地址:端口

对admin数据库进行操作,则需要进行Authentication验证:

END

centos7 vim查找_实战 | 一文掌握Centos7下搭建Django前后端分离项目部署环境相关推荐

  1. 视频教程-Python+Vue+Django前后端分离项目实战-Python

    Python+Vue+Django前后端分离项目实战 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ...

  2. 大屏监控系统实战(4)-如何将SpringBoot+Vue前后端分离项目一次打包为一个Jar包运行?

    玩过最新版Dubbo管控台的都知道,人家是个前后端分离的项目,可是一条打包命令能让两个项目整合在一起,生成一个jar包,这样的好处显而易见,部署的时候服务器不需要安装node环境单独部署前端项目,或者 ...

  3. 视频教程-Vue、Spring Boot开发小而完整的Web前后端分离项目实战-Java

    Vue.Spring Boot开发小而完整的Web前后端分离项目实战 3年多.net开发经验:5年的java后端开发经验,熟悉行.net,java流行技术,拥有多个.net,java web企业级应; ...

  4. sm4 前后端 加密_这7个开源的Spring Boot前后端分离项目整理给你

    来源|公众号:江南一点雨 前后端分离已经开始逐渐走进各公司的技术栈,不少公司都已经切换到前后端分离开发技术栈上面了,因此建议技术人学习前后端分离开发以提升自身优势.同时,也整理了 7 个开源的 Spr ...

  5. 前后端分离项目_七个开源的 Spring Boot 前后端分离项目,一定要收藏

    来自公众号:江南一点雨 前后端分离已经在慢慢走进各公司的技术栈,根据松哥了解到的消息,不少公司都已经切换到这个技术栈上面了.即使贵司目前没有切换到这个技术栈上面,松哥也非常建议大家学习一下前后端分离开 ...

  6. phython在file同时写入两个_喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了

    折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...

  7. crm开源系统 tp框架_八个开源的 Spring Boot 前后端分离项目,一定要收藏!

    点击蓝色字关注我们 前后端分离已经在慢慢走进各公司的技术栈,不少公司都已经切换到这个技术栈上面了.即使贵司目前没有切换到这个技术栈上面,也非常建议大家学习一下前后端分离开发,以免在公司干了两三年,SS ...

  8. springboot jwt token前后端分离_「转」七个开源的 Spring Boot 前后端分离项目,建议收藏加转载...

    其实前后端分离本身并不难,后段提供接口,前端做数据展示,关键是这种思想.很多人做惯了前后端不分的开发,在做前后端分离的时候,很容易带进来一些前后端不分时候的开发思路,结果做出来的产品不伦不类,因此松哥 ...

  9. java 同域名下怎么访问同事的项目_喜大普奔,两个开源的前后端分离项目可以在线体验了...

    折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和V 部落上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了,以帮助 ...

最新文章

  1. python setup脚本编写
  2. IDEA的GsonFormat插件--将json字符串直接实例化成类
  3. 【CJOJ2616】 【HZOI 2016】偏序 I(cdq分治,树状数组)
  4. 计算机管理ap,如何设置AC功能管理无线AP
  5. vscode emmet默认模板_从零开始配置 vscode
  6. 骑驴找马!在职期间如何优雅的去面试?
  7. 一晚浓浓的程序员鸡汤,先干为敬
  8. python赋值语句的作用_Python之语句与函数
  9. 如何快速的入门git实现版本控制
  10. 单例模式 代码以及祥解
  11. 光物联成物联网新热点
  12. JAVA 中转义符的理解
  13. java path combine_Path.Combine (合并两个路径字符串)方法的一些使用细节
  14. hp服务器装vm系统,服务器虚拟化ESXi 5.5安装过程(HP)
  15. 如何利用c语言写九九乘法表
  16. 编程小白C语言例题4
  17. protues 选项卡说明
  18. 【薛定谔方程求解】基于MATLAB的薛定谔方程求解仿真
  19. 设为首页和收藏的JS
  20. 带宽、流量限制软件之Netlimiter Pro中文使用教程

热门文章

  1. linux c 结构体初始化的四种方法
  2. python TypeError: not all arguments converted during string formatting 解决
  3. Medoo入门:安装和配置-Medoo使用指南
  4. 深入理解 C 指针阅读笔记 -- 第二章
  5. Linux密码文件passwd和shadow分析
  6. ext文件系统机制原理剖析
  7. Ansible :一个配置管理和IT自动化工具
  8. 有关CPU与内存的那些事
  9. matlab识别不出linux链接,在Ubuntu上,从matlab调用外部脚本失败_linux_开发99编程知识库...
  10. Data Structure - 返回单链表的中间结点