JOBCHER BLOG
获取用户浏览器默认语言设置,自动判断跳转不同网站
自动判断跳转不同网站 根据用户目前的浏览器配置语言进行显示 供语言切换按钮,用户自定义选择不同的语言显示 根据识别用户的浏览器语言,自动判断并跳转到相应的语言网页,让你的网站更加灵动。 以下需要将代码放在 HTML 的内即可,然后自行制作多语言页面。 代码如下: 1<script type="text/javascript"> 2 //获取用户语言的顺序是 3 //1.获取本地缓存里的内容 4 //2.用户浏览器的语言设置 5 //如果上面2个都没有获取到,就直接使用'en'作为用户选择的语言 6 var language = 7 localStorage.getItem("locale") || 8 window.navigator.language.toLowerCase() || 9 "en"; 10 //把用户的语言写入缓存,供下次获取使用 11 localStorage.setItem("locale", language); 12 //判断用户的语言,跳转到不同的地方 13 if (language.indexOf("zh-") !== -1) { 14 window.location = "/zh-cn/index.html"; 15 } else if (language.indexOf("en") !== -1) { 16 window.location = "/en/index.html"; 17 } else { 18 //其它的都使用英文 19 window.location = "/en/index.html"; 20 } 21</script> 核心代码
JOBCHER BLOG
linux服务基础知识
linux 服务基础知识 1、哪些设置能够提升 SSH 远程管理的安全等级 2、ssh 连接时认证时间过长如何解决? 3、scp 和 rsync 进行远程文件复制有什么区别? 4、请描述通过 DHCP 服务器获取 IP 地址的过程。 5、简单描述 FTP 的主动模式和被动模式的区别? 6、集群环境中,如何保证所有服务器之间的时间误差较小。 7、请描述用户访问网站时 DNS 的解析过程。 8、解释权威 DNS 和递归 DNS 的含义,并描述智能 DNS 的实现原理。 9、公司里有一台服务器,需要在上面跑两个网站,并且其中一个网站需要更换新域名,请问如何处理? 网站1:www.a.com 网站2:www.b.com(旧) www.d.com(新) 10、简述 Apache 的三种工作模式? 11、请写出工作中常见的 Apache 优化策略。 12、有哪些技术可以提高网站的安全和效率? 13、Apache 和 Nginx 各有什么优缺点,应该如何选择? 14、为什么 Nginx 的并发能力强,资源消耗低? 15、写出几个 Nginx 的常用模块,并描述其功能。 16、请解释 Nginx 是如何连接 PHP 进行页面解析的? 17、请描述 Nginx 和 Tomcat 之间的数据传输过程? 18、请写出几个常见的 HTTP 状态码,并解释出现原因。
JOBCHER BLOG
mysql基础知识
mysql 基础知识 1、库表 student.report,有 3 个字段,姓名、学科、成绩,记录如下,根据要求完成 SQL 语句: Name Subject Result 李白 Math 95 张三 English 83 王五 Math 79 李六 Math 85 张二 English 74 查询姓李的同学的个数。 查询表中数学成绩大于 80 的前 2 名同学的名字,并按分数从大到小的顺序排列。 2、MYSQL 集群一主多从,主库宕机,如何合理切换到从库,其它从库如何处理? 3、单台 MySQL 达到性能瓶颈时,如何击碎性能瓶颈? 4、MySQL 什么时候创建索引? 5、误操作 drop 语句导致数据库数据破坏,请给出恢复的实际大体步骤。 6、如何保证 Redis 能永久保存数据? 7、如何利用 Redis 对 MySQL 进行性能优化?
JOBCHER BLOG
shell基础知识
shell 基础知识 1、有一个 b.txt 文本(内容如下),要求将所有域名截取出来,并统计重复域名出现的次数: http://www.baidu.com/index.html https://www.atguigu.com/index.html http://www.sina.com.cn/1024.html https://www.atguigu.com/2048.html http://www.sina.com.cn/4096.html https://www.atguigu.com/8192.html 2、统计当前服务器正在连接的 IP 地址,并按连接次数排序 3、使用循环在/atguigu 目录下创建 10 个 txt 文件,要求文件名称由 6 位随机小写字母加固定字符串(_gg)组成,例如:pzjebg_gg.txt。 4、生成随机数字。 5、批量检查多个网站是否可以正常访问,要求使用 shell 数组实现,检测策略尽量模拟用户真实访问模式。 http://www.atguigu.com http://www.gulixueyuan.com http://www.baidu.com
JOBCHER BLOG
Kubernetes 创建nfs存储类
Kubernetes 创建 nfs 存储类 首先你需要在别的终端上创建 nfs 服务并能提供 nfs 访问 Kubernetes 不包含内部 NFS 驱动。你需要使用外部驱动为 NFS 创建 StorageClass。 https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner 安装 nfs 驱动 安装 nfs 驱动 1#安装nfs客户端 2apt-get install nfs-common 3git clone https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.git 4cd nfs-subdir-external-provisioner/deploy 5k3s kubectl create -f rbac.yaml 6vim deployment.yaml 编辑 deployment.yaml 1apiVersion: apps/v1 2kind: Deployment 3metadata: 4 name: nfs-client-provisioner 5 labels: 6 app: nfs-client-provisioner 7 # replace with namespace where provisioner is deployed 8 namespace: default 9spec: 10 replicas: 1 11 strategy: 12 type: Recreate 13 selector: 14 matchLabels: 15 app: nfs-client-provisioner 16 template: 17 metadata: 18 labels: 19 app: nfs-client-provisioner 20 spec: 21 serviceAccountName: nfs-client-provisioner 22 containers: 23 - name: nfs-client-provisioner 24 image: k8s.
JOBCHER BLOG
nginx 日志格式整理
nginx 日志配置 语法 access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; # 设置访问日志 access_log off; # 关闭访问日志 例子: access_log /var/logs/nginx-access.log access_log /var/logs/nginx-access.log buffer=32k gzip flush=1m 使用 log_format 自定义日志格式 Nginx 预定义了名为 combined 日志格式,如果没有明确指定日志格式默认使用该格式: log_format combined '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; 如果不想使用 Nginx 预定义的格式,可以通过 log_format 指令来自定义。 语法 log_format name [escape=default|json] string ...; 变量 含义 $bytes_sent 发送给客户端的总字节数 $body_bytes_sent 发送给客户端的字节数,不包括响应头的大小 $connection 连接序列号 $connection_requests 当前通过连接发出的请求数量 $msec 日志写入时间,单位为秒,精度是毫秒 $pipe 如果请求是通过 http 流水线发送,则其值为"p",否则为“.
JOBCHER BLOG
linux系统开启root权限
linux 系统开启 root 权限 修改 ssh 服务配置文件 1sudo su - 2sudo vim /etc/ssh/sshd_config 增加权限 在# Authentication: 下输入 1PermitRootLogin yes 更改 root 密码,重启服务 1sudo passwd root 2service sshd restart
JOBCHER BLOG
mysql 笔记(1)
mysql 学习笔记(1) 本文章不涉及到关于 mysql 开放上的问题,主要记录关于 mysql 出现的问题,以及如何去维护 mysql 数据的日常。 mysql 各类信息的收集 收集变量信息 1show global variables; 收集进程信息 1show PROCESSLIST; 收集错误日志 1show global variables like 'log_error'; 收集慢日志信息 1show global variables like 'slow_querry_log_file'; 收集锁信息,高峰时期运行三次,每次间隔 10s 1SELECT locked_table, 2 locked_index, 3 locked_type, 4 blocking_pid, 5 T2.USER blocking_user, 6 T2.HOST blocking_host, 7 blocking_lock_mode, 8 blocking_trx_rows_modified, 9 waiting_pid, 10 T3.USER waiting_user, 11 T3.HOST waiting_host, 12 waiting_lock_mode, 13 waiting_trx_row_modified, 14 wait_age_secs, 15 waiting_query 16FROM sys.x$innodb_lock_waits T1 17LEFT JOIN INFROMATION_SCHEMA.
JOBCHER BLOG
163企业邮箱设置教程
163 企业邮箱设置教程 请进入这个网站 https://qiye.163.com/help/l-11.html
JOBCHER BLOG
git技巧
git 技巧 Git 是一个 “分布式版本管理工具”,简单的理解版本管理工具:大家在写东西的时候都用过 “回撤” 这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用 “回撤” 是找不回来的。而 “版本管理工具” 能记录每次的修改,只要提交到版本仓库,你就可以找到之前任何时刻的状态(文本状态)。 下面的内容就是列举了常用的 Git 命令和一些小技巧,可以通过 “页面内查找” 的方式进行快速查询:Ctrl/Command+f。 开卷必读 如果之前未使用过 Git,可以学习 Git 小白教程入门 一定要先测试命令的效果后,再用于工作环境中,以防造成不能弥补的后果!到时候别拿着砍刀来找我 所有的命令都在git version 2.7.4 (Apple Git-66)下测试通过 统一概念: 工作区:改动(增删文件和内容) 暂存区:输入命令:git add 改动的文件名,此次改动就放到了 ‘暂存区’ 本地仓库(简称:本地):输入命令:git commit 此次修改的描述,此次改动就放到了 ’本地仓库’,每个 commit,我叫它为一个 ‘版本’。 远程仓库(简称:远程):输入命令:git push 远程仓库,此次改动就放到了 ‘远程仓库’(GitHub 等) commit-id:输出命令:git log,最上面那行 commit xxxxxx,后面的字符串就是 commit-id 如果喜欢这个项目,欢迎 Star、提交 Pr、反馈问题😊 目录 脑图 展示帮助信息 回到远程仓库的状态 重设第一个 commit 查看冲突文件列表 展示工作区和暂存区的不同 展示暂存区和最近版本的不同 展示暂存区、工作区和最近版本的不同 快速切换到上一个分支 删除已经合并到 master 的分支 展示本地分支关联远程仓库的情况 关联远程分支 列出所有远程分支 列出本地和远程分支 查看远程分支和本地分支的对应关系 远程删除了分支本地也想删除 创建并切换到本地分支 从远程分支中创建并切换到本地分支 删除本地分支 删除远程分支 重命名本地分支 查看标签 查看标签详细信息 本地创建标签 推送标签到远程仓库 删除本地标签 删除远程标签 切回到某个标签 放弃工作区的修改 恢复删除的文件 以新增一个 commit 的方式还原某一个 commit 的修改 回到某个 commit 的状态,并删除后面的 commit 修改上一个 commit 的描述 查看 commit 历史 显示本地更新过 HEAD 的 git 命令记录 修改作者名 修改远程仓库的 url 增加远程仓库 列出所有远程仓库 查看两个星期内的改动 把 A 分支的某一个 commit,放到 B 分支上 给 git 命令起别名 存储当前的修改,但不用提交 commit 保存当前状态,包括 untracked 的文件 展示所有 stashes 回到某个 stash 的状态 回到最后一个 stash 的状态,并删除这个 stash 删除所有的 stash 从 stash 中拿出某个文件的修改 展示所有 tracked 的文件 展示所有 untracked 的文件 展示所有忽略的文件 强制删除 untracked 的文件 强制删除 untracked 的目录 展示简化的 commit 历史 查看某段代码是谁写的 把某一个分支导出成一个文件 从包中导入分支 执行 rebase 之前自动 stash 从远程仓库根据 ID,拉下某一状态,到本地分支 详细展示一行中的修改 清除 .
JOBCHER BLOG
docker image镜像上传
docker image 镜像上传 登入 docker hub,在https://hub.docker.com上注册你的账号。 1docker login 2username:#输入你的用户名 3password:#输入你的密码 上传镜像 1docker tag nginx:hugo sjtfreaks/hogo-nginx:v1 2docker push sjtfreaks/hogo-nginx:v1
JOBCHER BLOG
docker进阶使用
docker 进阶使用 dockerfile 和 docker compose 的配置 Dockerfile 使用 Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 例子: 1 FROM nginx 2 RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html 保存 Dockerfile 文件并在本地路径执行 1 docker build -t nginx:v1-test . 2 docker run -name docker run --name nginx-test -d -p 8080:80 nginx:v1-test 浏览 nginx 页面确认更新内容 curl 127.0.0.1:8080 输出: 这是一个本地构建的nginx镜像 Docker 命令详解 COPY 复制指令,从上下文目录中复制文件或者目录到容器里指定路径。 1 COPY [--chown=<user>:<group>] <源路径1>... <目标路径> 2 COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"] <源路径>:源文件或者源目录,这里可以是通配符表达式,其通配符规则要满足 Go 的 filepath.Match 规则。例如: 1 COPY hom* /mydir/ 2 COPY hom?