IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 简单记录一次nodejs项目部署过程 -> 正文阅读

[系统运维]简单记录一次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一切都好用了!

cd usr/sbin
sudo ./nginx

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项目

cd /website/api
sudo node ./bin/www

第九步 保持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 命令

cd /usr/sbin
nginx -s reload

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

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

换上以下命令

cd /usr/sbin
sudo nginx -s reload

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

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 12:16:32  更:2022-05-10 12:19:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:18:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码