nginx基础面试题

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–


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yd3202

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值