当前位置: > Linux服务器 > nginx >

windows nginx 多站点虚拟主机配置教程

时间:2014-07-17 13:57来源:linux.it.net.cn 作者:IT网

假设nginx的目录结构如下所示:
 

复制代码代码示例:
nginx-0.8.54
│  nginx.exe //主程序
│ 
├─conf
│  │  fastcgi_params
│  │  koi-utf
│  │  koi-win
│  │  mime.types
│  │  nginx.conf  //核心配置文件
│  │  win-utf
│  │ 
│  └─vhost //虚拟主机目录
│          www.itnetcn.conf
│          news.itnetcn.conf
│         
├─contrib
│  │  geo2nginx.pl
│  │  README
│  │ 
│  └─unicode2nginx
│          koi-utf
│          unicode-to-nginx.pl
│          win-utf
│         
├─docs
│      CHANGES
│      CHANGES.ru
│      LICENSE
│      OpenSSL.LICENSE
│      PCRE.LICENCE
│      README
│      zlib.LICENSE
│     
├─html
│      50x.html
│      index.html
│     
├─logs
│      access.log
│      error.log
│      nginx.pid
│     
└─temp
    ├─client_body_temp
    ├─fastcgi_temp
    └─proxy_temp

步骤1,
进入conf文件夹,将内部的server配置段提取单独放在一个文件里,存到了conf/vhost下,以方便配置多个虚拟主机。
并在nginx.conf里http配置段内添加了一行 include vhost/*.conf;用来读取vhost下的虚拟主机配置。

编辑后的nginx.conf 配置文件内容如下:
 

复制代码代码示例:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include        mime.types;
    default_type    application/octet-stream;
    sendfile        on;

    keepalive_timeout    65;

    #gzip  on;

    include vhost/*.conf;        #加载vhost目录下的虚拟主机配置文件
}

步骤2,
修改vhost 下的虚拟主机配置文件以www.it.net.cn为例,在server_name 后添加网站域名,可添加多个,多个之间“空格”分开;

root 节用来配置网站文件路径,路径格式:d:/www/itnetcn;
 

复制代码代码示例:

server {
        listen       80;
        server_name  www.it.net.cn;    #可配置多个主机头

        location / {
            root   d:/www/itnetcn;        #网站文件路径
            index  index.htm index.html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

附,windows下nginx管理脚本。
 

复制代码代码示例:

Rem 提供Windows下nginx的启动,重启,关闭功能

cls 
@ECHO OFF 
SET NGINX_PATH=E: 
SET NGINX_DIR=E:\nginx-0.8.40\
color 0a 
TITLE Nginx 管理程序
GOTO MENU 
:MENU 
CLS 
ECHO. 
ECHO. * * * *  Nginx 管理程序 * * *  
ECHO. * * 
ECHO. * 1 启动Nginx * 
ECHO. * * 
ECHO. * 2 关闭Nginx * 
ECHO. * * 
ECHO. * 3 重启Nginx * 
ECHO. * * 
ECHO. * 4 退 出 * 
ECHO. * * 
ECHO. * * * * * * * * * * * * * * * * * * * * * * * * 
ECHO. 
ECHO.请输入选择项目的序号: 
set /p ID= 
IF "%id%"=="1" GOTO cmd1 
IF "%id%"=="2" GOTO cmd2 
IF "%id%"=="3" GOTO cmd3 
IF "%id%"=="4" EXIT 
PAUSE 
:cmd1 
ECHO. 
ECHO.启动Nginx...... 
IF NOT EXIST %NGINX_DIR%nginx.exe ECHO %NGINX_DIR%nginx.exe不存在 
%NGINX_PATH% 
cd %NGINX_DIR% 
IF EXIST %NGINX_DIR%nginx.exe start %NGINX_DIR%nginx.exe 
ECHO.OK 
PAUSE 
GOTO MENU 
:cmd2 
ECHO. 
ECHO.关闭Nginx...... 
taskkill /F /IM nginx.exe > nul 
ECHO.OK 
PAUSE 
GOTO MENU 
:cmd3 
ECHO. 
ECHO.关闭Nginx...... 
taskkill /F /IM nginx.exe > nul 
ECHO.OK 
GOTO cmd1 
GOTO MENU

另外,别名超长的解决办法,需要在http段加入:
server_names_hash_bucket_size 64;    #域名长度 
如果64个不够,再按32的倍数继续加大;如此便可解决别名超长的问题了。

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容