博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx server配置和指令详解
阅读量:4286 次
发布时间:2019-05-27

本文共 1813 字,大约阅读时间需要 6 分钟。

Setting Up Virtual Servers

virtual server的配置是放在http模块中,例如:
http {
server {
# Server configuration
}
}
在http中,可以定义多个virtual server以满足需要
下面的配置表示监听本机的8000端口:
server {
listen 127.0.0.1:8080;
# The rest of server configuration
}
如果写明监听哪个端口,那么将使用标准端口tcp 80 或默认端口 tcp 8000
在server块中,可以通过server_name来配置server的多域名,域名可以通过以下方式:
1、完整的域名,如www.example.com
2、带*号开头的域名,如 *.example.com
3、带*号末尾的域名,如 mail.*
4、可匹配的正则表达式

Configuring Locations

下面的配置将匹配以 /some/path/开头的URIs,例如:/some/path/document.html
location /some/path/ {
...
}
正则表达式能通过 ~ 符号 和 ~* 这两个符号表示,分别指正则表达式区分大小写和不区分大小写,以下例子表示匹配URIs中包含.html 或者.htm 的访问路径:
location ~ \.html? {
...
}
nginx会匹配最准确的路径,会先匹配相对路径,如果不匹配,再跟正则表达式进行匹配
以下例子中,第一个路径/images/的文件目录是/data,第二个路径表明nginx作为代理的角色将会把请求转给后端www.example.com的机器上
server {
location /images/ {
root /data;
}
location / {
proxy_pass http://www.example.com;
}
}

如果这样配置,那么除了/image/开头的URIs,其他的URIs将会以代理的方式传到后端机器

root 指令

root指令能指定那个目录作为根目录用于文件的检索,这个指令能用于http,server,location这些块中
下面的例子指定了virtual server文件检索的根目录:
server {
root /www/data;
location / {
}
location /images/ {
}
location ~ \.(mp3|mp4) {
root /www/media;
}
}
当一个URI以/image/开头,那么将会在 /www/data/images/这个目录下进行检索;当URI以 .mp3或.mp4结尾时,nginx将会在/www/media目录下检索资源
当一个请求以 / 结尾时,nginx会尝试在该目录下找到该请求的索引文件(index file)。默认的索引文件为index.html。
例如 如果URI为/images/some/path/,那么nginx会尝试查找/www/data/images/some/path/index.html文件,如果这个文件不存在,那么将默认返回404。
可以通过 autoindex指令来配置nginx自动生成目录文件列表,而不是返回index.html
location /images/ {
autoindex on;
}
如果想让nginx查找更多指定类型的索引文件,可以通过Index指令指定,如:
location / {
index index.$geo.html index.htm index.html;
}
try_files 指令
try_files指令会在原请求不存在时,重定向到指定的URI,并返回结果。例如:
server {
root /www/data;
location /images/ {
try_files $uri /images/default.gif;
}
}
/www/data/images/index.html不存在时,将会返回/www/data/images/default.gif文件
另外一种情况是返回状态码:
location / {
try_files $uri $uri/ $uri.html =404;
}

转载地址:http://edxgi.baihongyu.com/

你可能感兴趣的文章
SqlServer 数据库修改是否区分大小写
查看>>
Ionic相关整理
查看>>
Node.js和Npm查看版本信息
查看>>
Layui相关整理
查看>>
CND使用说明整理2、Asp.NetCDN服务地址
查看>>
EF中Sum()异常:到值类型“System.Decimal”的强制转换失败,因为具体化值为 null。
查看>>
Visual Studio Code插件之Atom One Dark Syntax Theme
查看>>
EntiryFramework中事务操作(二)TransactionScope
查看>>
EF日期筛选异常:SqlServer.DATEDIFF”函数的 DATEPART 参数必须是文字字符串。
查看>>
AngularJS路由之ui-router(三)大小写处理
查看>>
AngularJs checkbox绑定
查看>>
C# 扩展方法整理
查看>>
微信小程序开源项目库整理
查看>>
Ionic Grid栅格布局居中实例
查看>>
Cordova 配置WebView可以打开外部链接
查看>>
Ionic Tab选项卡使用整理(一)
查看>>
Ionic Tab选项卡使用整理(二)
查看>>
Ionic Tab选项卡使用整理(三)
查看>>
AngularJs控制器说明(一)
查看>>
Teleport Ultra网站静态资源下载工具
查看>>