在刚接触时,我对 VPS 主机、虚拟主机、云服务器等名词真的是一脸懵,为了让后来接触的人少走一些弯路,同时也给本身作一些笔记,也就出现了本篇文章。本篇文章讲述了 了解服务器 ---> 选择服务器 ---> 购买服务器 ---> 使用服务器 ---> 项目部署 这几方面。文章前半部分主要是为了区分不一样的服务器。若是单单只须要了解操做,能够从购买服务器开始。但愿你们看完有所收获!javascript
服务器一般分为独立服务器(物理服务器)、VPS 主机、虚拟主机、云服务器这几类。同时,无论是虚拟主机、VPS 主机仍是云服务器,其本质上都是一台电脑,它们都由操做系统和服务器资源组成。css
VPS 主机是将一台物理服务器利用虚拟化技术划分红多个操做系统,每一个 VPS 均可分配独立公网 IP 地址、独立操做系统、独立超大空间、独立内存、独立 CPU 资源、独立执行程序和独立系统配置等,有很大的自主权。它独享一份操做系统和服务器资源(一份 VPS 资源)。html
相比 VPS 主机,多个虚拟主机共用一份操做系统及服务器资源,能够说是多个用户共用一份 VPS 资源。同时阿里云将虚拟主机分为两种。共享型虚拟主机和独享型虚拟主机,他们主要的区别就是 IP 的不一样,共享型虚拟主机是共享 IP 而独享型虚拟主机是独享型 IP。前端
根据 IP 分类虚拟机,能够分为共享 IP 虚拟机和独立 IP 虚拟机 其区别在于:java
云服务器是将服务器集群的资源池(多台物理服务器)利用虚拟化实现的,换句话说就是将计算机资源整合在一块儿,作成随用随取形式,此时就能够自由申请资源及释放资源。这也就是为何能够弹性扩展云服务器资源的缘由。linux
常见云服务器:nginx
注意:若是 VPS 的母服务器出问题了,就意味着所有在里面的虚拟主机也出问题了,属于一损俱损。而云服务器的集群一台服务器出问题,还有镜像文件,不会有任何中断。shell
虚拟主机又被称为虚拟服务器,它是利用虚拟技术将一台物理服务器或 VPS 主机划分为多台“虚拟”服务器。全部的虚拟主机相互独立,有各自的 IP 、内存、CPU 、文档存储空间等。在外界看来虚拟主机至关于一台独立的主机,因此这种虚拟化的逻辑主机被称为“虚拟主机”。数据库
云服务器(Elastic Compute Service,ECS)的标准定义是指一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。云主机是对多台物理服务器资源的虚拟化,这意味着跟好的容灾能力和伸缩性,具备具备独立的宽带和 IP
,用户能够根据需求自主安装各类操做系统和配置相应的运行环境,同时能够根据本身的需求来升级降级其功能。ubuntu
上手成本高:须要有专业能力的人员管理。
依赖网络,不像物理服务器同样数据存储在本地。
因为我是学习如何配置nginx,最终我选择了阿里的云服务器ECS。
Nginx
是什么?
Nginx
是一款轻量级的 HTTP 服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具备极好的 IO 性能,时经常使用于服务端的反向代理和负载均衡。
Nginx
和 Node.js
语言的关系:Node.js
能够实现 Nginx
中绝大部分功能,可是因为它们侧重不一样因此能够配合使用达到更好的效果。Node.js
擅长于具体业务逻辑的处理,而 Nginx
擅长于底层服务端资源的处理,例如静态资源的转发、方向代理、负载均衡等。
咱们一般使用的 kexue 上网工具就是正向代理,他能够把用户的请求代理到一个能够访问外网的服务器上,而后再把返回的信息返回给客户。代理服务器对于用户来讲是不透明的,用户须要本身手动选择代理。
在大型网页中,大部分都使用了反向代理。当客户端请求服务端数据的时候。其实是先请求到了代理服务器,而后由代理服务器再转发到其同个局域网下的服务器。即向外部客户端提供了一个统一的代理入口,客户端的请求,都先通过这个 Proxy 服务器,至于在内网真正访问哪台服务器内容,由这个 Proxy 去控制。
同时用户无需进行操做,对于用户来讲反向代理是透明的。
这里的方向就是正向代理,代理的是客户端,反向代理代理的是服务器 Nginx
就是来充当这个 Proxy 的做用。
使用反向代理的缘由有:
1.安全及权限:能够经过 Nginx
过滤一部分没有权限或者不安全的请求。同时因为用户没法直接访问到真正的服务器,从而提升了安全性。
2.负载均衡:当有多个服务器时,能够用 Nginx
作负载均衡,Nginx
会查询服务器是否异常,若是异常就不发送请求到该服务器上,知道服务器恢复正常。同时还会将请求分到各个服务器上。保证了服务器的安全和稳定性。
地域和可用区:是指 ECS 实例所在的物理位置。
实例:等同于一台虚拟机,包含 CPU、内存、操做系统、网络、磁盘等最基础的计算组件。
实例规格:是指实例的配置,包括 vCPU 核数、内存、网络性能等。实例规格决定了 ECS 实例的计算和存储能力。
镜像:是指ECS实例运行环境的模板,通常包括操做系统和预装的软件。操做系统支持多种 Linux 发行版本和不一样的 Windows 版本。
块存储:包括基于分布式存储架构的 云盘和共享块存储,以及基于物理机本地硬盘的 本地存储。
快照:是指某一个时间点上一块弹性块存储的数据备份。
网络类型:
专有网络:基于阿里云构建的一个隔离的网络环境,专有网络之间逻辑上完全隔离。更多信息,请参考专有网络 VPC
。
经典网络:统一部署在阿里云公共基础内,规划和管理由阿里云负责。
安全组:由同一地域内具备相同保护需求并相互信任的实例组成,是一种虚拟防火墙,用于设置实例的网络访问控制。
是由阿里云官方或第三方合做商家提供的系统基础镜像,仅包括初始系统环境。请根据您的实际状况自助配置应用环境或相关软件配置。
基于用户系统快照生成,包括初始系统环境、 应用环境和相关软件配置 。选择自定义镜像建立云服务器,节省您的重复配置时间。
是其余帐号的自定义镜像主动共享给您使用的镜像。阿里云不保证其余帐号共享给您的镜像的完整性和安全性,使用共享镜像须要自行承担风险。了解共享镜像详情>
提供经严格审核的优质镜像,预装操做系统、应用环境和各种软件,无需配置,可一键部署云服务器。知足建站/应用开发/可视化管理等个性化需求。了解镜像市场服务>
公共镜像,中 CentOS
和 Ubuntu
是 Linux 的 2 个主流的发行版。
![]() |
![]() |
---|---|
基于 Red Hat Linux Enterprise | 基于 Debian |
更新频度较少 | 常常更新 |
更稳定和更安全一些,由于不常常更新。 | 更新的软件包可能不稳定,不安全?不会,由于他们在发布到正式版本前进行了大量测试。 |
没有足够的教程和用户群较少(LCTT 译注:多是因为国内外状况不一样,在国内,相对 Ubuntu 来讲,人们更喜欢用 CentOS 作服务器) | 丰富的文档,活跃的社区和大量的在线教程 |
对初学者困难,由于基于 Red Hat 桌面发行版不流行 | 更容易为已经熟悉桌面版 Ubuntu 的初学者使用 |
支持 cPanel | 不支持 cPanel |
.rpm 软件包和 “yum” 软件包管理器 | .deb 软件包和 “apt-get” 软件包管理器 |
新手:更适合使用 Ubuntu
。
1.因为他社区强大,不少问题能够马上找到解决方案
2.Ubuntu
服务器对于之前使用过 Ubuntu
桌面的人来讲会容易得多。其余发行版也同样,可是 Ubuntu
桌面版比任何其余基于 Linux 的家用桌面更受欢迎。
商用: 使用 Centos
1.CentOS
相对更稳定以及更安全,因为更新频率低,测试时间长,因此存在的 Bug 不多。
2.大多数控制面板(包括最受欢迎的控制面板 - cPanel
)仅支持 CentOS
。若是你须要控制面板那么选择 Centos
是更好的。
购买云服务器 ECS 具体看本身需求,分为一键购买和自定义购买。
先进入 ECS
控制台找到按图中步骤进行链接,最后远程登录的帐号为 root,密码为服务器密码。
注意:密码必须复杂否则容易被入侵。而后把全部相关帐号密码保存起来以避免丢失。链接远程服务器时,我使用xShell
。其登陆时能够自动保存登陆态。
Xshell + Xftp 我的版下载地址,输入名称和邮箱能够得到下载链接下载。
新建会话,填入实例中的公网 IP。
因为接入端口为 22,因此须要在安全组容许端口 22 被接入。
Nginx
nginx.org
是开源社区,管理着Nginx
开源版。
nginx.com
是商业社区,管理着Nginx Plus
商业版。这里咱们使用的是开源版Nginx官网
使用 Xshell
输入帐号密码进入界面,直接按官网,一顿操做。
sudo apt install curl gnupg2 ca-certificates lsb-release
复制代码
Nginx
的 apt 存储库echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
复制代码
Nginx
sudo apt update
sudo apt install nginx
复制代码
Linux
命令cd 路径 //进入文件
ps -ax | grep nginx //查看正在运行进程中包含nginx的
kill 端口号 //上个命令可查到端口号kill 掉进程
mkdir dirName1 dirName2 //建立文件夹
ls //查看当前目录
ll //查看当前目录及其权限
rm -rf path //强制删除path没法恢复
rm path //删除path文件
cp dirName //赋值文件夹
vim //编辑文件夹,退出且保存须要先按Esc 后输入 :wq
cat //查看文件夹
复制代码
ll // 查看当前目录
复制代码
cd .. // 到上一层(最顶层)
ll // 查看当前目录
复制代码
cd etc/nginx // 进入到 Nginx 目录
ll // 查看目录
复制代码
vim nginx.conf // 编辑配置文件
i // 进入编辑模式
复制代码
esc // 退出编辑
:wq // 保存当前编辑
// 接下来要重启才能生效
复制代码
方法1:
ps -ax | grep nginx // 查看正在运行进程中包含 Nginx 的进程
kill 端口号 // 上面能够查询到
nginx
复制代码
方法2:
nginx -s reload // 重启服务器
复制代码
nginx 直接开启
nginx -s quit 保存后退出
nginx -s stop 直接退出
nginx -s reload 修改配置项后直接更新
#能够配合 ps -ax | grep nginx 来查看当前 Nginx 使用的端口
复制代码
输入你服务器的 IP
后会直接看到 welcome nginx
页面!这是因为配置项默认引用 /conf.d
路径下的全部配置文件。
若是不须要,那么直接注释掉。本身在 nginx.conf
文件配置便可
server {
# nginx监听端口号,不能被其余应用占用a
listen 80;
# nginx绑定的域名
server_name localhost;
# 公共静态资源
location / {
index index.html;
root /project/airport_pc;
# 项目打算放入的位置
autoindex on;
# 是否启用目录索引
}
}
复制代码
下载 winSCP
或者 Xftp
后登录
把 Vue
打包获得dist文件下的文件放到前面配置位置下(前面配置的 /project/airport_pc
)
// /etc/nginx# vim nginx.conf 文件
default_type application/octet-stream;
# 默认文件类型
# Load modular configuration files from the /etc/nginx/conf.d directory.
# 加载模块化配置文件
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
# include /etc/nginx/conf.d/*.conf;
gzip on;
gzip_comp_level 6;
gzip_types text/plain application/javascript application/x-javascript text/css text/javascript ;
gzip_static on;
gzip_vary on;
gzip_buffers 2 4k;
gzip_http_version 1.1;
server {
# nginx监听端口号,不能被其余应用占用a
listen 80;
# nginx绑定的域名
server_name localhost;
# 公共静态资源
location / {
index index.html;
root /project/airport_pc/;
autoindex on;
# 是否启用目录索引
# 开启强缓存
add_header Cache-Control max-age=360000;
}
}
}
复制代码
注意:
海外服务器和国内服务器的区别主要在于国内服务器须要备案,主要访问者是中国人。
备案完成后,若是须要更换服务器不须要从新备案,只须要把以前备案过的域名解析到新的服务器便可。
备案完成后,想要更换其余域名解析到该服务器,没法直接经过域名访问到该服务器,须要从新备案。
终于结束了!本篇文章主要是总结,网上资料存在矛盾以及重复,若是发现错误,欢迎留言指出!
若是对你有用,点个赞再走呗!
Nginx
进阶可看 Nginx与前端开发、Nginx 从入门到实践,万字详解!
参考文档: