nginx(windows版)配置实列

服务器 admin 1106℃ 0评论

1、下载nginx(windows版)
win32下的nginx 在这里http://nginx.net/,目前最新版本为0.8.7(开发版)。

2、配置
将下载的文件直接解压即可,双击ngunx.exe,就运行了。不过还没加进php。
咱也模仿一下apache的配置文件,将nginx.conf分解成两部分nginx.conf+vhost.conf。
(1)nginx.conf
#user nobody;
worker_processes 1;
#全局日志
error_log logs/error.log crit;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#PID文件
pid logs/nginx.pid;
#工作模式及连接数上限
events {
worker_connections 24;
}

#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
#设定mime类型
include mime.types;
default_type application/octet−stream;
#charset gb2312;
server_names_hash_bucket_size 128;
#access_log logs/access.log main;
#设定请求缓冲
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
keepalive_timeout 65;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
client_body_temp_path temp/client_body_temp; #设置临时文件存放位置#
proxy_temp_path temp/proxy_temp;
fastcgi_temp_path temp/fastcgi_temp;
#开启gzip模块
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x−javascript text/css application/xml;
gzip_vary on;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#设定虚拟主机
include vhost.conf;
}

(2)vhost.conf
server {
listen 8080;
server_name localhost;
client_max_body_size 10M;#限制上传文件大小#
charset utf−8;
index index.php index.html index.htm;
#设置D:\wwwroot\localhost为document
root D:/wwwroot/localhost;
#打开目录浏览,这样当然没有找到index文件,浏览目录中的文件
autoindex on;
if (−d $request_filename) {
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
error_page 404 /404.html;
location = /40x.html {
root html;
charset on;
}
location / {
root D:/wwwroot/localhost;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
charset on;
}
#将客户端的请求转交给FastCGI
location ~ .*\.(php|php5)?$
{
# root D:/wwwroot/localhost;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME D:/wwwroot/localhost$fastcgi_script_name;
include fastcgi_params;
}
#网站的图片较多,更改较少,将它们在浏览器本地缓存1天
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 1d;
}
#网站会加载很多JS、CSS,将它们在浏览器本地缓存1天
location ~ .*\.(js|css)?$
{
expires 1d;
}
location /(WEB−INF)/ {
deny all;
}
#设定日志格式
log_format access ‘$remote_addr − $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
#设定本虚拟主机的访问日志
access_log logs/access.lpg access;
}

注意事项:
[1]CGI设置
cgi.force_redirect = 1
cgi.fix_pathinfo = 1
cgi.rfc2616_headers = 1

[2]设置documentroot
这里设置documentroot必须是cygwin的格式,如果写成windows的盘符格式,则要写成反斜杠,如D:/wwwroot/localhost.

[3]php fast−cgi程序路径
这里很关键,在前面说了documentroot的配置并不起作用,所以在这里,你必须将正确的路径告诉php fast−cgi程序。SCRIPT_FILENAME 定义被请求文件在服务器的详细路径,这个路径必须保证另一个程序也就是fast−cgi程序能够找到这个文件。在很多fast−cgi的配置中都是:$documentroot$fastcgi_script_name;上面 e:\wwwroot就充当了$documentroot的角色。 而$fastcgi_script_name会包含url中domain后面的部分.

附:
1、工具RunHiddenConsole;
将RunHiddenConsole解压到nginx的文件夹下。

2、启动脚本
@ECHO OFF
echo Starting PHP_Fast_Cgi
RunHiddenConsole.exe php−cgi.exe −b 127.0.0.1:9000
echo Starting nginx
RunHiddenConsole.exe nginx.exe
EXIT

3、停止脚本
@echo off
echo Stopping nginx…
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI…
taskkill /F /IM php−cgi.exe > nul
exit

4、重启脚本
@ECHO OFF
call stop.bat
call start.bat
EXIT

转载请注明:My House » nginx(windows版)配置实列

喜欢 (1)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址