搭建 Linux ECS 服务器
购买与基本配置
- 云服务
- 注册成为阿里云用户,购买ECS云服务器
- 购买选择
- 地域及可用区:按自己想法选择
- 实例规格:按自己位置选择
- 镜像:默认选择CentOs即可
- 网络类型:默认
- 公网带宽:按自己经济条件选择
- 购买数量和时长:按需求选择
- 几个重要的地方
- 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就行)确认即可
Nginx 详解
Nginx是开源免费的一款轻量级的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; }