官方文档
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器
安装步骤
下载并启动nginx
-
下载
我这里安装的是稳定版
- 进到安装目录下打开dos命令窗口启动nginx
start nginx
修改端口
nginx配置中localhost服务器是使用80端口, 一般会有占用情况, 可酌情修改,
我这边暂时没冲突, 就先保持80端口
- 配置文件在conf目录下的
nginx.conf
文件
访问服务器
一切准备就绪, 访问localhost可看到nginx配置的默认页面
写个hello world
参照官网提供的初学者指南
提供静态内容
准备资源
在nginx安装目录下新建data/www
和data/images
目录,
同时, 在data/www
放入一个html页面, 在data/images
放入一张图片
配置
nginx配置如下:
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root data/www;
}
location /images/ {
root data;
}
}
}
访问
-
访问自己的图片资源
- 访问自己的html文件
注意
每次修改完nginx.conf文件后要在命令窗口reload一下才会更新配置!
如果有问题可查看logs目录下的error.log日志文件定位问题
匹配规则
前缀: 域名后面接的url
location
块可配置多个, 对于匹配的请求,URI 将被添加到root
指令中指定的路径中 ,即 todata/www
,以形成本地文件系统上所请求文件的路径。
解说:
当访问http://localhost/时, url会添加到root中, 那么本地文件请求路径就是在nginx的安装目录下找到 /data/www目录的资源, 且默认会访问index.html
如果有多个匹配
location
块,nginx 会选择前缀最长的块。location
上面的块提供了长度为 1 的最短前缀,因此只有当所有其他location
块都无法提供匹配时,才会使用该块。
解说:
在目前的conf中, 当我们访问http://localhost/images/cat.png时, 两个location前缀都匹配, 但是nginx只会选择前缀最长那块. 所以前缀是/images时, 就会在root下找到配置的data下的images目录的cat.png再来配个更长的前缀验证一下
location /images/long {
root data;
}
访问http://localhost/images/long/1.jpg
问题记录
window下关闭所有已开启的nginx进程
注意
每次执行start nginx
都会启动一个nginx进程......
查看所有nginx的服务进程信息
tasklist /fi “imagename eq nginx.exe”
关闭所有nginx的服务进程
taskkill /fi “imagename eq nginx.exe” /f
dos界面截图
页面中文乱码
解决方案
找到nginx配置文件, 在server块下添加配置:
charset utf-8;
再执行reload一下即可看到效果
nginx -s reload
注意
考虑到页面有缓存的情况, reload不生效时, 可修改下页面后重新刷新网页