Nginx项目部署

CRM项目部署

第一步,安装启动mariadb数据库

1.安装

yum install  mariadb-server  mariadb -y

2.通过yum安装的软件,怎么启动

systemctl  start/stop/status/restart mariadb

3.登录数据库

mysql

4.导出windows的数据库,导入到linux

导出命令
mysqldump  -uroot -p  crm >  crm.sql  
# 指定数据库导出到crm.sql数据文件中

传输到linux中,进行导入
简单的利用 lrzsz工具传输
或者下载xftp工具

导入数据的命令 

方式1:
1.创建一个crm数据库
create  database  crm; 
# 导入数据的命令  
mysql -uroot -p  crm <  crm.sql   
#指定crm数据库,导入一个sql文件 

方式2:
登陆数据库之后,用命令导入数据
	1.创建一个crm数据库
		create  database  se_crm; 
	2.切换数据库
		use  crm;
	3.读取sql文件,写入数据集
	  mareiadb>    source /opt/crm.sql; 

第二步,准备python3环境,以及虚拟环境

1.编译安装python3,解决环境变量

2.下载virtualenvwrapper工具

3.使用mkvirtualenv命令,创建新的虚拟环境,用于启动crm

mkvirtualenv  crm

4.拷贝crm项目代码到linux机器

5.解决crm项目运行所需的依赖环境

方式一:
pip3 install -i https://pypi.douban.com/simple django==1.11.23
pip3 install -i https://pypi.douban.com/simple pymysql
pip3 install -i https://pypi.douban.com/simple django-multiselectfield

方式二:
导出python解释器模块的命令 
pip3 freeze > requirements.txt    
# requirements.txt文件是python程序员公认的模块依赖文件

安装这个requirements.txt文件中所有的模块 

pip3 install -r requirements.txt  
# 指定依赖文件安装,读取文件中所有的模块信息

第三步,安装uwsgi

1.通过pip3安装

pip3 install -i https://pypi.douban.com/simple   uwsgi 

2.通过uwsgi命令去启动django

启动方式一:

uwsgi  --http :8000  --module  项目名.wsgi  
--http指定http协议启动socket服务端,可以通过浏览器直接访问
--module  是找到crm项目第二级目录下的wsgi.py 文件 
	 
uwsgi --http :8000  --module  crm.wsgi  

启动方式二:

1.创建配置文件
	touch  uwsgi.ini
	
2.写入如下内容 uwsgi.ini内容如下
[uwsgi]
# Django-related settings
# the base directory (full path)
# 填写crm项目的绝对路径,第一层 
chdir           = /opt/CRM

# Django's wsgi file 
#填写crm项目第二层目录中的wsgi文件 
module          = CRM.wsgi

# the virtualenv (full path)
#填写解释器的安装绝对路径(虚拟环境)
home            = /root/Virs/crm

# process-related settings
# master
master          = true
# maximum number of worker processes
#指定uwsgi的多进程数量,指定为cpu的核数即可(填cpu的4倍数量)
processes       = 4


# the socket (use the full path to be safe
#指定crm启动的协议,当你和nginx结合进行反向代理,就用unix-socket协议 ,这种方式无法直接访问,只能通过nginx反代
socket          = 0.0.0.0:8000

#指定http协议启动,不安全,没有意义,只是自己调试使用
#http =  0.0.0.0:8000


# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true
# 后台运行uwsgi
daemonize=yes

3.收集django的所有静态文件,交给nginx处理
打开 django的settings.py,修改为如下行
	STATIC_ROOT='/opt/crm/crmstatic'        
	# 加上这个参数就行了 
	STATIC_URL = '/static/'
	STATICFILES_DIRS = [
	os.path.join(BASE_DIR, 'static')
	]

通过命令收集django的所有静态文件
python3  manage.py collectstatic  

4.指定uwsgi.ini配置文件启动
uwsgi  --ini  uwsgi.ini   
# 参数 --ini是指定文件的意思

第四步,启动nginx,配置反向代理

1.安装nginx

2.修改配置文件nginx.conf

注意server{}多虚拟主机是自上而下的加载顺序
因此修改第一个server{}虚拟主机,修改为如下反代的写法
且添加nginx处理django的静态文件方式

server {
	#nginx监听的地址 
	listen       80;
	#定义网站的域名
	server_name  _;

	#charset koi8-r;
	#nginx的url匹配 , /这个斜杠就代表这样的请求:  192.168.13.117:85/   
	#这个是最低级匹配,所有的请求都会进入location,进行处理
	#好比 http://192.168.13.117/crm/login/
	location / {
		#基于uwsgi协议的请求转发,给后端django的启动地址
		uwsgi_pass 0.0.0.0:8000;    #这个是请求转发
		include  uwsgi_params;      #这个是添加一个文件,添加请起头信息的
	}
	#当以后请求是从static开始,我就让他去这个目录去找
	#http://192.168.13.117/static/css/reset.css
	#不加斜杠
	location  /static  {
			alias  /opt/crm/crmstatic;
	}
}

Vue+Drf项目部署

端口配置:

​ uwsgi部署drm项目使用端口: 8002

​ nginx部署vue项目使用端口: 85

​ nginx监听vue请问端口: 8001

第一步,将项目代码移动到Linux上

第二步,配置Vue

1.首先需要安装nodejs环境

通过yum安装
下载编译安装
	修改环境变量
测试node和npm的版本

2.安装项目所需node模块,打包node项目

1.进入vue源码目录,安装package.json的模块内容
npm install
注意事项:
	此时注意,本地写的vue代码,接口很可能连接的服务器地址有问题,注意Axios.POST提交的地址,一定要发送给django应用(如果用了nginx,就发送给nginx的入口端口)
	确保vue的route模式是history
	
2.准备编译打包vue项目,替换配置文件所有地址,改为服务器地址
注意端口号,如需替换端口号,/旧ip:端口/新ip:端口/
sed -i 's/127.0.0.1/122.51.103.227/g' /vue项目路径/src/restful/api.js

3.打包vue项目,生成一个dist静态文件夹
npm run build

4.检查dist文件夹
index.html static

3.配置nginx

server {
     # 用户访问域名或者ip,默认是nginx的80端口
        listen       80;
        server_name  _;
        location / {
        root /项目路径/dist;
        index index.html;
        }
    }

第三步,配置后端代码

1.创建虚拟环境,在虚拟环境下安装项目所需依赖模块,数据库等

可以从项目中导出所需依赖模块
pip freeze >  requirements.txt 
在Linux中安装
pip install -r requirements.txt 

前面说了mysql,这里说一下redis的安装
yum install redis -y
systemctl start redis
验证登陆redis
[root@linux ~]# redis-cli 
127.0.0.1:6379> ping
PONG

2.通过uwsgi启动drf项目

在drf项目第一次目录中创建
touch uwsgi.ini

修改此文件
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir           = /项目第一层目录的路径
# Django's wsgi file
module          = 项目名.wsgi
# the virtualenv (full path)
home            = /虚拟环境的路径
# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 1
# the socket (use the full path to be safe
socket          = 0.0.0.0:8002
# clear environment on exit
vacuum          = true
# 后台运行uwsgi
daemonize       = yes

uwsgi --ini 项目路径/uwsgi.ini

第四步,配置nginx

server {
        listen       80;
        server_name  _;
        location / {
        root /vue项目路径/dist;
        index index.html;
    # 这一条参数确保vue页面刷新时候,不会出现404页面
      try_files $uri $uri/ /index.html;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
           root   html;
        }
    }

server {
	   listen       8001;
        server_name  _;
        location / {
        uwsgi_pass 0.0.0.0:8002;
        include uwsgi_params;
        }
}
原文地址:https://www.cnblogs.com/zyyhxbs/p/11786116.html