作为一个前端,在工作的时候肯定会遇到这样的实际问题,就是要让别人看到跑在你自己机子上localhost的页面。这个时候就需要靠Apache和IIS帮忙了,当然现在有许多集成好的Mysql和Apache等框架,例如我自己本来就是使用很简单的SpeedAMP,小白式操作就OK了。但是之前一直久闻Nginx的大名,组长也强烈推荐大家去折腾一下这个高性能的web服务器,于是趁着一点闲暇的时间,简单的配置了一下Nginx,满足我的日常工作就好了。这是一篇入门的文章,而且主要是介绍windows下的Nginx配置。
首先当然是安装了,http://nginx.org/en/download.html,选择windows的版本,下完直接解压缩,然后就已经算安装完成了。打开cmd,转到Nginx所在的目录,当然为了方便起见,也可以将Nginx的目录设为系统的环境变量。刚开始时候,我在cmd里很二的直接使用了C:\nginx-1.2.6>nginx.exe
,于是Nginx也能正常启动。但是,启动成功后,控制台是没有console.log的,要在目录下的logs文件夹查看日志,一般包括access和error。启动成功后,输入localhost便是Nginx的欢迎页了。刚才讲到,自己很二,为什么呢,因为直接运行Nginx.exe是不能通过ctrl+c停止服务的,而当前的控制台窗口也不能输入新的指令了,所以更科学的打开方式是C:\nginx-1.2.6>start nginx
。
要想停止Nginx服务,直接关闭控制台窗口是不行的,还需要指令
C:\nginx-1.2.6>nginx.exe -s stop
C:\nginx-1.2.6>nginx.exe -s quit
这两句都能停止Nginx服务,但是会有点差别:Nginx停止命令stop与quit参数的区别在于stop是快速停止Nginx,可能并不保存相关信息,quit是完整有序的停止Nginx,并保存相关信息。Nginx启动与停止命令的效果都可以通过Windows任务管理器中的进程选项卡观察到。
在第一次停止Nginx的时候,我就遇到问题了。控制台提示出错,error信息如下
这主要是windows下Nginx的Pid对应不上导致的,我们可以在控制台输入如下指令,查看Nginx当前的状态。
遇到这种情况的时候,作为一个小白,大家的第一反应自然就是google啦,别紧张,我已经帮大家google好了,我们可以通过如下指令来结束Nginx的进程
好了,现在就已经掌握了最基本的开启服务和停止服务了,其实也很简单。然后就是conf的配置了。Nginx的所有配置都默认使用conf/nginx.conf文件,其地位相当于apache的httpd.conf文件 。当运行nginx.exe暗含运行了nginx -c conf\nginx.conf。如果想使用自己定义的conf文件如my.conf,命令为nginx -c conf\my.conf。大体结构如下:
http {
server {
#1.侦听80端口
listen 80;
location / {
# 2. 默认主页目录在nginx安装目录的html子目录。
root html;
index index.html index.htm;
# 3. 没有索引页时,罗列文件和子目录
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
}
# 4.指定虚拟目录
location /tshirt {
alias D:\programs\Apache2\htdocs\tshirt;
index index.html index.htm;
}
}
# 5.虚拟主机www.codejia.net配置
server {
listen 80;
server_name www.codejia.net;
access_log codejia.net/logs/access.log;
location / {
index index.html;
root codejia.net/htdocs;
}
}
}