Vue工程linux构建遇到的坑

问题一:编译器版本差异问题,报错信息如下:

Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 10.x

Found bindings for the following environments:
  - Windows 64-bit with Node.js 8.x

这个问题是版本不一致导致了,正常开发环境使用版本为windows node 8.x;使用服务器构建时采用了Linux node 10.x; read more

实现一键部署Java服务

说一键部署有些夸张了,本文主要描述是通过linux脚本启动SpringBoot服务的一些细节

#!/bin/bash
echo "---shutdown---"
app_name=service-$1
dir=/A/B
pid=`ps -ef | grep $app_name.jar | grep -v "grep" | awk '{print $2}'`
if [ -n "$pid" ];then
echo "kill -9的pid:" $pid
kill -9 $pid
fi

echo "---upload---"
cd $dir/$app_name
rm -rf $dir/$app_name/$app_name.jar
rz

echo "---startup---"
nohup java -Dactive=dev -Deureka.url=http://localhost:0001/eureka/ -jar $dir/$app_name/$app_name.jar >$dir/$app_name/nohup.out &
tail -f $dir/$app_name/nohup.out

每行脚本对应的中文翻译:
1:指此脚本使用/bin/bash来解释执行。
2:输出字符串
3:声明变量为service-加上传入的第一个参数
4:声明绝对路径
5:“里面的内容表示参数输入;
管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入;
grep 是查找含有指定文本行的意思;
grep -v 是反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的行;
awk是行处理器,awk ‘{print $2}’的意思是以空格作为分隔符,打印第二个字段;
第五行的意思就是:先查看app_name.jar包相关的信息并排除”grep”然后取第二个字段也是就是pid码

6:pid不为空则进入if,否则不进入
7:打印信息
8:杀掉进程
9:if结束符

12:切换目录
13:强制删除掉包
14:弹出文件选中框并上传选中的文件(部分环境支持此命令)

17:通过-D传入参数并后台启动jar包并将日志指向nohup.out
18:查看日志

Vue项目在Nginx下部署

前提:nginx可正常启动

1.切换目录到nginx配置目录下:cd /usr/local/nginx/conf
2.编辑nginx.conf文件:vi nginx.conf
3.主要进行service部分配置即可:
server
{
listen 8081;#监听端口,即配置好之后用来访问项目的端口
server_name localhost;#域名,没有就localhost吧,写ip也可以
root /app/vue/;#站点目录,该目录为vue项目编译后的静态资源放置目录,即build后dist下的文件copy到/app/vue/下
index index.html;
location ^~/vue { #过滤请求前缀为vue的进来这里,此处正则可以百度到
alias /app/vue;
try_files $uri $uri/ /vue/index.html;
}
location /api/ { #这里主要进行后端接口的代理转发,将包含api的请求全部转发到下面的连接,需开发环境就采用代理模式
proxy_pass http://110.120.130.140:0000/;

#Proxy Settings
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;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
access_log off;
}
4.保存修改并退出
5.切换到执行目录下:cd ../sbin
6.更新nginx引用的配置 ./nginx -s reload
7.如果无信息显示则说明执行成功,否则启动nginx,如显示配置的端口信息则说明更新成功: ./nginx

* 启动后可能会出现404或页面空白等问题,需要做的是检查vue项目里的配置、检查nginx的配置、检查nginx是否安装成功等
tomcat部署vue项目遇到的问题:
1.如项目启用代理模式进行开发,则在tomcat部署静态页面后需采用nginx或其他进行数据代理转发,否则无法正常请求后台
2.如未使用代理模式且请求数据状态码为403则为跨域问题,可在后端添加支持跨域的注解或者采用其他方法开启跨域
3.建议采用代理模式,可将数据接口隐藏,保证数据安全性

Linux下离线安装Nginx

* 部分Linux发布版的默认安装已经集成了nginx,查看方法ls /usr/local,若已有nginx文件夹说明已集成
* 安装nginx之前需首先安装相关插件
* gcc和gcc++一般情况系统会自带,首先查看是否进行过安装
* openssl和pcre的离线安装可在本人博客中搜到

1.nginx官方下载地址:http://nginx.org/en/download.html
2.到Linux下随便找个位置把下载的包丢进来
3.解压:tar -zxvf nginx-1.8.0.tar.gz
4.配置: ./configure
5.编译: make
6.安装: make install
7.切换目录到启动位置:cd /usr/local/nginx/sbin
8.启动:./nginx
9.如80端口未被占用则可在80端口直接查看欢迎页
10.安装ngink完成

Linux下离线安装Pcre库

1.pcre安装(pcre-8.42.tar.gz) 下载:https://sourceforge.net/projects/pcre/files/pcre/
2.到Linux下随便找个地方丢进去
3.解压:tar -zxvf pcre-8.42.tar.gz
4.进入解压目录:cd pcre-8.42
5.配置: ./configure
6.编译: make
7.编译检查,看有没有error信息: make check
8.安装:make install
9.如果过程中没出现什么异常信息,那么安装完成了

Linux下离线安装Openssl

openssl安装(我下载的是openssl-1.0.2o.tar.gz) 下载路径:https://www.openssl.org/source/
安装步骤:
1.到Linux下找个地方把下载的文件丢进去
2.在下载的GZ目录中,用命令执行: tar -xzf openssl-1.0.2o.tar.gz(解压)
3.进入解压的目录 cd openssl-1.0.2o
4. 添加openssl配置: ./config –prefix=/usr/local/openssl
5. 更新配置: ./config -t
6. 安装: make depend
7. 切换目录: cd /usr/local
8. 添加ssl: ln -s openssl ssl
9. 在/etc/ld.so.conf文件的最后面,添加如下内容: /usr/local/openssl/lib(如何编辑文件及保存退出自行解决)
10. 执行:ldconfig
11. 添加OPESSL的环境变量:
在etc/的profile的最后一行,添加:
export OPENSSL=/usr/local/openssl/bin(看清楚你的openssl/bin在哪里)
export PATH=$OPENSSL:$PATH:$HOME/bin
12.退出命令界面,再从新登录
13.安装完毕,检查一下:
cd /usr/local
ldd /usr/local/openssl/bin/openssl

会出现类似如下信息:
linux-vdso.so.1 => (0x00007fff3bc73000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fc5385d7000)
libc.so.6 => /lib64/libc.so.6 (0x00007fc538279000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc5387db000)
14.查看路径:which openssl
15.查看版本:openssl version

Linux下Tomcat的使用

以下内容建立在tomcat已安装并可正常启动的前提下
之前的项目使用了SpringBoot,所以在部署的时候都是一键部署
最近负责的项目使用tomcat
其实linux上的tomcat使用与windows上类似
找到tomcat的文件路径并进入到webapps下
例如:/usr/local/tomcat/webapps
将生成的war包放进去,
等到自动编译出以项目命名的文件夹之后即可
在浏览器输入访问路径即可出现对应页面

重启的话就把原来的war包及编译出来的文件夹删除掉
重新导入war包等待编辑即可

Linux常用命令记录

运行

/alidata/soft/analysis-pdf# java -jar analysis-pdf.jar

查看文件 ls

cd 进入文件,切换目录

navicat注册码
NAVC-OP7Y-6OMV-XO4S

查看正在执行的程序
ps -ef|grep analysis-pdf

结束程序运行(14729程序前的代号)
kill -9 14729

查看日志
tail -f analysis....out

查看最后一千行
tail -f -n 1000 analysis-pdf-nohup.out

查看全部日志
cat analysis-pdf-nohup.out

退出(退出查看日志或退出程序)
Ctrl+C

暂停进程
kill -stop 1234

恢复到后台
kill -cont 1234

查询暂停的进程
jobs

如果只有一个暂停的进程:fg
如果有多个就fg 2(进程前的编号)

后台运行程序
nohup java -jar api-regular.jar >api-regular-nohup.out &

重启solr
buntu:/alidata/solr-6.6.0# bin/solr restart
root@ubuntu:/alidata/solr-6.6.0# bin/solr restart -force

新建文件夹 mkdir search

给用户jyd加权限使其能够访问elasticsearch
chown -R jyd elasticsearch

切换用户
su jyd

elasticsearch运行
bin下 ./elasticsearch