Nginx代理服务的配置说明
1、上一篇中我们在http模块中有下面的配置,当代理遇到状态码为404时,我们把404页面导向百度。
然而这个配置,细心的朋友可以发现他并没有起作用。
如果我们想让他起作用,我们必须配合着下面的配置一起使用
2、如果我们的代理只允许接受get,post请求方法的一种
3、设置支持的http协议版本
4、如果你的nginx服务器给2台web服务器做代理,负载均衡算法采用轮询,那么当你的一台机器web程序iis关闭,也就是说web不能访问,那么nginx服务器分发请求还是会给这台不能访问的web服务器,如果这里的响应连接时间过长,就会导致客户端的页面一直在等待响应,对用户来说体验就打打折扣,这里我们怎么避免这样的情况发生呢。这里我配张图来说明下问题。
如果负载均衡中其中web2发生这样的情况,nginx首先会去web1请求,但是nginx在配置不当的情况下会继续分发请求道web2,然后等待web2响应,直到我们的响应时间超时,才会把请求重新分发给web1,这里的响应时间如果过长,用户等待的时间就会越长。
5、如果使用upstream指令配置啦一组服务器作为被代理服务器,服务器中的访问算法遵循配置的负载均衡规则,同时可以使用该指令配置在发生哪些异常情况时,将请求顺次交由下一组服务器处理。
6、如果你想通过http获取客户的真是ip而不是获取代理服务器的ip地址,那么要做如下的设置。
关于X-Forwarded-For与X-Real-IP的一些相关文章我推荐一位博友的: HTTP 请求头中的 X-Forwarded-For ,这位博友对http协议有一系列的文章阐述,推荐大家去关注下。
7、下面是我的一个关于代理配置的配置文件部分,仅供参考。
上一篇中我说啦nginx有哪些中负载均衡算法。这一结我就给如果操作配置的给大家做详细说明下。
首先给大家说下upstream这个配置的,这个配置是写一组被代理的服务器地址,然后配置负载均衡的算法。这里的被代理服务器地址有2中写法。
然后,就来点实战的东西。
1、热备:如果你有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务。服务器处理请求的顺序:AAAAAA突然A挂啦,BBBBBBBBBBBBBB.....
upstream mysvr { server 127.0.0.1:7878server 192.168.10.121:3333 backup#热备 }
2、轮询:nginx默认就是轮询其权重都默认为1,服务器处理请求的顺序:ABABABABAB....
upstream mysvr { server 127.0.0.1:7878server 192.168.10.121:3333 }
3、加权轮询:跟据配置的权重的大小而分发给不同服务器不同数量的请求。如果不设置,则默认为1。下面服务器的请求顺序为:ABBABBABBABBABB....
upstream mysvr { server 127.0.0.1:7878 weight=1server 192.168.10.121:3333 weight=2}
4、ip_hash:nginx会让相同的客户端ip请求相同的服务器。
upstream mysvr { server 127.0.0.1:7878 server 192.168.10.121:3333ip_hash}
5、如果你对上面4种均衡算法不是很理解,那么麻烦您去看下我上一篇配的图片,可能会更加容易理解点。
到这里你是不是感觉nginx的负载均衡配置特别简单与强大,那么还没完,咱们继续哈,这里扯下蛋。
关于nginx负载均衡配置的几个状态参数讲解。
down,表示当前的server暂时不参与负载均衡。
backup,预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻 。
max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。
fail_timeout,在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。
到这里应该可以说nginx的内置负载均衡算法已经没有货啦。如果你像跟多更深入的了解nginx的负载均衡算法,nginx官方提供一些插件大家可以了解下。
Socks5是一个实现SOCKS v5协议的代理服务器。作为一个代理服务器,socks5鉴别、授权、处理客户的网络请求。它为客户建立连接到客户所请求的主机。客户机试图连接到网络时,只需连接到socks5的daemon。接着是认证,客户请求socks5激活网络连接。包括bind,connect,sendto,ping,traceroute。
Socks5是独立于应用层协议的,能应付不同的网络服务。包括telnet,ftp,finger,whois,gopher,WWW。
Socks5 daemon 支持两种授权方式:
Username/Password -- 参考socks5.passwd
Kerberos 5 -- 要求Kerberos libraries的支持。使用Kerberos 5(GSS-API) 的其它信息,请参考Kerberos 的man page。
Socks5的运行方式:
Standalone – default
Preforking - -p
Threaded - -t 如果你的操作系统支持POSIX threads 并且你configure socks5时加了—with-threads 参数。-t参数使socks5运行在threaded 模式。所有的操作系统都对线程数和每进程的打开文件描述符加于限制。
Through inetd - -i,通过inetd启动。
你可以通过一些配置文件、环境变量和参数控制socks5 daemon。请参考socks5.conf(5)文档。这个配置文件的优先级高于环境变量和参数。环境变量设置高于参数设置。
OPTIONS
多个参数用空格分开。
-b [host:port] | --bindintfc [host:port]
host:port 指定socks5运行的主机和端口号用于代替缺省的端口。忽略主机的话,socks5使用0.0.0.0做为主机值。
-d [val] | -- debug[val]
打开debug模式,设置debug值为val。如果忽略此值,socks5仅仅发送警告信息。val 的有效值是1,2,3。如果指定其它值,socks5认为是3。有效值的含义:
1 LOG_NOTICE 不报错
2 LOG_INFO 报告信息
3 LOG_DEBUG 报告用于debug 的信息。
-f | --foreground
前台运行。当运行在standalone模式时,阻止从parent shell分裂。--foreground 一般用于调试
-i | --inetd
通过inetd运行socks5。
-n val | --nchildren val
设置同时存在的最大子进程数为val。Socks5预设最大子进程数为64。使用这个参数降低预设值。你不能设置最大子进程数超过操作系统限制的值。当运行在线程模式时,
socks5忽略此值,在oneshot 模式和 inetd 模式下,此参数也没用。
-o | --oneshot
在前台处理一个请求,打开debug模式,输出到stderr,然后退出。用于调试。
-p | --prefork
preforking进程运行socks5。同时需要 –nchildren 参数控制已forked 的进程数。
-s | --stderr
纪录所有的输出到stderr代替syslog。主要用于debug 模式。
-t | --threaded
运行在线程模式。要求你的操作系统支持POSIX threads 并且编译socks5时加了—with-threads 参数。如果线程模式无效,socks5打印一个错误信息,转到standalone 模式。
-v | --version
打印一条信息(包括当前socks5版本号)到stderr。
ENVIRONMENT
环境变量控制socks5怎样执行。可以在环境或配置文件中设置它们。当环境和配置文件有冲突时,配置文件的优先级高。在配置文件中设置变量,使用如下的语法:
set variable [value]
SOCKS5_BINDINTFC host:port
host:port 指定socks5运行的主机和端口号,用于代替缺省的端口。忽略时,socks5用0.0.0.0作为主机值。
SOCKS5_CONFFILE filename
Filename 指定配置文件。在许多系统中,缺省是/etc/socks5.conf。在运行socks5之前,设置这个变量。如果有多个socks5 daemon运行,为每个daemon使用不同的配置文件。
SOCKS5_DEMAND_IDENT
当客户没有响应ident 请求时,认证失败。使用SOCKS5_DEMAND_IDENT确认每个连接有一个关联的用户名。
SOCKS_ENCRYPT
如果可能的话,请求下一个socks5进程加密数据。SOCKS5_ENCRYPT 仅仅在编译socks5时包括了GSS-API认证时,才有意义。
SOCKS5_FORCE_ENCRYPT
当认证方式支持加密时,强迫客户加密数据。
SOCKS5_IDENTFILE filename
Filename指定存储ident信息的文件名。在许多系统中,缺省是/tmp/socks5.ident。当有多个socks5 daemon运行时,SOCKS5_IDENTFILE非常有用。
SOCKS5_MAXCHILD val
val指定同时存在的最大子进程数。Socks5预设为64。可以降低预设置。不能超过64。Socks5运行在线程模式时,忽略此参数。当运行在oneshot或inetd模式时,此参数不发生作用。
SOCKS_NOIDENT
忽略ident请求。当客户机没有运行identd时,使用SOCKS5_NOIDENT将降低超时值。
SOCKS_NOINTCHK
请求下一个socks5进程执行没有完整检查的代理请求。只有在编译时加入GSS-API认证时,SOCKS5_NOINTCHK才发生作用。
SOCKS_NONETMASKCHECK
指示daemon忽略检查主机的子网掩码。缺省时,daemon检查掩码,如果在同一子网时,在检查配置文件之前,直接连接。
SOCKS5_REVERSEMAP
总是试图影射地址到主机名。缺省时,socks5只有当主机名或域名在配置文件中使用时才影射。设置后,log文件将纪录主机名,这将降低性能。
SOCKS5_SERVICENAME
总是影射端口号到服务名。缺省时,socks5只有当服务名在配置文件中使用时才影射。设置后,log文件将纪录服务名,这将降低性能。
SOCKS5_PASSWD [password]
当socks5 daemon连接到其它socks服务器时,如果采用Username/Password 认证,用它来指定密码。
SOCKS5_PIDFILE filename
指定存储socks5进程ID的文件名。Socks5缺省存贮PID在/tmp/socks5.pid。你可以用—bindintfc参数或设置SOCKS5_BINDINTFC环境变量运行socks5在不同于缺省端口的其它端口。当运行在不同于缺省端口的其它端口时,socks5存贮PID在/tmp/socks5.pid-port。
SOCKS5_PWDFILE filename
指定密码文件。在许多系统中,缺省是/etc/socks5.passwd。
SOCKS5_TIMEOUT minutes
指定连接停顿最长时间。超过最大值后,socks5断开连接。忽略此值时,缺省是15。
SOCKS5_UDPPORTRANGE port1-port2
指定一个Socks5用来发送UDP包的UDP端口范围。
SOCKS5_USER [user id]
当socks5 daemon连接到其它socks server时,如果采用Username/Password认证,用此变量指定用户名。
SOCKS5_V4SUPPORT
缺省时,socks5只接受SOCKS V5协议(rfc 1928)的请求。设此变量后,socks5将接受SOCKS V4 协议的请求。
REQUEST FOR COMMENTS
RFC1928 SOCKS protocol Version 5
RFC1929 Username/Password Authentication for SOCKS V5
RFC1961 GSS-API Authentication Method for SOCKS Version 5
SEE ALSO
Socks5.conf(5)
1、使用Hide IP PlatinumHide IP Platinum可以自动从网上搜索代理服务器,然后提供给代理IP上网。运行Hide
IP Platinum,在任务栏右下方会出现一个图标,每次点击该图标,软件就会提供给你一个代理IP,打开IE就会自动用该代理浏览网页了!
目前与Hide IP Platinum类似的代理软件有很多,功能和用法基本上大同小异,这类软件虽然用起来很方便,但是都有一个致命的缺点,就是它们提供的代理IP大多不是一级匿名,因此用这种代理上网,网管完全能够查出真实IP!
2、用花刺代理
1、用花刺代理验证读取公布代理服务器地址的网页,将得到的代理导出为TXT文件例如AJ.txt)然后在代理超人中导入AJ.txt,验证代理的等级,把得到的超级匿名、普通匿名导出为TXT文件(例如JG.txt)
2、再运行花刺代理验证,导入JG.txt,选择一个代理,点击“设为IE代理”,软件就会自动把该代理设置到IE中,这样就能通过该代理、在IE中浏览网页了,WEB服务器的网管是查不出IP的
【真正隐藏自己IP的秘技】
1、获得一级匿名代理
只有用一级匿名代理上网才能真正隐藏IP,因为这样别人才不知道IP、而且也不知道你用了代理如果用其他等级代理,虽然也能隐藏IP,但是别人却知道用了代理的!
建议先运行“网隐一键通”获得一级匿名代理,在“选项设置”中点击“寻得代理”,然后点击“代开URL”,读取公布代理服务器地址的网页,验证得到一级匿名代理(具体方法参见上文所述)。
2、用一级匿名代理上网
对于“网隐一键通”注册用户,可以点击选择某个一级匿名代理,然后右击鼠标,在弹出菜单中选择“现在就使用该代理…”,即可用一级匿名代理上网了不过只有注册用户才能这样做。
对于非注册用户,只能使用“网隐一键通”验证得到一级匿名代理,然后在IE中自己设置这个一级匿名代理(操作步骤参见上文),最后再用IE打开网页,就能真正隐藏自己IP地址、而且别人也不知道用了代理
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)