一、3个虚拟机配置实例:
http {
# 上面部分省略了,配置同上
server {
listen 80;
server_name www.test.com;
access_log /var/logs/test.com.log main;
location / {
index index.html index.htm index.php;
root /web/blog/upload/test;
}
}
server {
listen 80;
server_name www.test1.com;
access_log /var/logs/test1.com.log main;
location / {
index index.html index.htm index.php;
root /web/blog/upload/test1;
}
}
include /var/www/html/www.test2.com.conf; # 载入www.test2.com.conf中的配置(另一种方式而已)
}
====================载入www.test2.com.conf中的配置文件内容如下===================================
server {
listen 80;
server_name www.test2.com;
access_log /var/logs/test2.com.log main;
location / {
index index.html index.htm index.php;
root /web/blog/upload/test2;
}
}
二、负载均衡配置实例:
http {
# 上面部分省略了,配置同上
upstream lbserver {
server 172.16.38.3:80 weight=3 max_fails=3 fail_timeout=20s; # 权重级别,及最大失败重试次数,失效超时时间
server 172.16.38.4:80 weight=1 max_fails=3 fail_timeout=20s;
server 172.16.40.11:80 weight=4 max_fails=3 fail_timeout=20s;
}
server {
listen 80;
server_name www.test.com 172.16.38.8;
index index.html index.htm index.php;
root /web/blog;
add_header X-via $upstream_addr; # 在客户端响应头部显示头部为server的IP地址
location / {
proxy_pass http://lbserver; # 指定代理的组(可是IP和端口,也可以是主机名或IP,也可以是组名)
proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header; # 故障转移策略
include /etc/nginx/proxy.conf; # 此配置主要是故障转移(出现上面故障时,自动将客户端请求转移到后端另一台服务器)
}
}
}
====================故障转移/etc/nginx/proxy.conf的配置文件内容如下===================================
proxy_redirect off; # 功能比较强大,其作用是对发送给客户端的URL进行修改
proxy_set_header Host $host; # 设置由后端的服务获取用户的主机名和真实IP地址,以及代理者的真实IP地址
proxy_set_header X-Real-IP $remote_addr; #获取用户的主机名和真实IP地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #获取代理者的真实IP地址
client_body_buffer_size 128k; #指定客户端请求主体缓冲大小,可理解为先保存在传给客户
proxy_connect_timeout 300s; #与后端服务器连接的超时(发起到响应)时间
proxy_send_timeout 900; #后端服务器的回传时间(超过nginx自动断开连接)
proxy_read_timeout 900; #与后端建立连接后的排队等候时间
proxy_buffer_size 32k; #设置缓冲大小
proxy_buffers 4 32k; #设置缓冲区数量和大小,nginx从代理的后端服务器获取的响应信息会存放在此
proxy_busy_buffers_size 64k; #用于设置系统很忙时可以使用的proxy_buffers大小,推荐在proxy_buffers上x2
prosy_temp_file_write_size 64k; #proxy缓存临时文件的大小
测试结果:
http://www.test.com/index.html
分别为:
X-via:172.16.38.3:80
X-via:172.16.38.4:80
X-via:172.16.40.200:80
如果我们关掉172.16.38.4:80结果为:
X-via:172.16.38.3:80
X-via:172.16.40.200:80
三、防盗链配置实例:
将此配置段加在负载均衡配置实例中的server字段中;
location ~* \.(jpg|jpeg|png|gif|swf|flv|wma|zip|rar|mp3|asf)$ {
valid_referers none blocked *.test.com test.com;
if ($invalid_referer) {
rewrite ^/ http://www.test.com/error.html;
#return 403;
}
}
location /images {
root /web/blog;
valid_referers none blocked *.test.com test.com;
if ($invalid_referer) {
return 403;
}
}
测试通过:
http://www.test.com/upload/data/attachment/forum/201603/07/223343s84wxww4ywysd9wt.jpg
在另一台http主机上建立一个index.html
echo “<a href=http://www.test.com/upload/data/attachment/forum/201603/07/223343s84wxww4ywysd9wt.jpg> 美图</a>” > index.html
主机名为www.kkk.com/index.html 测试结果如下
点击链接如下:
- 本文固定链接: https://www.gayj.cn/?p=102
- 转载请注明: https://www.gayj.cn/