首页 > Server > nginx配置实例
2016
03-07

nginx配置实例

一、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

nginx配置实例 - 第1张  | 运维手册

在另一台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  测试结果如下

nginx配置实例 - 第2张  | 运维手册

点击链接如下:

nginx配置实例 - 第3张  | 运维手册

最后编辑:
作者:李国庆
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

留下一个回复

你的email不会被公开。