nginx.oldfords.cz

  • Increase font size
  • Default font size
  • Decrease font size
Home NGINX Nginx reverse proxy for back end web servers

Nginx reverse proxy for back end web servers

E-mail Print PDF
There are no translations available.

 

Nginx reverse proxy for back end web servers

 

 

#######################################################

pid               /var/run/nginx.pid;

user              nginx nginx;

worker_processes  10;

 

events {

worker_connections  1024;

}

 

http {

## MIME types

#include            /etc/nginx_mime.types;

default_type       application/octet-stream;

 

## Size Limits

client_body_buffer_size     128K;

client_header_buffer_size   128K;

client_max_body_size          1M;

large_client_header_buffers 1 1k;

 

## Timeouts

client_body_timeout   60;

client_header_timeout 60;

expires               24h;

keepalive_timeout     60 60;

send_timeout          60;

 

## General Options

ignore_invalid_headers   on;

keepalive_requests      100;

limit_zone gulag $binary_remote_addr 5m;

recursive_error_pages    on;

sendfile                 on;

server_name_in_redirect off;

server_tokens           off;

 

## TCP options

tcp_nodelay on;

tcp_nopush  on;

 

## Compression

gzip              on;

gzip_buffers      16 8k;

gzip_comp_level   6;

gzip_http_version 1.0;

gzip_min_length   0;

gzip_types        text/plain text/css image/x-icon application/x-perl application/x-httpd-cgi;

gzip_vary         on;

 

## Log Format

log_format  main  '$remote_addr $host $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" "$http_user_agent" '

'"$gzip_ratio"';

 

## Proxy options

proxy_buffering           on;

proxy_cache_min_uses       3;

proxy_cache_path          /usr/local/nginx/proxy_temp/ levels=1:2 keys_zone=cache:10m inactive=10m max_size=1000M;

proxy_cache_valid         any 10m;

proxy_ignore_client_abort off;

proxy_intercept_errors    on;

proxy_next_upstream       error timeout invalid_header;

proxy_redirect            off;

proxy_set_header          X-Forwarded-For $remote_addr;

proxy_connect_timeout     60;

proxy_send_timeout        60;

proxy_read_timeout        60;

 

## Backend servers (web1 is the primary and web2 will come up if web1 is down)

upstream webbackend  {

server web1.domain.lan weight=10 max_fails=3 fail_timeout=30s;

server web2.domain.lan weight=1 backup;

}

 

server {

add_header  Cache-Control public;

access_log  /var/log/nginx/access.log main;

error_log   /var/log/nginx/error.log;

index       index.html;

limit_conn  gulag 50;

listen      127.0.0.1:80 default;

root        /usr/local/nginx/html;

server_name _;

 

## Only requests to our Host are allowed

if ($host !~ ^(mydomain.com|www.mydomain.com)$ ) {

return 444;

}

 

## Only allow these request methods

if ($request_method !~ ^(GET|HEAD|POST)$ ) {

return 444;

}

 

## Only allow these full URI paths relative to document root. If you only want

## to reference the filename use $request_filename instead of $request_uri

location / {

if ($request_uri ~* (^\/|\.html|\.jpg|\.pl|\.png|\.css|\.ico|robots\.txt)$ ) {

break;

}

return 444;

}

 

## PROXY - Forum

location /forum/ {

proxy_pass http://forum.domain.lan/forum/;

}

 

## PROXY - Data

location /files/ {

proxy_pass http://data.domain.lan/;

}

 

## PROXY - Web

location / {

proxy_pass  http://webbackend;

proxy_cache            cache;

proxy_cache_valid      200 24h;

proxy_cache_use_stale  error timeout invalid_header updating http_500 http_502 http_503 http_504;

proxy_ignore_headers   Expires Cache-Control;

}

 

## All other errors get the generic error page

error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 495 496 497

500 501 502 503 504 505 506 507 /error_page.html;

location  /error_page.html {

internal;

}

}

}

#

#######################################################

 

Last Updated on Wednesday, 20 April 2011 16:38