nginx入门——web服务器(四)
我们先来认识一下web服务器主要功能。
- 处理哪些URL请求
- 怎么处理这些URL请求
下面我们主要针对这两个功能来进行讲解。
一、设置虚拟服务器
在http上下文中用server指令定义虚拟服务器,以下是一个基本的结构:
http {
server {
# Server上下文配置
}
}
基于域名判断由哪个server上下文来接受并处理请求,示例:
server {
listen 80;
server_name example.org www.example.org;
...
}
server {
listen 80;
server_name example.net www.example.net;
...
}
server {
listen 80;
server_name example.com www.example.com;
...
}
nginx通过请求头中的“Host”字段以确定将请求路由到哪个服务器。server_name可以配置完整的域名,或者通配符以及正则表达式。例如:*.example.org或者mail.*以及~^(www\.)?(.+)$正则表达式。
二、配置Locations
Nginx可以根据请求URI将流量发送到反向代理或者提供一个文件资源。
location修饰符
- = 使用精确匹配并且终止搜索
- ~ ?区分大小写的正则表达式匹配
- ~* ? 不区分大小写的正则表达式匹配 ?
- ^~ ? ?如果该修饰符在最长匹配前缀字符串前面添加,则不检查正则表达式。
用于匹配由/aaa/path/开头的请求URI,如/aaa/path/test.html
location /aaa/path/ {
#...
}
\为转义符。?匹配前一个字符0次或者1次。以下location会匹配任何路径以.html或者.htm结尾的文件。
location ~ \.html? {
#...
}
三、常用的location上下文指令
- rewrite指令
rewrite ^/old/(.*)$ /new/$1;
如果指定的正则表达式与请求 URI 匹配,则 URI 将按照第二个参数进行更改。如/old/index.html将会重写为/new/index.html。
- try_files指令
location / {
root html;
try_files $uri /index.html;
}
按指定顺序检查文件是否存在,$uri如果未找到任何文件,则会用最后一个参数中指定的内部重定向 。
- sub_filter指令
sub_filter 'test1' 'test3';
sub_filter_once on;
替换HTTP 响应中的内容,test1替换为test3。
以上就是nginx web服务器常用到的一些配置。大家还想学习哪个模块。欢迎评论留言。