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