发布时间:2014-09-05 17:03:03作者:知识屋
____________ client
+
|
|
|
|
+-----------------[LVS] LVS并发访问量400万
|
|
|
|
+
|
|
---------------------------
| | |
Nginx Nginx Nginx
|
+
-----------------------------------------------------------------------------------------------------
| | | | | | | | |
apache apache apache squid squid squid tomcat tomcat tomcat
^ ^ ^ | | |
| | | | | |
+----------- |--------------- |----------+ | |
+---------------|---------------------+ |
+-------------------------------+
LB-Nginx:
Client:
CIP: 202.106.0.56
Director-Nginx:
VIP: 202.106.0.254
DIP: 192.168.0.1
Director配置:
1、安装nginx
cd /etc/nginx/conf.d
vim rip.conf
upstream squids {
server 192.168.0.254:3128;
server 192.168.0.208:3128;
server 192.168.0.39:3128;
RealServer
}
upstream apaches {
server 192.168.0.14:80;
server 192.168.0.231:80;
server 192.168.0.49:80;
}
upstream tomcats {
server 192.168.0.119:8080;
server 192.168.0.188:8080;
server 192.168.0.194:8080;
}
2、vim /etc/nginx/nginx.conf
location / {
root /usr/share/nginx/html;
index index.html index.htm;
if ($request_uri ~* ".*/.html$")
{
proxy_pass http://squids;
}
if ($request_uri ~* ".*/.php$")
{
proxy_pass http://apaches;
}
if ($request_uri ~* ".*/.jsp$")
{
proxy_pass http://tomcats;
}
RealServer配置(squid):
vim squid.conf
http_access allow all
http_port 3128 vhost
cache_peer 192.168.0.x parent 80 0 no-query originserver
#cache_peer 192.168.0.XX parent 80 0 no-query originserver round-robin weight=n
RealServer配置(apache):
1, IP
2,
准备一个 index.html
test.php
RealServer配置(tomcat):
index.jsp
补充:
在Nginx中实现view.
geo $liu {
default 1;
192.168.0.247/32 0;
}
if ($liu) {
proxy_pass http://apaches;
}
测试
默认1000
umlimit -a
umlimt -n 10000
永久生效
vim /etc/security/limits.conf
* hard nofile 10000
ab -n 10000 -c 5000 http://localhost/
根据网友文章,自己实践,介绍3种Nginx防盗链的方法,节省你的宽带
一:一般的防盗链如下:
location ~* /.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.ingnix.com ;
if ($invalid_referer) {
rewrite ^/ http://www.ingnix.com/retrun.html;
#return 404;
}
}
第一行:gif|jpg|png|swf|flv
表示对gif、jpg、png、swf、flv后缀的文件实行防盗链
第二行: 表示对www.ingnix.com这2个来路进行判断
if{}里面内容的意思是,如果来路不是指定来路就跳转到http://www.ingnix.com/retrun.html页面,当然直接返回404也是可以的。
二:针对图片目录防止盗链
location /images/ {
alias /data/images/;
valid_referers none blocked server_names *.xok.la xok.la ;
if ($invalid_referer) {return 403;}
}
三:使用第三方模块ngx_http_accesskey_module实现Nginx防盗链
实现方法如下:
实现方法如下:
1. 下载NginxHttpAccessKeyModule模块文件:Nginx-accesskey-2.0.3.tar.gz;
2. 解压此文件后,找到nginx-accesskey-2.0.3下的config文件。编辑此文件:替换其中的”$HTTP_ACCESSKEY_MODULE”为”ngx_http_accesskey_module”;
3. 用一下参数重新编译nginx:
./configure --add-module=path/to/nginx-accesskey
4. 修改nginx的conf文件,添加以下几行:
location /download {
accesskey on;
accesskey_hashmethod md5;
accesskey_arg "key";
accesskey_signature "mypass$remote_addr";
}
其中:
accesskey为模块开关;
accesskey_hashmethod为加密方式MD5或者SHA-1;
accesskey_arg为url中的关键字参数;
accesskey_signature为加密值,此处为mypass和访问IP构成的字符串。
访问测试脚本download.php:
<?
$ipkey= md5("mypass".$_SERVER['REMOTE_ADDR']);
$output_add_key="<a href=http://www.inginx.com/download/G3200507120520LM.rar?key=".$ipkey.">download_add_key</a><br />";
$output_org_url="<a href=http://www.inginx.com/download/G3200507120520LM.rar>download_org_path</a><br />";
echo $output_add_key;
echo $output_org_url;
?>
访问第一个download_add_key链接可以正常下载,第二个链接download_org_path会返回403 Forbidden错误。
nginx 错误502 upstream sent too big header while reading response header from upstream
sudo gedit /var/log/nginx/error.log
查看错误日志
upstream sent too big header while reading response header from upstream
你去搜这个错误,网上的解释都差不多,无外乎是cookie携带的header太多了,让你设置:
fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;
逐步尝试。其中fastcgi_buffers 8 128k 这句,fastcgi_buffers 32 32k 这样更好,内存是整块分配和释放的,减少单位k数能尽可能利用。
另外,如果你用nginx做负载均衡的话,改了上述参数是没用的,要在转发的配置上,比如以下设置:
location @to_other {
proxy_buffer_size 128k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
add_header X-Static transfer;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://backend; #请求转发
}
加粗的三行才会起作用。
fastcgi_* 可以理解成nginx接受client请求时的响应使用的。proxy是nginx作为client转发时使用的,如果header过大,超出了默认的1k,
就会引发上述的upstream sent too big header。
其它搜索结果可以无视,都是大同小异的。
location ~ /.php$ {
fastcgi_buffer_size 128k;
fastcgi_buffers 32 32k;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /host/web/$fastcgi_script_name;
}
查看文章
nginx+fastcgi 502报错原因很多
2008-11-02 10:44
如题,最近网站频繁出现502错误,简直无法正常运转,出现这种情况大多是php-cgi超时没有返回信息,或进程僵死等情况造成的,
参考张宴的这篇关于502错误的解决办法,并咨询系统管理员高手,我们的nginx已经配置
到极致这些都已经老早做过修改了,但现在又出然出现。
经过分析将nginx的error log打开,发现"pstream sent too big header while reading response header from upstream"这样的错误提示,
查阅了一下资料,大意是nginx缓冲区有一个bug造成的,我们网站的页面消耗占用缓冲区可能过大。参考老外写的修改办法增加了缓冲区容量大小设置,
502问题彻底解决,后来系统管理员又对参数做了调整只保留了2个设置参数:client head buffer,fastcgi buffer size。
本文出自 “Linux修炼之路” 博客
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能