nginx的配置举例

如果你想在Windows环境中测试,您可以使用WiNGiNX

nginx.conf的一部分

# 除非有特殊原因请不要使用root
user [用户名] [用户组名];

# 填写服务器的CPU核心数。
worker_processes 2;

# 开放的每个进程文件标识符的最大值
# 应该比worker_connections多。
worker_rlimit_nofile 8192;

pid /var/run/nginx.pid;

events {
	# 如果拥有CPU核心数×8000以上的连接数时,请考虑优化操作系统。
	# 此处的数值假定为相当多的请求数目。
	worker_connections  8000;

	# 此处设定是否允许智能队列的请求。
	# 如果超过worker_processes,请设置成On。
	accept_mutex off;
	
	# 此设置取决于操作系统。默认nginx时选择select。
	# 但是,如果有大量的请求,明确设定epoll和kqueue
	# 会更快。
	# use epoll; # enable for Linux 2.6+
	# use kqueue; # enable for *BSD (FreeBSD, OS X, ..)
}
http {

	##
	# 基本设置
	##
	
	# 通过nginx发送静态文件(必须为on)
	sendfile on;
	tcp_nopush off;		# 大量使用Comet/long-poll时推荐off
	tcp_nodelay on;		# 大量使用Comet/long-poll时推荐on
	keepalive_timeout 10;
	types_hash_max_size 2048;

	# server_tokens off;
	ignore_invalid_headers on;
	connection_pool_size 256;
	client_header_buffer_size 1k;
	large_client_header_buffers 4 2k;
	request_pool_size 4k;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	
	# 由mime.type外部文件定义
	include /etc/nginx/mime.types;
	# 默认的文字编码
	charset utf-8;
	# 请求失败时默认的Mime类型
	default_type application/octet-stream;

	##
	# 日志设置
	##

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

	##
	# Gzip设置
	##

	# 压缩输出节省带宽
	gzip on;
	gzip_http_version 1.1;
	gzip_vary on;
	gzip_comp_level 6;
	gzip_proxied any;
	gzip_types
		# text/html在任何时候都用HttpGzipModule压缩。
		text/css
		text/javascript
		text/xml
		text/plain
		text/x-component
		application/javascript
		application/json
		application/xml
		application/rss+xml
		font/truetype
		font/opentype
		application/vnd.ms-fontobject
		image/svg+xml;

	# 确保高压缩的js或css不损坏。
	# http://blog.leetsoft.com/2007/7/25/nginx-gzip-ssl
	gzip_buffers 16 8k;

	# 禁用gzip的浏览器
	gzip_disable “MSIE [1-6].(?!.*SV1)”;

	##
	# nginx-naxsi config
	##
	# 如果你已经安装了nginx-naxsi请注释掉
	##

	#include /etc/nginx/naxsi_core.rules;

	##
	# nginx-passenger config
	##
	# 如果你已经安装了nginx-passenger请注释掉
	##
	
	#passenger_root /usr;
	#passenger_ruby /usr/bin/ruby;

	##
	# 虚拟主机设置
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

通用的行为设置(behavior.conf)

location ~ \.php$ {
	fastcgi_split_path_info ^(.+\.php)(/.+)$;
	fastcgi_pass	unix:/var/run/php5-fpm.sock;
	fastcgi_index	index.php;
	include		fastcgi_params;
}

location ~ \.cgi$ {
	fastcgi_split_path_info ^(.+\.cgi)(/.+)$;
	gzip		off;	# 对CGI开启gzip会导致运行缓慢,推荐off
	fastcgi_pass	unix:/var/run/fcgiwrap.socket;
	fastcgi_index	index.cgi;
	include		fastcgi_params;
}

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm)$ {
	expires 7d;
	access_log off;
}

虚拟主机设置

使用PukiWiki Adv.时,推荐按以下设置。

server{
	listen		80;
	server_name	[主机名];
	root		[文档根目录];
	index		index.php;
	include behavior.conf;

	location / {
		error_page      404 = @pukiwiki;
		log_not_found   off;
	}

	location @pukiwiki {
		rewrite ^/(.+)/$	/index.php?$1	last;
		rewrite ^/(.+)$		/index.php?$1	last;
	}
}