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

发布时间:2020-08-02编辑:脚本学堂
为大家介绍在windows下的nginx环境中配置多站点(虚拟主机)的教程,有需要的朋友,可以参考下。

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

复制代码 代码示例:
nginx-0.8.54
│  nginx.exe //主程序

├─conf
│  │  fastcgi_params
│  │  koi-utf
│  │  koi-win
│  │  mime.types
│  │  nginx.conf  //核心配置文件
│  │  win-utf
│  │
│  └─vhost //虚拟主机目录
│          www.jbxue.conf
│          news.jbxue.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.jb200.com为例,在server_name 后添加网站域名,可添加多个,多个之间“空格”分开;

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

复制代码 代码示例:

server {
        listen       80;
        server_name  download-bj.tv0714.com;    #可配置多个主机头

        location / {
            root   d:/www/www.jb200.com;        #网站文件路径
            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的倍数继续加大;如此便可解决别名超长的问题了。