搭建Linux云服务器
购买与基本配置
- 云服务
- 注册成为阿里云用户(有支付宝账号就可以不用注册),购买ECS云服务器
购买地址 - 购买选择
- 地域及可用区:按自己想法选择
- 实例规格:按自己家庭地位选择
- 镜像:默认选择CentOs即可
- 网络类型:默认
- 公网带宽:按自己经济条件选择
- 购买数量和时长:按需求选择
我比较穷用新账号买了个88块钱一年的新手版本地址
- 查看自己购买的产品
查看自己购买的产品 - 查看实力(左侧菜单栏-实力与镜像-实例)
- 几个重要的地方
- ip地址:公网ip:是用于客户端连接服务器所用的地址(主机)
- 重置密码:操作-->更多-->密码/秘钥-->重置实例密码
- 记住:ip地址和自己的重置密码(记不住就回来重置一下)
链接linux服务器
- 工具
免费:putty finalshell git-bash cmder mac命令端 linux桌面
收费:xshell SecureShell
这里我用的putty工具进行链接 - 链接与登陆
- 打开putty输入:host Name(公网ip)、port(默认22就行)确认即可
点击连接,第1次会看到提示,选择 是 就可以 - 进去会让你输入login as:一般输入root即可
- password:你设置的密码(linux中对于密码是隐式显示,输入后在终端中看不到字符)
- 打开putty输入:host Name(公网ip)、port(默认22就行)确认即可
目录结构
Linux系统(以CentOs7为例)主要目录结构,Linux目录是一个树状结构。
名称 | 解释 |
---|---|
/ | 根目录 |
bin | 常用的命令 |
sbin | 系统管理员可以运行的程序 |
boot | linux内核及引导系统程序所需要的文件目录 |
etc | 存放了系统管理时要用到的各种配置文件和子目录 |
home | 用来存放用户的主目录,除root超级管理员家目录不在此 |
mnt | 一般是用于存放挂载储存设备的挂载目录 |
root | 超级权限用户root的家目录 |
tmp | 临时文件目录,重要的文件或目录不能存放在此 |
usr | 存放了用户安装的软件,占用硬盘空间最大的目录 |
var | 存放内容经常变动的目录 如日志文件 |
基本命令
可以看这篇文章:开发常用命令
名称 | 解释 |
---|---|
cd 路径 | 进入指定路径 |
cd .. | 回到上一级 |
ls | 查看目录的文件或目录列表 |
ls -d | 查看目录信息 |
ls -l | 列表形式 |
ls -h | 文件大小会自己计算(k/m/g) |
cat 路径 | 查看文件内容 |
tail -f 路径 | 实时查看文件最新更改内容 |
head -n 路径 | n数字 查看当前文件最顶部几行 |
unzip dist.zip | 解压dist.zip文件 |
软件安装
linux也是需要安装软件(服务也是软件) ,如要安装nginx,linux开源操作系统。软件与软件之前要有依赖关系。
- 源码安装 在软件官方去下载好 源码(c c++)进行编译安装 需要手动解决依赖
- rpm安装 rpm类似于windows安装包,使用它来安装也需要手动解决依赖
- yum安装 类似于npm,自动解决安装时所需的依赖
注:yum需源站,源站都在国外,所以使用yum进行软件安装,需要切换镜像源。现在所有的云主机都已经帮你完成了。
Linux 系统启动
启动过程
Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段
- 内核的引导
- 运行init
- 系统初始化
- 建立终端
- 用户登录系统
运行级别
注意:在云服务器中,不要去设置它的运行级别。
Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。
- Linux系统有7个运行级别(runlevel):
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 关机
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS)
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式 图形模式,多用户也是有命令
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动 重启
- 在centos7之后对运行级别进行了稍微的修改
init级别 systemctl target- 0: shutdown.target
- 1: emergency.target
- 2: rescure.target
- 3: multi-user.target
- 4: 无
- 5: graphical.target
- 6: 无
- 查看默认运行级别的方式为
runlevel
systemctl get-default - 设置默认运行级别的方式
init 3
- 设置成多用户命令模式
systemctl set-default multi-user.target
- 关机
init 0
- 重启
init 6
rm -rf /usr/share/man/man8/nginx.8.gz
Nginx详解
ginx是开源免费的一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,使用nginx网站用户有很多,如百度、京东、新浪、网易、腾讯、淘宝等
官网
中文文档
1、安装
在安装nginx前首先查看一下linux服务器版本
cat /etc/redhat-release
这里我的linux是8.1版本的(CentOs 8.x)
方式一:yum安装
- 默认端口号为 80
- 默认配置文件名称 nginx.conf
- nginx默认web路径中 /usr/share/nginx/html (存放我们的前端项目)
-
安装:
yum install nginx
-
启用并启动Nginx服务
sudo systemctl enable nginx
sudo systemctl start nginx当然nginx默认会被安装到/usr/sbin/nginx下因此可以直接执行如下命令启动
/usr/sbin/nginx
-
要验证服务是否正在运行,检查其状态
sudo systemctl status nginx
-
查看当前服务器中运行端口
netstat -tunpl
-tunpl解释:
- t: tcp
- u: udp
- n: 显示端口应用名称
- p: pid
- l: 只查看正在运行
-
扩展方法
- 停止服务器
方法一: sudo systemctl stop nginx
方法二:/usr/sbin/nginx -s stop
方法三: 杀死进程 pkill nginx - 重启
/usr/sbin/nginx -s reload 不会让服务器停止,只会重新加载nginx配置让配置生效 平滑重启
/usr/sbin/nginx -s restart 先停止服务,再重启服务
- 停止服务器
方式二:自定义目录安装
-
安装工具和库
依赖软件一定要安装,否则后面的nginx将无法正常安装成功。yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel
解释:
- PCRE是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式
- zlib库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip
-
创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx -
下载tar包
wget http://nginx.org/download/nginx-1.19.0.tar.gz
tar -xvf nginx-1.19.0.tar.gz -
安装nginx
进入目录:cd nginx-1.19.0
执行命令:./configure
执行make命令: make
执行make install命令:make install -
检查安装
cd到刚才配置的安装目录cd /usr/loca/nginx/
./sbin/nginx -t正常情况的信息输出:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
2、启动nginx
-
启动 nginx 服务
/usr/local/nginx/sbin/nginx
注:启动时一定要确保80端口没有被占用
netstat -tunpl
其他:
/usr/local/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/nginx/sbin/nginx -s stop # 停止 Nginx
/usr/local/nginx/sbin/nginx -t # 检查配置文件书写是否正确
3、解决80端口被占用
解决Nginx启动报nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
-
出现这种情况一般是80端口被占用,使用sudo fuser -k 80/tcp 命令关闭80端口即可
sudo fuser -k 80/tcp
-
如果没有成功可以先关闭一下防火墙再关闭80端口试一下
使用命令:systemctl status firewalld.service 查看防火墙状态
使用命令:systemctl stop firewalld.service 关闭运行的防火墙
4、彻底卸载和删除CentOS上的Nginx
- 首先查看是否在运行nginx
ps -ef | grep nginx
- 如果在运行先停止nginx
/usr/local/nginx/sbin/nginx -s stop
- 查看nginx安装目录
whereis nginx
- 删除相关文件
rm -rf /usr/sbin/nginx
rm -rf /etc/nginx
rm -rf /etc/init.d/nginx - 使用yum卸载 nginx及相关依赖
yum remove nginx
- 检查是否还有残余文件,有的话执行步骤3继续删除
whereis nginx
目录介绍
安装成功后,进入到安装后的目录中
cd /usr/local/nginx, 看到如下4个主要目录
- conf: 配置文件 配置虚拟主机文件就在此
- html: nginx默认web根路径位置
- logs: 日志文件
- sbin: 二进制程序 启动/停止/重载服务命令就在此
配置 nginx.conf
配置文件语法
http段 => server段 => location段
- http段: 是要包含所有的Server段,即将nginx所有的虚拟主机配置包含进去
- server段: 一个server即一个虚拟主机配置段落,后期有多少个虚拟主机取决于server段
- location段:每个location段即表示该虚拟主机中的一个模块功能配置 域名后台的地址
- 注:
- 配置后面分号不能少,{} 和配置之间要有空格
- nginx配置文件中每一行的结束都要写上 分号 ;
http{
server{
location /a {
root /a
}
location /b {
alias /a
}
}
}
配置虚拟主机
一台服务器上面,有时候会绑定多个不同的域名,这时就需要我们来配置nginx让其支持多域名的虚拟主机(或多端口web服务器)。
步骤:
- 在nginx配置文件中新增一个server节点
- 在server节点中,修改对应的站点目录
- 重载nginx服务 nginx -s reload
server {
listen 80; # 端口
server_name www.aa.com; # 域名
root /web/www.aa.com; # 网站目录路径
index index.html; # 默认缺省文件
charset utf-8;
access_log logs/ www.aa.com.access.log main;
error_page 404 403 500 502 503 504 /50x.html;
}
开启gzip
压缩文件大小变小了,传输更快了,提高网站的访问速度和并发量。目前市场上浏览器都是支持GZIP的。IE6以下支持不好,会出现乱码情况。
操作步骤:
- 修改配置,开启gzip压缩
- 重载nginx配置
- 测试是否有压缩
## http 节点中设置
# 开启gzip
gzip on;
# 设置将被gzip压缩的响应的最小长度
gzip_min_length 200;
# 压缩级别 1-9
gzip_comp_level 6;
# 压缩在缓冲区块数和每块大小
gzip_buffers 32 4k; # | 16 8k;
# 设置压缩响应所需的最低HTTP请求版本
gzip_http_version 1.0;
gzip_types text/plain text/css text/xml application/xml application/json application/javascript;
动手发布一个自己的项目到服务器上
一、购买一个阿里云服务器
这里在上面购买已经提到过了需要注意以下几点
- 记录自己的:公网ip
- 操作-->更多-->密码/秘钥-->重置实例密码
- 操作-->更多-->网络和安全组->安全组配置
进入后,查看规则列表中,有没有80端口,如果没有则需要添加一条规则
二、putty 登陆服务器
- 打开putty输入:host Name(公网ip)、port(默认22就行)点击确认即可
点击连接,第1次会看到提示,选择 是 就可以 - 进去会让你输入login as:一般输入root即可
- password:你设置的密码(linux中对于密码是隐式显示,输入后在终端中看不到字符)
三、服务器上安装nginx
- 上面已经有安装方法,按照步骤安装完成即可
- 直接通过域名或ip地址访问nginx服务器(不同版本的nginx展示不一样)
- nginx下的html文件存放的就是我们前端要打包部署的文件
四、上传项目
这里我们使用fileZlia可视化工具来辅助完成刚上传工作
- 打开 fileZlia 工具连接linux服务器
- 进去到/usr/local/nginx/sbin/nginx/html目录下,
- 将我们vue项目打包好的dist存放到这里
- 这里如果dist过大会很慢,我们可以放入一个dist.zip文件
- 解压dist.zip
进去终端执行cd /usr/local/nginx/sbin/nginx/html
unzip dist.zip 解压
五、配置niginx的nginx.conf
进去到/usr/local/nginx/sbin/nginx/conf目录下,找到nginx.conf
配置 server项
location / {
root html/dist;
index index.html index.htm;
}