隐藏Nginx标识和版本号:彻底消除安全隐患
背景为提升线上环境的安全性,常见的做法之一是隐藏Nginx的版本号,以减少潜在攻击者的信息收集。尽管可以通过 server_tokens off 参数来隐藏版本号,但这仍然会暴露当前使用的是Nginx服务。为了更彻底地解决这个问题,需要深入源代码进行处理。以下介绍具体操作
下载源码
下载源码
123[root@C8_201 ~]# mkdir /opt/soft[root@C8_201 ~]# cd /opt/soft[root@C8_201 soft]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
解压至当前目录
1[root@C8_201 soft]# tar -zxvf nginx-1.16.1.tar.gz
改源文件
我们将源码文件修改后,再进行编译安装
123[root@C8_201 soft]# cd nginx-1.16.1/[root@C8_201 nginx-1.16.1]# cd src/core/[root@C8_201 core]# vim nginx.h #修改13,14,22行。
12345 ...
Centos8报错 Failed to set locale, defaulting to C.UTF-8
报错场景
CentOS 8中执行命令,出现报错:Failed to set locale, defaulting to C.UTF-8
错误原因
没有安装相应的语言包。
没有设置正确的语言环境。
解决方法方法1
设置语言环境需使用命令 locale
locale -a 命令,查看目前系统已安装的语言包
安装中文语言包,命令yum install glibc-langpack-zh
安装英文语言包,命令 dnf install glibc-langpack-en 或 dnf install langpacks-en glibc-all-langpacks -y
方法2设置正确的语言环境
12echo "export LC_ALL=en_US.UTF-8" >> /etc/profilesource /etc/profile
或使用命令locale -gen en_US.UTF-8
Nginx反代实现Kibana登录认证功能
前言Kibana是一个流行的开源数据可视化和分析平台,它通常与Elasticsearch一起使用。然而,Kibana并不提供内置的身份验证和授权机制,这就需要我们自己实现。Nginx是一款高性能的Web服务器和反向代理服务器,具有灵活、可扩展的特点。通过配置Nginx反向代理,我们可以为Kibana添加身份验证和授权的功能,从而限制访问和保护数据安全。
实现步骤安装Nginx使用命令行或者包管理器安装Nginx,并启动服务。例如,在Ubuntu系统上执行以下命令:
123sudo apt-get updatesudo apt-get install nginxsudo systemctl start nginx
配置Nginx反向代理编辑Nginx配置文件/etc/nginx/nginx.conf,在http块中增加以下配置:
1234567891011121314server { listen 80; server_name kibana.example.com; location / { proxy_pass http://loc ...
Docker 安装和部署 Prometheus 和 Grafana 的简单教程
使用以下命令更新系统软件包并安装必要的依赖项:
12sudo yum updatesudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加 Docker 的 Yum 软件源,使用以下命令:
1sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker CE(Community Edition):
1sudo yum install -y docker-ce
启动 Docker 服务并将其设置为在开机时自动启动:
12sudo systemctl start dockersudo systemctl enable docker
配置防火墙以允许 Prometheus 和 Grafana 流量通过。使用以下命令打开端口:
123sudo firewall-cmd --add-port=9090/tcp --permanentsudo firewall-cmd --add-p ...
运维工程师学习计划
特点项目
[x] Linux
[x] Shell
[x] Nginx
[x] Prometheus
[x] Mysql
[ ] Tomcat
[ ] Ansible
[ ] Golang
[ ] Python
[x] Docker
[ ] Kubernetes
计划Linux学习计划第一周:
第一天:Linux 操作系统和基本组件
第二天:Linux 命令行介绍
第三天:Linux 目录结构和基本文件操作
第四天:文本编辑器和文件管理器
第五天:文件权限和所有权
第六天-第七天:复习和测试(例如Linux 系统的安装、配置和启动)
第二周:
第一天:Linux 进程和任务管理
第二天:软件包管理工具(例如 yum 和 apt-get)
第三天:Linux 用户和组
第四天:shell 脚本编程
第五天:文件系统和磁盘管理
第六天-第七天:复习和测试(例如远程管理、网络配置和备份)
第三周:
第一天:Linux 网络和网络工具
第二天:Linux 安全和加密
第三天:Linux 日志管理
第四天:Linux 内核和模块
第五天:Linux 虚拟化和容器化
第六天-第七天:复 ...
Python3安装及设置环境变量
背景Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。
Centos检查当前系统是否已安装Python在终端中输入以下命令来检查系统是否已安装Python:
1python --version
如果Python已安装,终端将显示Python的版本号。如果未安装,将显示错误消息。
安装Python环境如果Python未安装,可以通过以下命令来安装:
1sudo yum install python3
这将安装最新版本的Python 3。
设置环境变量一旦Python被安装,需要将其添加到系统的环境变量中,以便能够在终端中直接访问它。可以使用以下命令来打开.bashrc文件:
1nano ~/.bashrc
在文件的末尾添加以下行:
1export PATH=$PATH:/usr/bin/python3
保存并关闭文件。
重新加载环境变量使用以下命令重新加载环境变量,以便使更改生效:
1source ~/.bashrc
验证Python环境输入以下命令来验证Python环境是否正确设置:
1python3 --version
终 ...
Maven 配置阿里源
什么是Maven?如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。
以往开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包、多一个Jar包往往会报一些让人摸不着头脑的异常。
而Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar,极大提升开发效率。
什么是Maven仓库?Maven仓库用来存放Maven管理的所有Jar包。分为:本地仓库 和 中央仓库。
本地仓库:Maven本地的Jar包仓库。
中央仓库: Maven官方提供的远程仓库。
当项目编译时,Maven首先从本地仓库中寻找项目所需的Jar包,若本地仓库没有,再到Maven的中央仓库下载所需Jar包。
阿里云的maven仓库列表https://maven.aliyun.com/mvn/vie ...
Linux 清理缓存和缓存内容
背景在大多数情况下,Linux缓存耗用的内存量并不会对系统性能产生太大的影响,因为缓存可以提高系统的性能并加快访问速度。因此,除非你确实需要清除缓存以释放内存,否则最好不要将清理缓存作为常规操作。
操作
sync 命令将硬盘缓存数据同步到磁盘上,以保存文件。
echo 1 > /proc/sys/vm/drop_caches 这个命令会将页缓存清空。
echo 2 > /proc/sys/vm/drop_caches 这个命令将释放内存缓存和inode对象。
echo 3 > /proc/sys/vm/drop_caches 将清空缓存和内存缓存inode对象。
Docker搭建DNS服务器
前言 DNS服务器是(Domain Name System或者Domain Name Service)域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。
安装实验环境
IP
系统版本
角色
192.168.40.121
Ubuntu 22.10
DNS服务器
192.168.40.122
Ubuntu 22.10
测试机器
服务器端Docker安装更新软件包1root@121:~# apt-get update
安装docker1root@121:~# apt-get install -y docker.io
创建文件存储文件1root@121:~# mkdir -p /opt/docker/dns-server
创建容器运行dns服务器1root@121:~# docker run --name dns-server -d --restart=always --publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp --volume /opt/docker ...
Nginx 实现文件的上传与下载
前言Nginx是一款高性能、可靠的Web服务器软件,同时用作文件上传和下载
配置系统版本12[root@127 ~]# cat /etc/redhat-release CentOS Linux release 8.5.2111
创建用户12[root@127 ~]# useradd -s /sbin/nologin -M nginx #创建一个nginx用户,且不生成用户目录,和不能登录
创建目录12345678910111213141516171819202122232425[root@127 ~]# mkdir -p /export/share/upload/[root@127 ~]# mkdir -p /export/tmp/upload/[root@127 ~]# cd /export/tmp/upload/[root@127 upload]# mkdir 0 1 2 3 4 5 6 7 8 9 state[root@127 upload]# chown -R nginx:nginx /export/ #文件夹权限管理[root@127 export]# ...