nginx反向代理、文件批量改名及统计ip访问量等精髓总结

简介:

nginx实现反向代理,通过proxyupstream两个模块完成,主要是uptream非常重要。

nginx在实现代理转发时,默认采用的rr轮询算法,这就会有一个问题,特别是当用户在nginx代转的一台web服务器上登录时,登陆成功后,如果轮询到第二台会提示用户没有登录成功,解决办法有以下两种:

1、是通过nginx上的ip_hash,它会让该用户始终在一台服务器上,但这样会造成负载不均,浪费服务器资源。

2、通过session会话,也就是再增加一台服务器,将用户的会话信息保存到该服务器上,当然这个session是共享的,web1web2等等都能访问,该session服务器可采用mamcacheredius内存软件搭建。

 

用户默认的信息一般都放到了/tmp下。所以就导致了每台服务器上的用户登录都得重新输入,一般软件像nginx通过ip_hashlvs 通过-phaproxy通过自身模块包,这些软件自身都能够解决,但是负载就不均了,小网站小流量也可以,大网站一般都不用。

 

总结:小企业用会话保持,中小企业用共享session,大型门户网站采用cookie,把session推到用户端浏览器。

 

当后端有web上有多个虚拟主机时,nginx默认参数就不能识别了,为此nginx提供了以下扩展参数解决此问题:

proxy_set_header Host $host;表示用户访问web上的什么虚拟主机网站就该网站。

proxy_set_header X Forwarder For $remote_addr;表示web上显示用户的ip地址等信息而不是nginx代理服务器的ip等信息。

 

ssh换端口的加上-p端口号  scp换端口的加上-P端口号

扫描端口是否开启:可用telnetnmapnc等。

 

批量改名案例,有三种方法解决:

第一步:

Cd /root/test

创建以下文件,可通过两种方式:

第一种如下:

touch stu_102999_{1..5}_finished.jpg

Ls

 

-rw-r--r-- 1 root root 0 9月  25 10:14 stu_102999_1_finished.jpg

-rw-r--r-- 1 root root 0 9月  25 10:14 stu_102999_2_finished.jpg

-rw-r--r-- 1 root root 0 9月  25 10:14 stu_102999_3_finished.jpg

-rw-r--r-- 1 root root 0 9月  25 10:14 stu_102999_4_finished.jpg

-rw-r--r-- 1 root root 0 9月  25 10:14 stu_102999_5_finished.jpg

第二种如下:

Vi a.txt

stu_102999_1_finished.jpg

stu_102999_2_finished.jpg

stu_102999_3_finished.jpg

stu_102999_4_finished.jpg

stu_102999_5_finished.jpg

 

Touch `cat a.txt`

 

第二步:

先处理一个,可显示结果,然后通过mv命令去执行。

[root@backup test]# f=stu_102999_5_finished.jpg

[root@backup test]# echo $f

stu_102999_5_finished.jpg

[root@backup test]# echo $f|sed 's#finished##g'

stu_102999_5_.jpg

第二步:

mv $f  `echo $f|sed 's#finished##g'`

第三步:

for n in `ls *.jpg`;do mv $n `echo $n|sed 's#finished##g'`;done

 

第二种方法:

ls |awk -F finished {print mv  $0 $1$2} |bash

 

第三种方法:

Rename finished   *.jpg

 

案列处理解答:

将文本表中,取出oldboy.log中出现次数最多的网址。

[root@backup ~]# cat lodboy.log

http://www.etiantian.org/index.html

http://www.etiantian.org/1.html

http://post.etiantian.org/index.html

http://mp3.etiantian.org/index.html

http://www.etiantian.org/3.html

http://post.etiantian.org/2.html

[root@backup ~]# awk -F "/" '{print $3}' oldboy.log |sort|uniq -c|sort -rn

      3 www.etiantian.org

      2 post.etiantian.org

      1 mp3.etiantian.org


本文转自  流颗星  51CTO博客,原文链接:http://blog.51cto.com/liukexing/1968751



相关文章
|
22天前
|
运维 负载均衡 应用服务中间件
LNMP详解(九)——Nginx虚拟IP实战
LNMP详解(九)——Nginx虚拟IP实战
34 2
|
3月前
|
JSON 应用服务中间件 API
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
利用Grafana的API Key+Nginx反向代理实现Grafana免登录访问
93 1
|
15天前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
24 0
|
1月前
|
域名解析 网络协议 应用服务中间件
nginx-ingress通过ipv6暴露服务,并在nginx ingress日志中记录客户端真实ipv6的ip地址
本文主要通过阿里云提供的clb和nlb来实现,建议是提前创建好双栈的vpc和vsw(使用clb可以不用双栈vpc和vsw)
181 1
|
1月前
|
负载均衡 应用服务中间件 Linux
|
2月前
|
tengine Rust 负载均衡
反向代理学习笔记(一) Nginx与反向代理绪论
反向代理学习笔记(一) Nginx与反向代理绪论
|
2月前
|
负载均衡 Java 应用服务中间件
|
2月前
|
网络协议 应用服务中间件 Apache
在 NGINX 中根据用户真实 IP 进行限制
在 NGINX 中根据用户真实 IP 进行限制
|
2月前
|
消息中间件 关系型数据库 MySQL
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
61 0
|
3月前
|
负载均衡 Ubuntu 应用服务中间件
如何在Nginx上阻止特定IP地址的访问,以增强服务器的安全性
如何在Nginx上阻止特定IP地址的访问,以增强服务器的安全性
42 0
如何在Nginx上阻止特定IP地址的访问,以增强服务器的安全性