使用的是ntzyz大佬的服务器。过程如下
第一步 拷贝文件到服务器
用scp
(win10下用pscp
)复制到服务器那边。放到目录/var/www/xzdry
下,但是直接使用:
pscp E:\前端学习\github\playground\test1.html [email protected]:/var/www/xzdry
会因为没有权限而被拒绝。因此只能先传到/home/xzdry
下。具体如下:
pscp E:\前端学习\github\playground\test1.html xxxx:
#输入密码
#传输完成
## 注:传输整个文件夹用-r命令
第二步 把文件复制到对应的文件夹下
这里主要涉及到几个常用的linux命令:
- 拷贝文件用
cp
,拷贝整个文件夹则是cp -r
- 如果只想拷贝文件夹下的内容而不拷贝文件夹,则用
cp -rf xxx/* xxx
- 删除文件用
rm
,删除文件夹为rm -rf
例子:
#文件从/home/xzdry下拷贝到/var/www/xzdry下,这里同样会有权限的问题,因此需要使用sudo
sudo cp test1.html /var/www/xzdry/example2/
# rm -rf xxx #强制删除整个文件夹
详细语法:
cp [选项] 源文件或目录 目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
该命令的各选项含义如下:
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
- l 不作拷贝,只是链接文件。
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
第三步 挂在到后台
# 第一步
screen -S xxx #如screen -S my_service
# 第二步 启动后端服务
node app.js
# 第三步 挂载到后台
# 按顺序按住Ctrl+A+D 就挂载到后台了
附其它命令:
# 从后台恢复
screen -r xxx #此处可填 进程序号或者进程名字。比如124624或gowhere_service
# 查看有哪些虚拟终端
screen -ls # 例如结果:124624.gowhere_service (Detached)
# 退出虚拟终端:在虚拟终端里输入
exit
更多关于screen
的内容,参见:
linux screen 命令详解
linux 技巧
linux 技巧
第四步 配置ngnix
后端配合使用静态文件,即用http的形式打开项目:
//app.js
app.use('/', express.static('./gowhere1')) //把当前目录下的项目挂载到http 3008端口
这样,项目就运行在本地3008端口,和后端同端口,就不存在https和http的跨域问题了。
然后,配置nginx,让https://www.xzdry.net/gowhere/#/反向代理到本机的3008端口,
把博客的/gowhere目录代理到3008端口,就可以直接在https://www.xzdry.net/gowhere/访问了。这样也不用一定要把项目放到博客的/static目录下了。只需要把博客下的/xxx代理到本机3008端口就可以了。
ngnix配置图:
这里我和nginx之间使用的是https通信,nginx和node则是http,nginx充当中间人的身份。
完成后systemctl restart nginx
重启重新加载配置。