# 服务器使用教程
# 获取云服务器
1、购买服务器
随便找一个云服务器供应商,腾讯云、阿里云或者华为云注册登录进去,然后找一个便宜一点云服务器进行购买。购买时会提示选择地区和镜像,地区一般选择离我们比较近的地区,镜像这个看个人,优先选择Ubuntu,如果你想使用界面操作,也可以选择window镜像,但不建议使用。
2、设置防火墙
购买成功后,进入控制台服务器栏目就会看到自己所买的云服务器,点进去找到防火墙一栏,添加放行端口,否则只能访问默认端口,这一步一定要注意,否则后期运行的服务可能无法访问。
3、设置服务器账号密码
刚购买的服务器不知道登录账号和密码的话,可以重置一下账号和密码。
# 连接云服务
我们使用xshell或者xftp进行连接,点击下载xshell和xftp (opens new window)安装后打开软件。
1、使用软件连接
打开连接面板,输入主机IP。
点击连接,然后输入用户名,Ubuntu镜像一般默认是ubuntu。
点击确认,然后输入密码。
点击确认登录成功。
2、使用ssh登录
使用ssh命令登录,我们随便打开一个命令终端。输入以下命令,回车然后根据提示输入密码即可登录。
# 连接远程 ssh 用户名@IP
ssh ubuntu@192.168.100.1
# 命令介绍
sudo命令
提权命令,用root权限来执行某些命令,可以用于任何命令。比如常见的切换服务器用户命令sudo su 。
# 切换到root账号
sudo su - root
# 切换到默认账号
sudo su - ubuntu
# 提权
sudo apt update
sudo apt upgrade
# 执行多个命令
sudo apt update && sudo apt upgrade
curl命令
curl用来下载文件、上传数据、查看网页源代码等。
# 下载文件
curl http://example.com/file.zip -o downloaded_file.zip
# 使用用户名和密码
curl -u username:password http://example.com/file.zip
# 限制下载速度
curl --limit-rate 100k http://example.com/file.zip
# 递归下载
curl -r 0-1 --include http://example.com/directory/
# 使用代理
curl -x http://proxy.example.com:8080 http://example.com/file.zip
# 上传文件
curl -X POST -F "file=@localfile.txt" http://example.com/upload
# 查看网页源代码
curl http://example.com
# 发送 JSON 数据
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com/api
# 使用持久连接
curl -H "Connection: keep-alive" http://example.com
#设置超时时间
curl --max-time 30 http://example.com
# 设置请求头
curl -H "Custom-Header: value" http://example.com
# 使用SSL
curl -k https://example.com
# 下载文件并重定向到另一个文件
curl -L -o newfile.zip http://example.com/file.zip
# 下载文件并显示进度条:
curl -# http://example.com/file.zip
wget命令
wget是用来下载文件的工具,用于从网络下载文件。
# 下载单个文件
wget http://example.com/file.zip
# 使用 -O 选项可以指定下载文件的本地名称
wget -O newname.zip http://example.com/file.zip
# 限制下载速度为100KB/s
wget --limit-rate=100k http://example.com/file.zip
# 递归下载
wget -r http://example.com/site
# 限制递归深度
wget -r -l 2 http://example.com/site
# 下载到特定目录
wget -e use_proxy=yes -e http_proxy=http://proxy.example.com:8080 http://example.com/file.zip
# 检查文件完整性
wget -P /path/to/directory http://example.com/file.zip
# 使用用户名和密码
wget --user=username --password=password http://example.com/file.zip
apt命令
用于下载各种软件包。它是一个高级的包管理器,允许用户安装、更新、升级、配置和删除软件包。装包前先切换到root用户或者使用sodu提权命令进行安装下载包。
apt -h
# 更新软件包列表
sudo apt update
# 安装软件包
sudo apt install package-name
# 升级所有已安装的软件包
sudo apt upgrade
# 升级系统
sudo apt full-upgrade
# 搜索软件包
apt search search-term
# 卸载软件包
sudo apt remove package-name
# 完全卸载软件包
sudo apt purge package-name
# 自动清理不再需要的软件包
sudo apt autoremove
# 查看软件包信息
apt show package-name
# 修复损坏的依赖关系
apt show package-name
# Node使用
1、安装
方法一,直接安装
sudo apt update
sudo apt install nodejs npm
node -v
npm -v
方法二,使用NodeSource 安装
切换到root用户执行下面命令下载
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
如果安装其他版本,例如16.x,将setup_14.x修改为setup_16.x。 然后安装 Node.js 和 npm
sudo apt install nodejs
node -v
npm -v
方法三,使用nvm版本管理器安装
nvm可以进行node版本管理,使用哪个就切换到哪个版本。打开nvm (opens new window)页面,并且拷贝下面的curl或者wget命令去下载和安装nvm脚本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
不要使用 sudo 运行,因为这会为 root 用户启用nvm。脚本将会从 Github 克隆项目到~/.nvm文件夹,然后重新打开终端验证。
nvm -v
查看能安装的node版本
nvm list-remote
这个命令将会打印很多可用的 Node.js 版本。我们可以选择安装最新版或者固定版本。
# 安装最新版本
nvm install node
# 安装固定版本
nvm install 10.9.0
# 查看安装版本
nvm ls
# 使用某个安装好的版本
nvm use 12.16.3
node -v
npm -v
安装好node后替换npm淘宝镜像源
# 淘宝镜像源
npm config set registry http://registry.npmmirror.com
# 检测是否安装成功
npm config get registry
2、部署
找一个文件夹,以/www/wwwroot/为例,把我们的node项目拖到此文件夹来,如果拖不进来需要修改此文件的权限。拖进来后直接使用node运行项目就可以了,切记指定的端口号是防火墙已经放行的才行。然后直接在浏览器直接输入IP地址+端口就可以访问了。
3、持久化服务
使用node开启服务时,当关闭窗口会自动停止服务,我们可以使用pm2工具来持久化开启node服务。
# 全局安装pm2
sudo npm install -g pm2
pm2 -v
开启node服务
pm2 start app.js
#或者
pm2 start npm --name express -- run start
#停止某个、停止所有
pm2 stop name
pm2 stop all
# 重启
pm2 restart name
pm2 restart all
参考链接:pm2中文文档 (opens new window)、 使用pm2自动化部署node项目 (opens new window)
# Nginx使用
1、安装
打开终端,首先更新你的包列表。
sudo apt update
使用以下命令安装Nginx
sudo apt install nginx
安装完成后,检查Nginx是否正在运行
sudo systemctl status nginx
如果Nginx没有运行,可以试着启动或停止它
# 启动
sudo systemctl start nginx
# 停止
sudo systemctl stop nginx
# 重启Nginx
sudo systemctl restart nginx
配置Nginx: Nginx的配置文件通常位于/etc/nginx目录下。主配置文件是nginx.conf,而网站特定的配置通常放在/etc/nginx/sites-available目录下,然后链接到/etc/nginx/sites-enabled目录以启用。
测试Nginx配置,在修改配置文件后,你应该测试配置是否正确:
sudo nginx -t
如果配置没有错误,你会看到syntax is ok和test is successful的消息。 防火墙设置:
登录到购买的服务器控制台,打开防火墙,确保开放80端口(HTTP)和443端口(HTTPS,如果你打算使用SSL)。
2、部署
服务器上的nginx部署就和常用的nginx使用教程一样,设置服务端口和地址然后启动服务,启动好后就可以在浏览器输入IP加端口号进行访问我们的服务了。
# 宝塔使用
如果嫌使用命令麻烦,我们可以通过宝塔来简化和更直观的操作服务器,宝塔 (opens new window)是一款服务器管理软件,可以帮助用户建立网站,一键配置服务器环境,使得用户通过web界面就可以轻松的管理安装所用的服务器软件。
1、安装
去官网下载复制一个下载脚本,打开xshell切换到root用户,然后执行下面安装命令,根据提示输入回车,等待安装完成。
wget -O install.sh https://download.bt.cn/install/install_lts.sh && sudo bash install.sh ed8484bec
安装好后会有相关提示,我们根据提示步骤去操作。
2、防火墙设置
登录到你的服务器打开控制台,打开你的云服务器,找到防火墙一栏。
点击添加规则,选择自定义,输入宝塔需要放行的端口进行保存。
3、登录并打开宝塔,刚打开时会有一个提示安装软件弹窗,我们选择推荐点击一键安装。也可以去软件商店安装对应的软件。
4、添加站点
添加好后点击根目录,会跳转到网站对应的静态文件,把我们的网站HTML页面拖到此处给替换掉就行了。
如果你新启的服务,不论是不是在宝塔启的,都要先看看服务器和宝塔的防火墙有没有开启。
# 服务器介绍
1、前端项目一般部署在/www/wwwroot目录下
2、数据库服务一般在/www/server目录下
3、3000端口express应用、80端口nuxt静态文件、8000nuxt服务端渲染
# 错误判断
1、服务启动后无法访问
先检查防火墙端口有没有放行,云服务器后台的防火墙和宝塔都要检查。
如果防火墙都开了,看启动的服务的port和和host是否正确,使用下面命令检查服务的端口和host地址。
#某个端口服务
netstat -an | grep 8000
如果host地址不是0.0.0.0需要在代码中指定为0.0.0.0,不要设置成127.0.0.0。