nginx配置
#Nginx所用用户和组,window下不指定
#user ?nobody nobody;
?
#工作的子进程数量(通常等于CPU数量或者2倍于CPU)
worker_processes ?2;
?
#错误日志存放路径
#error_log ?logs/error.log;
#error_log ?logs/error.log ?notice;
error_log ?logs/error.log ?info;
?
#指定pid存放文件
pid ? ? ? ?logs/nginx.pid;
?
events {
? ? #使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定
? ? #use epoll;
? ? #允许最大连接数
? ? worker_connections ?2048;
}
?
http {?
? ? include ? ? ? mime.types;
? ? default_type ?application/octet-stream;
?
? ? #log_format ?main ?'$remote_addr - $remote_user [$time_local] "$request" '
? ? # ? ? ? ? ? ? ? ? ?'$status $body_bytes_sent "$http_referer" '
? ? # ? ? ? ? ? ? ? ? ?'"$http_user_agent" "$http_x_forwarded_for"';
?
? ? #access_log ?logs/access.log ?main;
?
? ? client_header_buffer_size 32k;
? ? large_client_header_buffers 4 32k;
? ? client_max_body_size 8m;
? ? client_body_buffer_size 128k;
?
? ? sendfile ? ? ? ?on;
? ? tcp_nopush ? ? ?on;
?
? ? #keepalive_timeout ?0;
? ? keepalive_timeout ? 65;
?
? ? gzip ?on;?
? ? gzip_types ? ? ? text/plain application/xml application/x-javascript;?
? ? gzip_disable ? ? "MSIE [1-6]\.(?!.*SV1)";?
?
? ? proxy_connect_timeout 300;
? ? proxy_send_timeout 300;
? ? proxy_read_timeout 300;
? ? proxy_buffer_size 16k;
? ? proxy_buffers 4 32k;
?
? ? proxy_set_header X-Forwarded-For $remote_addr;
? ? proxy_set_header Connection Close;
? ? server_names_hash_max_size 1024;
? ? server_names_hash_bucket_size 1024;
?
? ? # Default cache parameters for use by virtual hosts
? ? # Set the cache path to tmpfs mounted disk, and the zone name
? ? # Set the maximum size of the on disk cache to less than the tmpfs file system size
? ? proxy_cache_path ?./cache ?levels=1:2 ?keys_zone=pscms:100m max_size=800m;
? ? proxy_temp_path ? ./proxy;
?
? ? #配置后端服务器信息
? ? upstream web_server {
? ? ? ? #ip_hash;?
? ? ? ? server localhost:8080 max_fails=3 ?fail_timeout=30s;
? ? ? ? server localhost:8180 max_fails=3 ?fail_timeout=30s;
? ? }?
?
? ? server {
? ? ? ? listen ? 80; ## listen for ipv4?
? ? ? ? #listen ? [::]:80 default ipv6only=on; ## listen for ipv6?
? ? ? ? server_name ?localhost;?
?
? ? ? ? charset utf-8;
? ? ? ? log_format ?main ?'$remote_addr - $remote_user [$time_local] "$request" '?
? ? ? ? ? ? ? ? ? ? ? ? ? '$status $body_bytes_sent "$http_referer" '
? ? ? ? ? ? ? ? ? ? ? ? ? '"$http_user_agent" "$http_x_forwarded_for"';
? ? ? ? access_log ?logs/host.access.log ?main;
? ? ? ? #access_log off;
?
? ? ? ? location ~ .*\.(jsp|action)?$ {
? ? ? ? ? ? proxy_set_header Host $http_host;?
? ? ? ? ? ? proxy_redirect ? ? off;?
? ? ? ? ? ? proxy_pass ? ? ? ? http://localhost;
? ? ? ? ? ? proxy_set_header ? Host ? ? ? ? ? ? $host;
? ? ? ? ? ? proxy_set_header ? X-Real-IP ? ? ? ?$remote_addr;
? ? ? ? ? ? proxy_set_header ? X-Forwarded-For $proxy_add_x_forwarded_for;
? ? ? ? }
?
? ? ? ? location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {?
? ? ? ? ? ? #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
? ? ? ? ? ? proxy_next_upstream http_502 http_504 error timeout invalid_header;?
?
? ? ? ? ? ? proxy_cache pscms; ? ? ? ? ? ? ? ? ? #进行缓存,使用Web缓存区cache_one?
? ? ? ? ? ? proxy_cache_valid 200 304 1h; ? ? ? ? ? #对不同的HTTP状态码设置不同的缓存时间?
? ? ? ? ? ? proxy_cache_valid 301 302 5m;
? ? ? ? ? ? proxy_cache_valid any 1m;
? ? ? ? ? ? proxy_set_header ?Host $host;
? ? ? ? ? ? proxy_set_header ?X-Real-IP ?$remote_addr;
? ? ? ? ? ? proxy_set_header X-Forwarded-For $remote_addr;
? ? ? ? ? ? proxy_set_header Accept-Encoding ""; ?#(或是后台服务器关闭gzip),这样这台机器才不会缓存被压缩的文件,造成乱码
? ? ? ? ? ? proxy_ignore_headers "Cache-Control" "Expires"; #这段配置加上后,proxy_cache就能支持后台设定的expires。
? ? ? ? ? ? proxy_pass http://localhost;?
? ? ? ? ? ? expires ?15m;?
? ? ? ? }
?
? ? ? ? location / {?
? ? ? ? ? ? proxy_set_header Host $http_host;?
? ? ? ? ? ? proxy_redirect ? ? off;?
? ? ? ? ? ? proxy_pass ? ? ? ? http://localhost;?
? ? ? ? ? ? proxy_set_header ? Host ? ? ? ? ? ? $host;?
? ? ? ? ? ? proxy_set_header ? X-Real-IP ? ? ? ?$remote_addr;?
? ? ? ? ? ? proxy_set_header ? X-Forwarded-For $proxy_add_x_forwarded_for;?
? ? ? ? }
? ? }
}