http工作原理
http1.0 协议 使用的是短连接,建立一次tcp连接,发起一次http的请求,结束,tcp断开
http1.1 协议使用的是长连接,建立一次tcp的连接,发起多次http的请求,结束,tcp断开
nginx的正向代理和反向代理的区别
正向代理代理对象是客户端
反向代理代理对象是服务端
location中还有一种思路
location / {
if ( $http_host ~* "zh" ) { set $language zh;
}
if ( $http_host ~* "jp" ) {
set $language jp;
}
rewrite ^/$ http://url.xxxx.com/$language/ permanent;
}
}
不同的请求跳转到不同的路由下
server {
listen 80;
server_name url.xxxx.com;
root /code;
if ($http_accept_language ~* "zh-CN|zh") {
set $language /zh;
}
if ($http_accept_language ~* "en") { set $language /en;
}
rewrite ^/$ /$language; # 根据语言不同,选择不同的站点
location / {
index index.html;
} }
维护时候页面的一个技巧
set $ip 0;
# 在server层下设定ip变量值为0
if ($remote_addr = "10.0.0.101|10.0.0.102") {
set $ip 1; }
#如果来源ip是 101或者102 ,则 $ip 的值为1
if ($ip = 0) {
rewrite ^(.*)$ /wh.html break;
}
#如果来源ip 不是 101 ,102 则跳转到 /code/wh.html 页面,否则不做任何处理
某个页面只允许公司网络访问,其他的都为0
location /admin {
set $ip 0;
if ($remote_addr = "61.149.186.152|139.226.172.254" ) {
set $ip 1; }
if ($ip = 0){ return 500;
}
}
一个小技巧
#!/bin/sh
nginxpid=$(pidof nginx | wc -l)
#1.判断Nginx是否存活,如果不存活则尝试启动Nginx
if [ $nginxpid -eq 0 ];then
systemctl start nginx
sleep 2
#2.等待2秒后再次获取一次Nginx状态
nginxpid=$(pidof nginx | wc -l)
#3.再次进行判断, 如Nginx还不存活则停止Keepalived,让地址进行漂移,并退出脚本
if [ $nginxpid -eq 0 ];then
systemctl stop keepalived
pkill keepalived
fi
fi
dig 命令巧用
dig @8.8.8.8 www.baidu.com
用哪个ip来解析百度网址