首页 > 系统相关 >nginx基础面试题

nginx基础面试题

时间:2024-08-20 08:56:16浏览次数:14  
标签:index 面试题 log fstab 基础 server nginx html root

1、破解密码:

1、首先重启虚拟机,启动的时候马上按e键进入安全模式
2、在有Linux那行的最后面加上rd.break
3、ctrl+x将文件
4、以读写的方式重新挂载:mount -o remount,rw  /sysroot
5、进入路径:chroot  /sysroot
6、改写密码:passwd 
6、打安全标签:touch /.autorelabel
7、退出exit
8、重启

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后输入passwd,把密码输入进去,密码是不出现的。

最后reboot重启。

2、创建一个500M的分区,格式化为XFS,挂载到/common,要求下次开机生效

fdisk   /dev/sdb
输入n新创建分区
输入p创建主分区
创建一个500M分区
输入w保存分区
最后对分区进行内核写入:partprobe  /dev/sdb

3、将/usr/local打包到/root/backup_local.tar.bz2

tar  -Jcvf  /root/backup_local.tar.bz2   /usr/local

4、让natasha用户在每个月21号的下午3点到5点之间每隔10分钟执行一次I AM RHCE

进入:su - natasha
输入crontab  -e
0-50 15 21 * * /bin/echo "I AM RHCE" >> /home/natasha/cron.log 2>&1

5、创建admin的组

groupadd  admin

名为natasha的用户,其属于admin的组,该组是这个用户的附属组

useradd  -G admin   natasha

名为harry的用户,属于admin组,该组是这个用户的从属组

useradd  -g  admin   harry

名为sarah的用户,其没有可以交互的shell,不属于admin组

useradd  -s   /sbin/nologin   sarah
参数G和g的区别:但是我还是有点分不清从属组合附属组。
[root@localhost html]# useradd -g admin natasha
[root@localhost html]# id natasha
uid=1001(natasha) gid=1002(admin) groups=1002(admin)
[root@localhost html]# useradd -G admin harry
[root@localhost html]# id harry
uid=1002(harry) gid=1003(harry) groups=1003(harry),1002(admin)

6、查找/目录下user1用户的所有文件,并拷贝到/root/findfile/目录中

cd  /home/user1

cp  -r /home/user1/   /root/findfile/

7、给你的系统swap增大500M空间

1、创建文件
sudo dd if=/dev/zero of=/swapfile bs=1M count=500
2、设置权限
chmod  600  /swapfile
3、格式化swap文件
mkswap  /swapfile
4、启用swap文件
swapon  /swapfile
5、设置开机自动挂载swap
echo '/swapfile none swap defaults 0 0' | sudo tee -a /etc/fstab
6、验证swap空间
free  -m 或者  swapon --show

8、创建一个PE大小为8M的一个20个PE的tangkai,卷组名为vg0,格式化为ext3,挂载 到/storage目录下,要求开机生效

1、首先得有一个干净的硬盘分区。
2、然后开始创建PV——VG——LV
pvcreate /dev/sdb2
vgcreate -s 8M vg0 /dev/sdb2       #参数s是设置PE大小的。
lvcreate  -l  20  -n   tangkai  vg0       #参数l是PE的值乘以l后面的数
3、格式化逻辑卷:
mkfs.ext3 /dev/vg0/tangkai
4、创建挂载点:
mkdir   /storage
5、挂载逻辑卷
mount  /dev/vg0/tangkai   /storage
6、验证挂载
df  -h  /storage

7、查看卷组详情状态
vgdisplay

--------------------------------
还可以永久挂载(开机自动挂载)
echo '/dev/vg0/tangkai /storage ext3 defaults 0 2' | sudo tee -a /etc/fstab
更新挂载:
mount  -a

9、编写一个shell脚本,用于搜集其执行主机的信息

vim test.sh

#!/bin/bash

# 获取日期和时间信息
current_date=$(date '+%Y年 %m月 %d日 %H:%M:%S %p %A %Z')

# 打印日期和时间
echo "$current_date"

# 获取并打印当前用户
echo "当前的用户为 $(whoami)"

# 获取并打印当前用户的宿主目录
home_dir=$(eval echo ~$(whoami))
echo "当前用户的宿主目录为 $home_dir"

# 获取并打印当前用户的标识(UID)
user_uid=$(id -u $(whoami))
echo "用户的标识为 $user_uid"

# 获取并打印主机名称
host_name=$(hostname)
echo "主机名称为 $host_name"

# 获取并打印网卡的IP地址
# 假设是第一个网卡,这里可能需要根据实际情况调整
ip_address=$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d/ -f1 | head -1)
echo "网卡的IP地址为 $ip_address"

10、编写一个脚本实现显示时间和日期, 列出所有登录系统的用户,并且给出系统的当前时间以及已经运行多长时间,最后脚本还会 将这些信息写入一个日志文件。

#!/bin/bash

# 定义日志文件的路径
LOGFILE="/var/log/system_info.log"

# 函数:记录当前时间和日期
log_date_and_time() {
    echo "====================" >> "$LOGFILE"
    date '+%Y-%m-%d %H:%M:%S' >> "$LOGFILE"
}

# 函数:列出所有登录用户
list_logged_users() {
    echo "Logged in users:" >> "$LOGFILE"
    who >> "$LOGFILE"
}

# 函数:显示系统运行时间
uptime_info() {
    echo "System uptime:" >> "$LOGFILE"
    uptime >> "$LOGFILE"
}

# 记录脚本执行开始的时间
log_date_and_time

# 列出所有登录用户
list_logged_users

# 显示系统的当前时间和已经运行多长时间
uptime_info

# 记录脚本执行结束的时间
log_date_and_time

# 显示脚本执行结果
echo "The system information has been logged to $LOGFILE"

11、创建databas 数据库,在改库中创建stundent表,表结构 id 主键 姓名 唯一约束 年龄 班级 。然后添加数据

#在创建数据库、数据表时,在创建的是时候就把字符集设置成utf-8,不然后续输入中文就会报错。注意:如果您正在使用的是MySQL 8.0或更高版本,utf8mb4已经是默认的字符集。如果不是就用下面的方式解决。

解决办法:一种是在/etc/my.cnf中添加,这样他以后创建的数据库都是utf8mb4.
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
#设置客户端默认字符集
[client]
default-character-set=utf8mb4
#设置默认连接字符集
init_connect='SET NAMES utf8mb4'
重启服务:systemctl restart mysql
最后验证:
SHOW VARIABLES LIKE 'character_set_server';
SHOW VARIABLES LIKE 'collation_server';

第二种就是你修改成你需要的字符集格式:
ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改列名(字段)的字符集
ALTER TABLE 表名 CHANGE 列名 列名 VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-------------------------------------------------------------
CREATE TABLE IF NOT EXISTS student (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) UNIQUE,
  age INT,
  class VARCHAR(255)
);

insert  into  student  (name,age,class)  values ('yk',20,'大四一班') ,('chg',22,'大四一班') ;

12、修改姓名字段的字段名为ename

ALTER TABLE student CHANGE name ename VARCHAR(255);  #改名后的ename后面也要加上数据类型和长度不然会报错。

13、创建一个网页,网页内容是hello,world默认主目录是/html,用IP/test和IP两种方式访问,应该怎么做

审题有点问题,他是要我用两次配置文件进行访问,还是说全部放到一个配置文件中去访问。我下面这个就是创建了两个html,然后他们分开访问。

server {
    listen       80;
    server_name  localhost;

    # 根目录设置(相当于全局变量)
    root   /usr/share/nginx/html;
    index  index.html index.htm;

    # 根URL 配置
    location / {
        # 尝试提供请求的文件或目录,如果不存在则提供 index 文件
        try_files $uri $uri/ /index.html;
    }

    # /test 路径配置
    location /test {
        # 尝试提供 test.html 文件,如果不存在则返回 404 错误
        try_files /test.html =404;
    }

    # 错误页面配置
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

14、ABC三台服务器,A和B为web服务器,C为代理服务器,要求用加权轮询的方式做负载均衡,A的权重为2,B的权重是4

A做代理服务器:
upstream myapp{
        server  10.0.0.19:80  weight=2;
        server  10.0.0.36:80  weight=4;
}

server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        proxy_pass http://myapp;
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

}

B和c做正常服务器
server {
    listen       80;
    server_name  10.0.0.19;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

15、做nginx动静分离的实验

思路:将静态文件放在代理服务器中,动态资源放在被代理的服务器中。
 静态资源配置:
  server {
        listen       80;
        server_name  10.0.0.17;
        location ~ \.(html|jpg|png|js|css|gif|bmp|jpeg) {
            root   /usr/local/nginx/html;
            index  index.html index.htm;
        }
 动态资源配置:
 server {
    listen 80;
    server_name localhost;
    location ~ \.php$ {
        root /usr/share/nginx/html;  # 指定网站目录
        fastcgi_pass 127.0.0.1:9000; # 指定访问地址
        fastcgi_index index.php;      # 指定默认文件
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 站点根目录,取决于 root 配置项
        include fastcgi_params;        # 包含 nginx 常量定义
    }
}
代理服务器的配置:省略。
1、在10.0.0.18IP地址上加上/index.html既可以访问静态页面,打开access.log日志,能够查看到相关静态信息日志
1、在10.0.0.18IP地址上加上/index.php既可以访问静态页面,打开access.log日志,能够查看到相关动态信息日志

16、访问IP/asd的时候跳转到baidu.com (rewrite重定向)

server {
    listen       80;
    server_name  10.0.0.19;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        rewrite .* http://jd.com  permanent;  #
    }



}

17、用户访问我的网站的时候只允许他每秒访问一次 (访问控制及流量控制)

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
server {
    listen       80;
    server_name  10.0.0.19;

    location / {
        limit_req zone=mylimit;
        root   /usr/share/nginx/html;
        index  index.html index.htm;
#       rewrite .* http://jd.com  permanent;
    }
}
主要加了两条命令limit_req_zone和limit_req zone=mylimit;

18、拷贝/etc/fstab到/tmp/fstab

cp  /etc/fstab   /tmp/fstab

/tmp/fstab的权限为所有者所有组为root任何人不可以执行这个文件

[root@localhost html]# ll /tmp/fstab 
-rw-r--r-- 1 root root 500 Aug 16 16:52 /tmp/fstab

natasha对该文件有读写权限

setfacl -m u:natasha:rwx /tmp/fstab

harry对该文件没有读写权限

setfacl  -m  u:harry:-  /tmp/fstab      #-代表没有权限。

其他用户对该文件有读取权限,默认其他用户就是只读权限。

[root@localhost html]# getfacl /tmp/fstab 
getfacl: Removing leading '/' from absolute path names
# file: tmp/fstab
# owner: root
# group: root
user::rw-
user:natasha:rw-
user:harry:---
group::r--
mask::rw-
other::r--

stab


natasha对该文件有读写权限

setfacl -m u:natasha:rwx /tmp/fstab


harry对该文件没有读写权限

setfacl -m u:harry:- /tmp/fstab #-代表没有权限。


其他用户对该文件有读取权限,默认其他用户就是只读权限。

[root@localhost html]# getfacl /tmp/fstab
getfacl: Removing leading ‘/’ from absolute path names
#file: tmp/fstab
#owner: root
group: root
user::rw-
user:natasha:rw-
user:harry:—
group::r–
mask::rw-
other::r–


标签:index,面试题,log,fstab,基础,server,nginx,html,root
From: https://blog.csdn.net/yd3202/article/details/141265873

相关文章

  • 【书生大模型实战营(暑假场)闯关材料】基础岛:第3关 浦语提示词工程实践
    1.配置环境时遇到的问题注意要使用terminal,而不是jupyter。否则退出TMUX会话时,会出问题。退出TMUX会话命令如下:ctrl+BD#先按CTRL+B随后按D另外一个是,端口转发命令[email protected]{本地机器_PORT}:127.0.0.1:{开发机_PORT}-oS......
  • 高等数学基础(1)
            我们知道机器学习的特点就是:以计算机为工具和平台,以数据为研究对象,以学习为中心;是概率论,线性代数,数值计算,信息论,最优化理论和计算机科学等多个领域的交叉学科。所以这里我打算补充一下机器学习涉及到的一些常用的知识点。       对于人工智能必备数学......
  • 【数据结构与算法第一章】编程基础:变量与数据类型、指针、结构体、数组与链表、程序结
    目录【数据结构与算法第一章】编程基础1.1变量与数据类型1.2指针1.3结构体1.4数组和链表1.5程序结构1.6函数中参数的传递1.7C语言中运算符的含义【数据结构与算法第一章】编程基础1.1变量与数据类型变量:    ①在C语言中,所有变量必须先声明后使用......
  • 二进制下载部署Nginx
    一、通过Nginx官网并采取二进制方式部署Nginx官网二、具体步骤[[email protected]]#ll-dnginx.repo-rw-r--r--.1rootroot398Aug1722:01nginx.repo[[email protected]]#pwd/etc/yum.repos.d接下来可以直接使用yum-yinstallnginx则是直......
  • Django:查询基础语法
    一、数据准备1、在models.py中定义一个新闻和新闻类型的模型类classNewsInfo(models.Model):"""新闻表"""title=models.CharField(max_length=100,help_text='新闻标题',verbose_name='新闻标题',blank=True,default='')content=m......
  • 多线程基础知识(一)
    多线程多线程​ 进程:正在运行的程序,是系统进行资源分配和调用对的独立单位,每一个进程都有它的内存空间和系统资源。可以理解为,一个正在运行的程序。​ 线程:是进程中的单个顺序控制流,是一条执行路径,一个进程如果只有一条执行路径,则称为单线程程序;一个进程如果有多条执行路径,则称......
  • 033、Vue3+TypeScript基础,路由传参时候把层级脱掉
    01、Datail.vue代码如下:<template><ulclass="news-list"><li>编号:{{route.query.id}}</li><li>编号:{{route.query.title}}</li><li>编号:{{route.query.content}}</li></ul></tem......
  • Linux搭建环境:从零开始掌握基础操作(二)
    ​​您好,我是程序员小羊!前言软件测试第一步就是搭建测试环境,如何搭建好测试环境,需要具备两项的基础知识:1、Linux命令:软件测试第一个任务,一般都需要进行环境搭建,一部分,环境搭建内容是在服务器上实现的,跟服务器交互(没有图形化页面),需要使用Linux命令。2......
  • python基础(06控制语句)
    python系列文章目录python基础(01变量&数据类型&运算符)python基础(02序列共性)python基础(03列表和元组)python基础(04字符串&字典)python基础(05集合set)文章目录python系列文章目录前言一、语句块二、bool类型:Ture、False三、条件判断(if、else、elif)四、循环语句五、推......
  • 【网络安全入门】学习网络安全必须知道的100 个网络基础知识_网络安全知识入门基础_网
    什么是链接?链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。2OSI参考模型的层次是什么?有7个OSI层:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。3什么是骨干网?骨干网络是集中的基础设施,旨在将不同的路由和数据......