栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

简单记录一次nodejs项目部署过程

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单记录一次nodejs项目部署过程

1.检查本地代码

运行本地vue项目代码,遇到 Module build failed true is not a PostCSS plugin,

解决方案:

npm uninstall autoprefixer -D

npm install autoprefixer@9.8.6  -D

2.整理数据库导入到服务器

在Navicat for MySql 创建查询加载sql数据文件 ,运行后报 out of memory,

解决方案:

在Navicat for MySql数据库左边树状菜单右键 操作的数据库,选择“ 运行sql文件 ”。

3.新建Linux服务器上 ngnix 站点

在conf.d 文件夹新建文件, 新文件名 website.com.conf

    server {
        listen       80;
        server_name  website.com;
        client_max_body_size 100m;

	    gzip on;
	    gzip_buffers 32 4K;
     	gzip_comp_level 6;
    	gzip_min_length 100;
    	gzip_types application/javascript text/css text/xml;
    	gzip_disable "MSIE [1-6]."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
    	gzip_vary on;
		
		proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		
        location / {
            root   /website/com;
            index  index.html index.htm;
			try_files $uri $uri/ /index.html;
        }
	   
    }

ftp连通后不能操作上传 conf 文件,使用Xshell 7 选择协议SSH,端口22,输入账户密码,以 “ sudo chmod -R 777 后面跟上文件路径” ,后续提示依次操作后,解决无权限创建删除移动文件或文件夹的问题,连上ftp一切都好用了!

4.为部署后端站点安装Nodejs模块

登录Linux后,原地不动,不跑去其他文件夹,开始安装Nodejs七步操作:

第一步 到nodejs官网 复制 nodejs安装包链接

第二步 执行 wget 安装包链接地址

第三步 解压 tar -vxf 安装包

第四步移动解压文件夹 到指定目录 mv nodejs文件夹路径 /usr/local/node

第五步 修改环境变量

sudo vi /etc/profile

这里如果 vi /etc/profile  不加sudo,可能报错 E212: Can't open file for writing 或 E45: 'readonly' option is set (add ! to override)

接着加入下面的代码

#node

export NODE_HOME=/usr/local/node

export PATH=$PATH:$NODE_HOME/bin

export NODE_PATH=$NODE_HOME/lib/node_mudules

然后 退出保存

esc

:wq

这里强调下 :w 是保存 :w!是强制保存 :q是退出 :q!是强制退出

最后输入以下命令保存配置

source /etc/profile

第六步 创建软链接

ln -s /usr/local/node/bin/node /usr/local/bin/node

ln -s /usr/local/node/bin/npm /usr/local/bin/npm

第七步 检查是否安装成功

node -v

v16.XX.0

npm -v

v8.X.X
 

第八步 保持node项目在后台运行

npm install forever -g

进入项目目录运行

forever start  node项目启动文件路径

查看forever 运行的项目

forever list

停止服务

forever stop  node项目在forever list中的pid

5.前后端部署联调

因为前后端站点虽然部署在相同服务器但没用同一个端口,造成跨域问题

在nodejs代码里 配置跨域模块

      app.use(cors({

        //允许程序列表

        origin:["http://website.com"],

        credentials:true,

      }))

6. Linux 重启 nginx

由于后端端口 3000 不能放外网访问,在 nginx 里面配置反向代理,这么一来前后端兼容跨域问题就不存在。

    server {
        listen       80;
        server_name  website.com;
        client_max_body_size 100m;

	    gzip on;
	    gzip_buffers 32 4K;
     	gzip_comp_level 6;
    	gzip_min_length 100;
    	gzip_types application/javascript text/css text/xml;
    	gzip_disable "MSIE [1-6]."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
    	gzip_vary on;
		
		proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		
        location / {
            root   /website/com;
            index  index.html index.htm;
			try_files $uri $uri/ /index.html;
        }
	   

		location /api/ {
            proxy_pass  http://localhost:3000/;
        }

    }

执行重启 nginx 命令

nginx -s reload

因为连接账户没有权限导致如下报错:

nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges

换上以下命令

sudo nginx -s reload

提示输入账户密码,重启成功。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869406.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号