nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。
例如nginx中常用配置
upstream tomcat_server {
server 127.0.0.1:8080;
# server 115.238.225.101:8080 weight=50;
# ip_hash;
}
upstream tomcat_server_img {
server 122.225.8.213:18881;
}
upstream tomcat_server2 {
server 115.238.0.2:8080;
}
server {
root /usr/share/nginx/www;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ /index.html;
}
location /doc {
root /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}
location /images {
root /usr/share;
autoindex off;
}
}
server {
listen 80;
server_name m.cfyme.com;
access_log /var/log/nginx/access_master.log;
index index;
location / {
index index;
keepalive_timeout 50;
proxy_pass http://tomcat_server_master;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 400 404 /404.html;
location = /404.html {
root /home/www/deploy/statics;
}
location ~* ^.+\.(ico|gif|jpg|jpeg|png|css|sis|sisx|html|txt|js)$ {
root /home/www/deploy/statics/master;
access_log off;
expires 30d;
}
}
server {
listen 80;
server_name img.cfyme.com;
access_log /var/log/nginx/access_cdn.log;
index index;
location / {
proxy_pass http://tomcat_server_img;
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_cache cache_one;
proxy_cache_valid 200 304 30d;
proxy_cache_key $host$uri$is_args$args;
}
}
server {
listen 80; ## listen for ipv4
server_name www.cfymeba.com cfymeba.com *.cfymeba.com;
access_log /var/log/nginx/access_ba.log;
index index;
location / {
rewrite ^(.*) http://www.cfyme.com/?domain=cfymeba.com permanent;
}
}