server { listen 80; server_name localhost; location / { proxy_pass http://localhost:8080; #代理Apache服务器 } location /files{ root files_root;#匹配前缀为/files的请求到$nginx/files_root/files/目录下 } location ~ \.(gif|jpg|png)$ { #匹配所有.gif.jpg.pnf后缀的文件到$nginx/images_root目录下 root images_root; } }
如:当请求为http://localhost/files/a.txt时,nginx会去$NGINX/filesroot目录)。
一个server配置块相当于一个http服务器,如果要提供多个http服务,配置多个server块即可(多个server块端口要不同。主机名不同也可以(如果主机有多个ip或月明),但是很少情况下这么用)
location / { proxy_pass http://proxy_server; # 反向代理 upstream proxy_server }
负载均衡有多种工作方式,具体如下
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
例如: upstream proxy_server { server 192.168.159.10; server 192.168.159.11; }
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如: upstream bakend { server 192.168.159.10 weight=10; server 192.168.159.11 weight=10; }
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如: upstream resinserver{ ip_hash; server 192.168.159.10:8080; server 192.168.159.11:8080; }