windows环境下 nginx 多个域名虚拟主机配置教程
时间:2014-07-04 01:34 来源: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.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.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)
假设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,
编辑后的nginx.conf 配置文件内容如下:
复制代码代码示例:
#user nobody;
#error_log logs/error.log; #pid logs/nginx.pid;
events {
http { keepalive_timeout 65; #gzip on;
include vhost/*.conf; #加载vhost目录下的虚拟主机配置文件
步骤2,
root 节用来配置网站文件路径,路径格式:d:/www/itnetcn;
复制代码代码示例:
server {
location / {
error_page 500 502 503 504 /50x.html;
附,windows下nginx管理脚本。
复制代码代码示例:
Rem 提供Windows下nginx的启动,重启,关闭功能
cls
另外,别名超长的解决办法,需要在http段加入: |