2021年6月最新面试记录
【摘要】
PHP部分
1.nginx设置反向代理,获取真实客户端ip
upstream这个模块提供一个简单方法来实现在轮询和客户端IP之间的后端服务器负荷平衡。upstream abc.com { server 127.0.0.1:8080; server 127.0.0.1:80; server 1...
PHP部分
1.nginx设置反向代理,获取真实客户端ip
-
upstream这个模块提供一个简单方法来实现在轮询和客户端IP之间的后端服务器负荷平衡。
-
upstream abc.com {
-
server 127.0.0.1:8080;
-
server 127.0.0.1:80;
-
server 127.0.0.1:8000;
-
}
-
-
server {
-
listen 80;
-
server_name www.test.com;
-
location / {
-
proxy_pass http://abc.com;
-
proxy_set_header Host $host;#保留代理之前的host
-
proxy_set_header X-Real-IP $remote_addr;#保留代理之前的真实客户端ip
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;#在多级代理的情况下,记录每次代理之前的客户端真实ip
-
proxy_redirect default;#指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
-
}
-
}
- yii和thinkphp,laravel区别
- tcp三次握手四次挥手
- 抽象类和接口的区别
- redis 和memchech 区别,
- redis 和memcache分布式 ,
- mongodb 如何扩容
- PHP和go 区别,优势
- 常用的shell 命令,
- awk 如何分割参数
- git merge和rebase区
- mysql索引优化
- mysql主从复制原理
- mysql 存储引擎有几种以及区别
- mysql 大分类关联小分类数据库设计,在不使用中间表的情况下(标签??)
- 批量更新mysql数据表(如:其中一个用户发生变化,其他多个与之对应的用户发生改变)
golang部分
1.go切片作用,切片与数组的区别? 什么场景用切片,什么场景用数组
Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。
数组:
arr1 = [5]int{2, 3, 4, 5, 6} // 长度和元素类型都相同,可以正确赋值
- 数组定义:由若干相同类型的元素组成的序列
- 数组的长度是固定的,声明后无法改变
- 数组的长度是数组类型的一部分,eg:元素类型相同但是长度不同的两个数组是不同类型的
- 需要严格控制程序所使用内存时,数组十分有用,因为其长度固定,避免了内存二次分配操作
切片:
- 指针:指向底层数组
- 长度:切片中元素的长度,不能大于容量
- 容量:指针所指向的底层数组的总容量
-
//使用数组来初始化切片
-
arr := [5]int{1, 2, 3, 4, 5}
-
slice := arr[0:3] // 左闭右开区间,最终切片为 [1,2,3]
2.闭包函数作用:
Go 语言支持匿名函数,可作为闭包。匿名函数是一个"内联"语句或表达式。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。
-
package main
-
-
import "fmt"
-
-
func getSequence() func() int {
-
i:=0
-
return func() int {
-
i+=1
-
return i
-
}
-
}
-
-
func main(){
-
/* nextNumber 为一个函数,函数 i 为 0 */
-
nextNumber := getSequence()
-
-
/* 调用 nextNumber 函数,i 变量自增 1 并返回 */
-
fmt.Println(nextNumber())
-
fmt.Println(nextNumber())
-
fmt.Println(nextNumber())
-
-
/* 创建新的函数 nextNumber1,并查看结果 */
-
nextNumber1 := getSequence()
-
fmt.Println(nextNumber1())
-
fmt.Println(nextNumber1())
-
}
-
-
以上代码执行结果为:
-
-
1
-
2
-
3
-
1
-
2
参考:https://www.cnblogs.com/caidingyu/p/11077194.html
文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/lxw1844912514/article/details/118092661
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)