Skip to content

服务器运维和配置 ​

一、服务器和域名购买 ​

服务器服务商 ​

阿里云服务器:

腾讯云服务器:

百度云服务器:

华为云服务器:

域名购买 ​

二、认识服务器控制台菜单的信息 ​

概览

站点设置

安全

服务器运维

三、服务端 Linux 运维 ​

0.认识 Linux ​

Linux,全称 GNU/Linux,是一种免费使用和自由传播的类 UNIX 操作系统,其内核由林纳斯·本纳第克特·托瓦兹于 1991 年 10 月 5 日首次发布,它主要受到 Minix 和 Unix 思想的启发,是一个基于 POSIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。

它能运行主要的 Unix 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux 有上百种不同的发行版,如基于社区开发的 debian、archlinux,和基于商业开发的 Red Hat Enterprise Linux、SUSE、Oracle Linux 等。

1.连接 Linux 服务器 ​

1.使用 SSH 连接服务器 ​

window 安装 SSH(安装地址) mls-software.com

Macbook 免安装自带

2.使用方式 ​

打开终端

ssh 账号默认 root@服务器地址

例子:ssh root@123.456.789

然后选择 Y ,然后输入密码即可

image-20240219163945538

显示这个代表连接成功

image-20240219163959902

2.常用的 Linux 命令 ​

查看当前的目录的文件 ​

bash
ls

查看文件属性信息

bash
ls -l

image-20240219164612954

首字母作用 ​

文件的开头对应是 -

目录开头对应的是 d

快捷方式对应的是 l

U 盘对应的是 b

鼠标键盘等硬件对应的 c

Linux 文件属性 ​

每三个一组 rw-

-为缺少权限

image-20240219164701565

image-20240219164716918

image-20240219164726260

image-20240219164738808

image-20240219164748863

image-20240219164758563

切换目录 ​

bash
cd 目录路径

Linux wget 命令用来下载软件 ​

bash
wget https://cdn.npmmirror.com/binaries/node/v14.19.1/node-v14.19.1-linux-x64.tar.xz

下载完成之后——解压 ​

bash
使用tar 命令
-c: 压缩
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思

压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for Linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2   //解压 tar.bz2
tar –xZvf file.tar.Z   //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip

我们执行

bash
tar -xvf node-v14.19.1-linux-x64.tar.xz

Linux 权限 ​

查看查看文件信息

bash
ls -l

RWX 分别是可读 可写 可执行权限

这个权限我们可以修改使用 chmod 777 文件名

我们先学习一组规律

  • 读------R 对应数字 4
  • 写------W 对应数字 2
  • 可执行-----X 对应数字 1

所以 7 就是可读可写可执行权限

img

我们可以在 root 账户下创建一个用户,测试一下 使用 adduser 账号 passwd 给用户设置密码

bash
# 创建账户
adduser hehe
passwd hehe

重新使用这个新账户连接 sh,使用 cmd

bash
sh hehe@公网ip
然后输入密码:
hehe

hehe 用户下的看看是否有权限:无权限 的用户将无法读写

bash
echo hello>index.txt

# 没有权限出现:-bash:  index.txt: Permission denied

root 用户下增加这个账户的权限:我们 root 账号把 index.txt 设置 700

bash
chmod 700 index.txt

再次在 hehe 用户下的看看是否有权限

bash
echo hehe> index.txt

3.使用命令配置 Linux 服务器 ​

配置环境变量 ​

bash
pwd

命令用于显示工作目录

image-20240219164329783

使用 pwd 命令获取 node bin 的位置

前往跟目录下面的 etc/profile 此文件涉及系统的环境,即环境变量相关。这里修改会对所有用户起作用

使用 vi 命令编辑该文件

bash
vi profile

然后按一下 I 键 进入编辑模式

在最后一行添加

bash
export PATH=$PATH:你的目录/node-v14.19.1-linux-x64/bin

然后执行 source profile 或者重启 linux

配置淘宝代理

bash
npm config set registry https://registry.npm.taobao.org

4.未配置域名是可以使用公网 IP 访问地址 ​

例如服务器公网 IP/接口名:

四、服务器软件配置 ​

Linux 安装 Nginx ​

1、安装 gcc ​

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

bash
yum install gcc-c++

2、PCRE pcre-devel 安装 ​

PCRE(Perl Compatible Regular Expressions) 是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx 也需要此库。命令:

bash
yum install -y pcre pcre-devel

3、zlib 安装 ​

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

bash
yum install -y zlib zlib-devel

4、OpenSSL 安装 ​

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 Centos 安装 OpenSSL 库。

bash
yum install -y openssl openssl-devel

5.下载 Nginx ​

bash
wget https://nginx.org/download/nginx-1.19.9.tar.gz

6.解压 nginx ​

bash
tar -zxvf nginx-1.19.9.tar.gz
cd nginx-1.19.9

7.执行 nginx-configure 文件 ​

bash
ls
./configure

8.make 命令编译 ​

执行完后会有一个 MakeFile 文件夹

make 是一个命令工具,它解释 Makefile 中的指令(应该说是规则)。在 Makefile 文件中描述了整个工程所有文件的编译顺序、编译规则

bash
make
make install

9.查询 nginx 安装目录 ​

bash
whereis nginx

10.进入安装目录执行 nginx ​

bash
cd usr local/nginx

前往安装目录找到 sbin 执行 nginx

bash
./nginx

yum install 404 解决方案 ​

1、进入配置文件内,删除所有的.repo 文件(也可以备份)

bash
#进入配置文件夹
cd /etc/yum.repos.d/
#删除旧的配置文件
rm *.repo
#输入“y”回车确认

ls 确保该目录下的.repo 文件已完全删除 下载可以用的.repo 文件

bash
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

如果没有安装 wget,也可以用下面命令:

bash
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

运行 yum makecache 生成缓存

bash
yum makecache

Linux 防火墙 ​

1、firewalld 的基本使用 ​

启动: systemctl start firewalld

查看状态: systemctl status firewalld

停止:systemctl stop firewalld

禁用:systemctl disable firewalld

2.systemctl 是 CentOS7 的服务管理工具中主要的工具,它融合之前 service 和 chkconfig 的功能于一体 ​

启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctl stop firewalld.service 重启一个服务:systemctl restart firewalld.service 显示一个服务的状态:systemctl status firewalld.service 在开机时启用一个服务:systemctl enable firewalld.service 在开机时禁用一个服务:systemctl disable firewalld.service 查看服务是否开机启动:systemctl is-enabled firewalld.service 查看已启动的服务列表:systemctl list-unit-files|grep enabled 查看启动失败的服务列表:systemctl --failed

3.配置 firewalld-cmd ​

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息: firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic

那怎么开启一个端口呢 ​

添加 ​
bash
firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
重新载入 ​
bash
firewall-cmd --reload
查看 ​
bash
firewall-cmd --zone= public --query-port=80/tcp
删除 ​
bash
firewall-cmd --zone= public --remove-port=80/tcp --permanent

五、服务器部署项目 ​

1.域名备案解析 ​

只有中国大陆的服务器需要域名备案,而香港或者其他国家的服务器不需要备案域名

2.部署二级域名 ​

Nginx 的 conf 配置

json
# 把二级域名部署到这个vhosts文件夹
include /etc/nginx/vhosts/*.conf;

3.阿里主机绑定多个域名 ​

域名在阿里云备案,需要解析到阿里主机或服务器,阿里云的服务器又不便宜只有新用户才便宜,又不想域名掉备案又不想花重金在阿里买服务器怎么搞呢?

买阿里云的主机,但是有多个域名一个主机怎么实现加载不同的内容呢,今天这个代码是通过 ChatGPT 做出来的。

1.实现了三个域名加载不同的内容。对应域名加载对应 HTML。

2.请注意,在实际使用时,需要根据实际情况进行修改和适当的调整。

3.首先在虚拟机根目录创建一个 index.php 和三个 html 并命名为域名前缀。

4.复制下面代码到 index.php 文件中,并修改文件中的域名为自己的。

php
<?php

$host = $_SERVER['HTTP_HOST'];

switch ($host) {
    case 'www.xx8g.com':
        // 加载 xiaogao1.html 页面
        include 'xiaogao1.html';
        break;
    case 'www.xx8g2.cn':
        // 加载 xiaogao2.html 页面
        include 'xiaogao2.html';
        break;
    case 'www.xx8g3.cn':
        // 加载 xiaogao3.html 页面
        include 'xiaogao3.html';
        break;
    default:
        // 默认情况下返回一个 404 页面
        header('HTTP/1.1 404 Not Found');
        echo '<html><body>';
        echo '<h1>404 Not Found</h1>';
        echo '<p>The requested URL ' . $_SERVER['REQUEST_URI'] . ' was not found on this server.</p>';
        echo '</body></html>';
        break;
}

5.然后打开 html 修改要显示的内容即可,还有另一种实现的方法,使用伪静态,但是阿里云主机不支持 server 命令。

Released under the MIT License.