搭建Linux云服务器

购买与基本配置

  • 云服务
  • 注册成为阿里云用户(有支付宝账号就可以不用注册),购买ECS云服务器

    购买地址
  • 购买选择
    1. 地域及可用区:按自己想法选择
    2. 实例规格:按自己家庭地位选择
    3. 镜像:默认选择CentOs即可
    4. 网络类型:默认
    5. 公网带宽:按自己经济条件选择
    6. 购买数量和时长:按需求选择

      我比较穷用新账号买了个88块钱一年的新手版本地址
  • 查看自己购买的产品

    查看自己购买的产品
  • 查看实力(左侧菜单栏-实力与镜像-实例)
  • 几个重要的地方
    1. ip地址:公网ip:是用于客户端连接服务器所用的地址(主机)
    2. 重置密码:操作-->更多-->密码/秘钥-->重置实例密码
    3. 记住:ip地址和自己的重置密码(记不住就回来重置一下)

链接linux服务器

  • 工具

    免费:putty finalshell git-bash cmder mac命令端 linux桌面

    收费:xshell SecureShell

    这里我用的putty工具进行链接
  • 链接与登陆
    1. 打开putty输入:host Name(公网ip)、port(默认22就行)确认即可

      点击连接,第1次会看到提示,选择 是 就可以
    2. 进去会让你输入login as:一般输入root即可
    3. password:你设置的密码(linux中对于密码是隐式显示,输入后在终端中看不到字符)

目录结构

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开源操作系统。软件与软件之前要有依赖关系。

  1. 源码安装 在软件官方去下载好 源码(c c++)进行编译安装 需要手动解决依赖
  2. rpm安装 rpm类似于windows安装包,使用它来安装也需要手动解决依赖
  3. yum安装 类似于npm,自动解决安装时所需的依赖

注:yum需源站,源站都在国外,所以使用yum进行软件安装,需要切换镜像源。现在所有的云主机都已经帮你完成了。

Linux 系统启动

启动过程

Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段

  1. 内核的引导
  2. 运行init
  3. 系统初始化
  4. 建立终端
  5. 用户登录系统

运行级别

注意:在云服务器中,不要去设置它的运行级别。

Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。

  • Linux系统有7个运行级别(runlevel):
  1. 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 关机
  2. 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
  3. 运行级别2:多用户状态(没有NFS)
  4. 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 命令行模式
  5. 运行级别4:系统未使用,保留
  6. 运行级别5:X11控制台,登陆后进入图形GUI模式 图形模式,多用户也是有命令
  7. 运行级别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 (存放我们的前端项目)
  1. 安装:

    yum install nginx

  2. 启用并启动Nginx服务

    sudo systemctl enable nginx

    sudo systemctl start nginx

    当然nginx默认会被安装到/usr/sbin/nginx下因此可以直接执行如下命令启动

    /usr/sbin/nginx

  3. 要验证服务是否正在运行,检查其状态

    sudo systemctl status nginx

  4. 查看当前服务器中运行端口

    netstat -tunpl

    -tunpl解释:

    • t: tcp
    • u: udp
    • n: 显示端口应用名称
    • p: pid
    • l: 只查看正在运行
  5. 扩展方法

    • 停止服务器

      方法一: sudo systemctl stop nginx

      方法二:/usr/sbin/nginx -s stop

      方法三: 杀死进程 pkill nginx

    • 重启

      /usr/sbin/nginx -s reload 不会让服务器停止,只会重新加载nginx配置让配置生效 平滑重启

      /usr/sbin/nginx -s restart 先停止服务,再重启服务

方式二:自定义目录安装

  1. 安装工具和库

    依赖软件一定要安装,否则后面的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
  2. 创建一个文件夹

    cd /usr/local

    mkdir nginx

    cd nginx

  3. 下载tar包

    wget http://nginx.org/download/nginx-1.19.0.tar.gz

    tar -xvf nginx-1.19.0.tar.gz

  4. 安装nginx

    进入目录:cd nginx-1.19.0

    执行命令:./configure

    执行make命令: make

    执行make install命令:make install

  5. 检查安装

    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)
  1. 出现这种情况一般是80端口被占用,使用sudo fuser -k 80/tcp 命令关闭80端口即可

    sudo fuser -k 80/tcp

  2. 如果没有成功可以先关闭一下防火墙再关闭80端口试一下

    使用命令:systemctl status firewalld.service 查看防火墙状态

    使用命令:systemctl stop firewalld.service 关闭运行的防火墙

4、彻底卸载和删除CentOS上的Nginx

  1. 首先查看是否在运行nginx

    ps -ef | grep nginx

  2. 如果在运行先停止nginx

    /usr/local/nginx/sbin/nginx -s stop

  3. 查看nginx安装目录

    whereis nginx

  4. 删除相关文件

    rm -rf /usr/sbin/nginx

    rm -rf /etc/nginx

    rm -rf /etc/init.d/nginx

  5. 使用yum卸载 nginx及相关依赖

    yum remove nginx

  6. 检查是否还有残余文件,有的话执行步骤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服务器)。

步骤:

  1. 在nginx配置文件中新增一个server节点
  2. 在server节点中,修改对应的站点目录
  3. 重载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以下支持不好,会出现乱码情况。

操作步骤:

  1. 修改配置,开启gzip压缩
  2. 重载nginx配置
  3. 测试是否有压缩
## 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;

动手发布一个自己的项目到服务器上

一、购买一个阿里云服务器

这里在上面购买已经提到过了需要注意以下几点

  1. 记录自己的:公网ip
  2. 操作-->更多-->密码/秘钥-->重置实例密码
  3. 操作-->更多-->网络和安全组->安全组配置

    进入后,查看规则列表中,有没有80端口,如果没有则需要添加一条规则

二、putty 登陆服务器

  1. 打开putty输入:host Name(公网ip)、port(默认22就行)点击确认即可

    点击连接,第1次会看到提示,选择 是 就可以
  2. 进去会让你输入login as:一般输入root即可
  3. password:你设置的密码(linux中对于密码是隐式显示,输入后在终端中看不到字符)

三、服务器上安装nginx

  1. 上面已经有安装方法,按照步骤安装完成即可
  2. 直接通过域名或ip地址访问nginx服务器(不同版本的nginx展示不一样)
  3. nginx下的html文件存放的就是我们前端要打包部署的文件

四、上传项目

这里我们使用fileZlia可视化工具来辅助完成刚上传工作

  1. 打开 fileZlia 工具连接linux服务器
  2. 进去到/usr/local/nginx/sbin/nginx/html目录下,
  3. 将我们vue项目打包好的dist存放到这里
  4. 这里如果dist过大会很慢,我们可以放入一个dist.zip文件
  5. 解压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;
}

前端搭建Linux云服务器,Nginx配置详解及部署自己项目到服务器上的更多相关文章

  1. Nginx配置详解 http://www.cnblogs.com/knowledgesea/p/5175711.html

    Nginx配置详解 序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作 ...

  2. Nginx高性能服务器安装、配置、运维 (3) —— Nginx配置详解

    四.Nginx 配置详解 YUM方式安装的Nginx默认配置文件放在/etc/nginx目录下,使用Vim编辑/etc/nginx/nginx.conf: ---------------------- ...

  3. nginx配置详解(转)

    Nginx 配置文件详解 user nginx ; #用户 worker_processes 8; #工作进程,根据硬件调整,大于等于cpu核数 error_log logs/nginx_error. ...

  4. Nginx配置详解(转)

    转自:Nginx简介及配置文件详解 一 Nginx简介 Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务 1.Nginx工作原理 Nginx ...

  5. Nginx配置详解

    序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...

  6. Linux系统下Nginx安装详解

    该随笔为个人原创,后期会根据项目实践实时更新,如若转载,请注明出处,方便大家获得最新博文! 注:安装Nginx需要Linux系统已经安装   openssl-fips-2.0.2.tar.gz zli ...

  7. 转发大神nginx配置详解

    序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...

  8. nginx配置详解和原理

    1.nginx的配置文件 nginx 配置文件的整体结构 user nobody nobody; # 指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行,nobody 是系 ...

  9. [转]Nginx配置详解

    Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也可作为 ...

随机推荐

  1. OpenFaaS实战之六:of-watchdog(为性能而生)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. JS替换字符

    var msg='A|B|C|D|E|F|G'; 方式1: var newMsg=msg.replace("|",""); 方式2: ps:适用特殊字符 var ...

  3. Sqli-labs 注入靶场(1-22)

    Sqli-labs靶场1-22 Sql注入的本质是代码和数据的未分离,导致用户的输入可以对数据库产生恶意的输入或输出. 本篇博客旨在通过Sqli-labs的第1-22关,详细的描述Sql注入的相关场景 ...

  4. Docker 实践及命令梳理

    文档 Docker Reference Documentation Docker 从入门到实践 [中文] 安装 安装 Docker,设置开机启动,然后配置阿里云镜像加速 1. 安装 Docker Do ...

  5. 使用Windows客户端连接Linux系统中的MySQL时产生的错误已经解决

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  6. 【笔记】jupyter notebook基础使用

    jupyter notebook基础使用 执行代码 添加格子 在输出结果的同时添加一行 run cells and insert below 输出结果,若后续没有新的代码行了,则会在后面添加一行 查看 ...

  7. 【监控】Zabbix安装

    目录 一.监控目的 二.监控方式 三.主流监控系统 四.Zabbix介绍 五.Zabbix服务端安装 5.1 环境介绍 5.2 准备系统环境 5.3 安装Nginx(源码编译安装) 5.3.1 配置N ...

  8. HTTP缓存——协商缓存(缓存验证)

    协商缓存 所谓"协商",可以理解为:客户端和服务端双方商量着来. 客户端检查资源超过有效期.强缓存命中失败的情况下,则发出请求"询问"服务器是否资源真的过期了, ...

  9. SQL 练习2

    查询同时存在" 01 "课程和" 02 "课程的情况 分析:分别先查询出包含有01课程和02课程 SELECT * from sc WHERE cid='01' ...

  10. NOIP 模拟 $29\; \rm 最近公共祖先$

    题解 \(by\;zj\varphi\) 首先考虑,如果将一个点修改成了黑点,那么它能够造成多少贡献. 它先会对自己的子树中的答案造成 \(w_x\) 的贡献. 考虑祖先时,它会对不包括自己的子树造成 ...