咱们好啊,最近言哥的新小册——NestJS项目实战上线了,我也在小册群潜伏了一段时间,可是留意到很多前端同学在实战的过程中对装备 Linux 相关环境这件事上,遇到了不同程度的困难,所以我就想着出一篇教程帮助咱们快速的把握 Linux 上的常用指令,以及相关中间件的装置。

看到这,了解后端的同学也别急着划走,说不定正文部分就能了解到一些你不知道的常识呢,尤其是 Mysql装置、Systemctl 和 ufw 指令。

好了,本nginx面试题文大纲如下:

前后端都要懂的 Linux 中间件装置与常用指令攻略

虽然从理论上来说,我应该先讲指令,后讲详细的中间件环nginx重启境,可是从我个人的视点来体验,先实践,之后弄懂相关指令的意思就有一种茅塞顿开的感觉,所以本文将按照上文的顺序进行行文。

咱们或许留意到了,上图的指令中并没有根底指令,我以为根ubuntu和linux的区别底指令扫一眼就行,没必要特殊回忆,我常用的根底指令如nginx面试题下:

  1. top:检查体系进程状况ubuntu怎么改成中文

  2. cd:切换目录。

  3. vim:修正文件。

  4. mkdir:创建文件夹。

或许是我场景有限,自己玩服务ubuntu安装器的话根底指令除了这四个以外别的根前端面试题本没用过,所以docker是干什么的我建议咱们也没必要在这方面花费太多时ubuntu是什么操作系统间,尤其前端面试题是前端同学。

最终,本文的 Linux 环境版别为:Ubuntn 20 LTS,强烈建议咱们运用 Ubuntn(的确比较好用),并且期望咱们养成点赞后看的好习惯。Ubuntu

注:文本装置nginx启动命令中间件都将以官方源进行装置,回绝运用包办理器的源nginx重启,和官方保持统一。

Nginx

原来我一直是用源码编译的方法进行装nginx反向代理置 Nginx,现在觉得运用包办理器进行装置docker菜鸟教程 + systemctl 办理更方便一些。

进入正题,运用官方源进行装置大致能够分为四步:

  1. 装置依靠。

  2. 生成 / 导入 key前端开发

  3. 设置 Ndocker常用命令ginx 源。

  4. 装置。

# 装置依靠
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
# 生成key
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor 
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
# 设置 Nginx 源
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] 
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" 
    | sudo tee /etc/apt/sources.list.d/nginx.list
# 更新 && 装置
sudo apt update
sudo apt install nginx

装置完成后咱们能够运用 systemctl start nginx 指令发动 Nginx,Nginx 一般来说咱们只需求了解两部分就够了:装备文件和常用指令。

Ngi前端和后端的区别nx 的装备文件在:/eubuntu和linux的区别tc/nginx/nginx.cnf,三个常用指令如下:

  1. Nginx –源码之家s reload:重载装备文件。

  2. Nginx -s stodocker容器p:快dockerfile速关机。

  3. Nginx -s quit:优雅关机。

最终,能够运用 curl -I 127.0.0.docker是干什么的1 测验一下 Nginx 是否正常,看到如下呼应的便是 OK:

HTTP/1.1 200 OK
Server: nginx/1.22.0
Date: Sat, 09 Jul 2022 08:25:06 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Mon, 23 May 2022 23:59:19 GMT
Connection: keep-alive
ETag: "628c1fd7-267"
Accept-Ranges: bytes

Nginx 装置比较简略,接下来会渐渐复杂起来。

Node

Node 装置和前端面试题其他的有所不同,Nodedocker和虚拟机的区别 高版别居然会和 Linux 版别有些不兼容,以我现在的 Ubunt前端开发n 20 LTS 举例,在 20 版ubuntu是什么操作系统别之下的比方 19 / 18 版别是不支撑 Node18+ 的,详细的兼容列表能够在其 Github前端和后端 上面找到:gith前端面试题ub.com/ubuntu20.04安装教程nodubuntu和linux的区别esource/…

除掉版别问题之外,Node 运用包办理器装置也是十分简略的:

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

一行指令即可,其间 setup_18.x 能够替换为 setup_17.x 或许 setup_16.x,根据你想要的版别来即dockerhub可,假如你想要一个每次都装置最新版别的指令则能够将其替换为:setup_current.x。

接着输入 node -v 来检查装置的版别:

root@hecs-5778:~ node -v
v18.4.0

Node 这种语言环境一般都不需求装备开机自启,直接经过环境变量即可调用,所以这儿就不展示装备开机自启的步骤了~

JDK / JRE

话说这儿为什么呈现 Java?由于假如前端想做一些 CICD 环境的话必不可少的会用到 Jenkins,而 Jenkins 则需求 Java 运行时环境。

JDK / J前端面试题RE 的装置一般都比较简略,一行指令就能够搞定,不过需求留意的是在当你在 Lubuntu安装inux 的包办理器上查找 J源码DK / JRE 时通常会呈现一个 handleless 版别:

root@hecs-5778:~ sudo apt-cache search jdk-17
openjdk-17-jdk - OpenJDK Development Kit (JDK)
openjdk-17-jdk-headless - OpenJDK Development Kit (JDK) (headless)
openjdk-17-jre - OpenJDK Java runtime, using Hotspot JIT
openjdk-17-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-17-source - OpenJDK Development Kit (JDK) source files

headdocker命令less 版别是不支撑图形化接ubuntu安装口以及人机交互设备 (鼠标、键盘) 的版别,它通常被用于服务器端,所以假如你部署的项目便是常规的 Web 应用那能够直接装置 handless 版别进行运用,它比较规范版docker私库引进的依靠更少,占用的资源也更少。

说完了版别前端和后端哪个工资高,接下来说装置,假如你在 Linux 上面装置软件懒得去查找指令能够直接敲击对应的指令,大概率 Linux 的包办理工具会提示你进行dockerhub装置:

root@hecs-5778:~ java
Command 'java' not found, but can be installed with:
apt install openjdk-11-jre-headless  # version 11.0.15+10-0ubuntu0.20.04.1, or
apt install default-jre              # version 2:1.11-72
apt install openjdk-16-jre-headless  # version 16.0.1+9-1~20.04
apt install openjdk-17-jre-headless  # version 17.0.3+7-0ubuntu0.20.04.1
apt install openjdk-8-jre-headless   # version 8u312-b07-0ubuntu1~20.04
apt install openjdk-13-jre-headless  # version 13.0.7+5-0ubuntu1~20.04

接下来直接履行:apt install openjdk-17-源码编程器jre-headless 进行装置。

当然并不建议所有软件都用这种方法进行装置,由于包前端和后端办理器给你引荐前端工程师的并不一定是官方源,除了这种编程语言环境,其他服务端大型软件我更引荐根据其官网文档进行装置,比方在 MongoDB 文档上面就写明了 Ubuntu 自带的源中的 MongoDB装置包不是官方源装置包。

由于编程语言的相关指令一般都会参加环境变量,所以 JDK / JRE 就没必要装备开机自启之类的东西了,直接运用即可。

Redis

Redis 作为一个老牌缓存中间件,现在越来越多的前端也知道它了,高功用 + 高可前端面试题用便是它的优势~

Redis 装置一般是分为两步:更新 Redis 源和nginx服务器 apt 装置nginx是干嘛用的,指令如下:

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis

装置之后ubuntu安装教程的有两个文件途径需求知道:

  1. 发动脚本途径:/usr/bin/redis-server

  2. 装备文件途径:/etc/redis/redis.co源码时代nf

在正式发动 Redis 之前,咱们一般会去修正一下它的装ubuntu系统安装教程备文件,由于默许的 Redis 装备是不支撑长途拜访和无暗码的,所以咱们需求 vim /etc/redis/redis.conf 一下,将如下两个装备进行修正:

bind 0.0.0.0 ::1
requirepass yourpassword

保存之后能够运用: systemctl start redis-server 发动 Redis 服务。

假如需求开机自发动能够经过指令:systemctl enable redis-server 进行设置。

这样 Redis 就能够自发动了,对了,Redis 默许运用 6379 端口~

参阅文档:redis.io/docs/gettin…

MongoDB

传闻前端选数前端是什么工作据库第一挑选便是Moubuntu命令ngoDB,MongoDB 比较老牌关系型数据库——MySQL 的确更轻源码编辑器下载量级,源码时代功用方面简略运用还要比 MySQL 强上不少,我一个后端也喜爱上 MongoDB 了现在。

MongoD源码编辑器B 的装置一般分为两步:更新 MongoDB 源和 apt 装置,指令如下源码网站

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org

MongDB 装置完了之后前端工程师有几个常用目录需求知道:

  1. 装备文件:/etc/mongod.conf。

  2. 数据目录:/var/lib/mongodb。

  3. 日志目录:/var/log/mongodb。

之后咱们还需求修正一下装备文件,由于默许的 MongoDBnginx负载均衡 不支撑长途拜访,运用 vim 打开装备文件之后,修正 bind 属性即可:

net:
  port: 27017
  bindIp: 0.0.0.0

修正完成之后就能够发动 MongoDB 了,运用 sudo systemctUbuntul start mongod 进行发动,假如提示你 Failed to start mon源码编辑器god.service: Unit mongod.service not found. 能够先运用 sudo systemctl daemon-reload 然后再次运行上面的ubuntu怎么改成中文发动指docker菜鸟教程令即可。

假如需求开机源码自发动能够经Nginx过指令:systemctl enablnginx面试题e mongod 进行设置。

这样 MongoDB 就能够自发动了,MongoDB 默许运用 27017 端口~

对了数据库这种玩意我强烈不建议运用 Docker,一是费事二是没必要,吃力不讨好。

参阅文档:www.源码时代mongdocker和虚拟机的区别odb.com/docs/manual…

MySQLubuntu怎么改成中文

MySQL 装置比较复杂,除了装备文件外还要处理 ROOT 权限。

MySQL 的装置一般也是两种方法:

  1. 经过运用 MySQL apt 存储库装置(留意:这不是设置官方源的方法)。

  2. 经过 Linux apt 包办理器装置。

ubuntu系统安装教程于官网文档中对这两种方案都做了介绍,这代表着这两种方案都能够进行装置,那么咱们直接经过 Ubuntu 自带的 apt前端和后端哪个工资高 包办理器会十分的方便:

sudo apt-get install mysql-server

留意,这条指令会帮你装置最新的 MySQL,在现在这个时间点装置的是 MySQL8,我也强烈建议不要再运用 8 以下的版别了,MySQL 8 带来的源码交易平台功用提升真的十分巨大。

这儿需求额定说到一件事,便是 MySQL 的数据目录初始化,假如咱们是运用装置程序和包办理器进行装docker私库置,一般都会自动进行数据目录初始化,假如非这种方法则需求手动进行数据目录初始化,否则将无法发动 MySQ源码1688L。docker菜鸟教程

由于咱们是运用 apt 方法进行装置,所以无需关怀数据目源码1688录初始化的事儿,可是仍有一些东西需求咱们关注:

默许目录

  1. 数据目nginx反向代理录:/vadocker安装r/lib/mysql。

  2. 日志目录:/var/log/mysql。

  3. 装备文件目录:/etc/mysql/mysql.conf.d。

长途拜访

长途拜访需求修正两处:装备文件和用户权限,装备文件一般在运用如下指令进行修正:

vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0

MySQL 的默许装备文件一般在 /etc/mysql/mysql.conf.d/mysqld.cnf,修正用户权限源码编辑器则是需求登陆 MySnginx面试题QL 中去修正数据库:

mysql -u root -p
use mysql;
update user set host='%' where user='root';
flush privileges;

ROOT 暗码

MySQL 的初始化暗码根据装置方法不同默许暗码也不同,一般有三种方法:

  1. 装置过程中提示你设置。前端开发需要学什么

  2. 空。

  3. 随机暗码。

假如你现已装备了暗码能够越过此节,下面着重说源码1688一下没有装备暗码的状况,当你没有装备暗码时能够运用运用 mysql -u root -p 用空暗码进行登录验证,假如空不是你源码的初始化暗码,那就需求在 MySQL 的过源码1688错日源码网站志里边找到你docker是干什么的的初始化随机暗码,过docker是干什么的错日志文件地址一docker容器般是源码/var/log/mysql/error.lDockerog,之后重新运用 mysql -u root -p 进行登录验证。

登录之后运用如下指令检查你ubuntu怎么读的 root 用户验证方法:

use mysql;
select user, host, authentication_string, plugin from user where user = 'root'

效果一般是这样的:

+------+------+-----------------------+-------------+
| user | host | authentication_string | plugin      |
+------+------+-----------------------+-------------+
| root | %    |                       | auth_socket |
+------+------+-----------------------+-------------+
1 row in set (0.00 sec)

Host 的 % 代表支撑长途前端是什么工作拜访,接下nginx负载均衡来需求将暗码修正为咱们的自定义暗码,这个时分要留意打印中的 pldocker和虚拟机的区别ugin 是什么,假如是 a源码uth_socket 方法则代表它运用 Unix 套接字进行无暗码验证,需求将其替换掉,前端开发需要学什么不然无法运用暗码进行验证。

接下来就能够直接运用一行指令进行暗码修正了:

ALTER USER 'root'@'%' IDENTIFIED with caching_sha2_password BY 'your_password';

由于 MySQL 8.0 之后默许nginx怎么读运用 caching_sha2_password 方法进行暗码验证,所以我这儿也和官方保持一致。

最终再运用docker菜鸟教程一行指令将 MySQL 参加开机自启列表,MySQL 默许运用 3306端口:

systemctl enable mysql

参阅文档:dev.mysql.com/doc/mysql-a…

Apt

了解 apt 之前需求先知道 Ubuntu 体源码编辑器系的包办理工具是什么,Ubunt源码时代u 体系作为 Debian 系的发行版,它和 Debian 用了同样的包办理工具:dpk源码g,而Nginx aptubuntu系统前端和后端是 dpkg 的指令行前端,它的作用是用来操作 dbkg 包办理器nginx服务器,在 Debian 系中除了 apt 这个指令行前端还有一个叫做 apt-get 的指令行前端,它比 apt 愈加的陈旧。

apt-get 在 1998 年发布,后来逐渐被 apt 取代,apt 在 Debian8 里边成为规范,在 Ubuntu16 之后开端逐渐盛行,现在很docker是干什么的多开ubuntu系统安装教程源项目的装置示例都是以 apt 为指令行前端。

Apt 要比 apt-get 略微多一些功用,可是总体功用上是差前端和后端的区别不多的,主要的亮点在于:源码中的图片

  1. 有进度条。

  2. 某些指令显示docker和虚拟机的区别包的时分带有颜色。

  3. 指令更短。

指令更短这点是我最喜爱的,接下来看一下前端和后端几个常用指令,指令这方面我不再docker菜鸟教程比照 apt-前端和后端哪个工资高get,只docker常用命令要回忆 adocker是干什么的pt 相关指令即可:

  1. Apt search:用来查找某个包,如:apt search jdk。

  2. Apt install:用来装置某个包,如:docker容器apt install nginx。

  3. Apt remove:用来删去某个包,如 apt remove nginx。

  4. Apt purge:用来删去某个包并铲除装备,如 apt purge nginx。

  5. Apt show:用来显示某个包的详细信息,如 apt show nginx。

  6. Apt list –installed:列出所有现已装置的包。

  7. Apt autoremove:删源码精灵永久兑换码去不再运用的库文件和依靠。

简略回忆以上几个指令,一般就够运用了~

Systemctl

Systemctl 是体系服务办理指令,在旧一点的 L前端面试题inux 发行版上服务办理一般是 service 指令,而较新源码交易平台的体系上则根本都是 Systemctl,Systemctl 兼容了 service 指令并具有更强壮的功用。

不过关于 Systemctl 我觉得咱们一般开发者无需了解太多,由于和 Systemctl 配套的都是nginx配置 Linux 服务相关的常识了,咱们只需求了解五个常用指令会用即可:nginx启动命令

  1. systemctl enable 服务名:用来设置服务的开机自启,这个大赞,由于更语义化一起指令也更短。

  2. systemctl ddocker安装isable 服务名:前端和后端用来封闭服务的开机自启。

  3. systemctl start 服务名:发动服务。

  4. systemubuntu安装教程ctl stop 服务名:封闭服务。

  5. systemctl restart 服务名:重启服务。

  6. systemctl status 服务名:检查服务的状况。

在上文中,咱们见到了好几次 systemctl 指令呈现,现在咱们能够再经过这几个指令试试服务敞开 / 封闭的效果,加深回忆。

ufw

UFubuntu怎么读W 是 Uncomplicated Fi源码编辑器reWall 的简称,经过这个名字咱前端们也能够看出来这是一个防火墙指令,咱们在网上查找铺开某端口的时分一般都是呈现的 iptables 指令,而 UFW 便是为了替代它而生,现在现已成为 Debian 系的默许防火墙办理指令。

UFW 这种新生代指令最大的好处便是易用易上手,尤其是对咱们这种docker常用命令非专业运维来说,记住几个常用指令就满足咱们运用了。

UFW 默许在 Ubutun 是封闭状况,你能够经过如下指令检查状况,incative 是封闭而 active 则是敞开(由于 UFW 这个指令一般都是在办理员权限下才ubuntu系统安装教程能运用,nginx是什么意思所以下文我将忽略 sudo 前缀):

root@hecs-5778:~ ufw status verbose
Status: inactive

接下来能够经过 enable 指令进行敞开:

root@hecs-5778:~ ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

UFW 第一次敞开之后会直接封闭所有端口,这样你下次就不能经过 SSH 连上云服务器了,所以敞开之后你必须立即铺开 SSH 端口:

root@hecs-5778:~ ufw allow ssh
Rule added
Rule added (v6)

ufw allwo 这个指令是专为打开端口运用的,其间内置了一些服务到端口的映射,比方上面的 ufw allow ssh 其实便是对应了 ssh 对应了 22端口,还有一些常用的例如 http 对应 80,https 对应 443,详细的规矩文件在 /etc/sedocker菜鸟教程rvices 文件下。

假如有些端口没有在预设文件中,你直接增加也可,比方咱们铺开 Redidocker命令s 的默许端口 6379:

root@hecs-5778:~ ufw allow 6379
Rule added
Rule added (v6)

最终,假如咱们的服务器是自己玩的状况下,我不建议打开防火墙,由于比较费事,你能够运用 disable 指令进行封闭:

root@hecs-5778:~ ufw disable
Firewall stopped and disabled on system startup

写在最终ubuntu是什么操作系统

写在最终nginx反向代理,讲真,本文的部分内容仍是十分详细实用的,比方 MySQL -ROOT暗码那里,我写的时分也看了网上很多相关的文章,可是根本都说不到点上,尤其是用最新的加密方法的文章则是一个也没见到,信任咱们看完本文之后应该会对这些东西了然于胸。

Linux 是个庞大的操作体系,里边随便一点拎出来都能写一本书了,所以期望咱们在前期仍是以实用为目的进行学习,不要限制在细节里。

好了,不知道咱们看完本文之后有没有什么收获,期望咱们多前端开发为本文点赞,让更多的读者看到好的内容,最终再引荐一下言哥的新小册:NestJS项目实战,Node 后端们都值得看看。

我正在参加技术社区创作者签约方案docker菜鸟教程招募活动,点击链接报名投稿。