前端搭建Linux云服务器,Nginx配置详解及部署自己项目到服务器上

时间:2023-03-08 18:06:08

搭建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端口,如果没有则需要添加一条规则

    前端搭建Linux云服务器,Nginx配置详解及部署自己项目到服务器上

二、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文件存放的就是我们前端要打包部署的文件

前端搭建Linux云服务器,Nginx配置详解及部署自己项目到服务器上

四、上传项目

这里我们使用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 解压

前端搭建Linux云服务器,Nginx配置详解及部署自己项目到服务器上

五、配置niginx的nginx.conf

进去到/usr/local/nginx/sbin/nginx/conf目录下,找到nginx.conf

配置 server项

   location / {
root html/dist;
index index.html index.htm;
}