Nginx--server块配置
Posted 是杨杨呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx--server块配置相关的知识,希望对你有一定的参考价值。
server_name 指令
server_name:用来设置虚拟主机服务名称。
语法 | server name name … |
---|---|
默认值 | server_name “” |
位置 | server |
关于server_name的配置方式
1.精确匹配
2.通配符匹配
3.正则表达式匹配
匹配方式一:精确匹配
server
listen 80;
server_name www.baidu.com ww.qq.com;
使用域名需要将本地的host文件 进行更改,否则直接跳转的是官方网站。
匹配方式二:使用通配符
server_name 中支持使用"*" , 型号只能出现在域名的两边,不能出现在中间
server
listen 80;
server_name *.baidu.com www.qq.*
错误配法
server
listen 80 ;
server_name www.*.com;
匹配方式三:
server_name 中可以使用正则表达式,并且使用~ 作为正则表达式字符串的开始标记。
代码 | 说明 |
---|---|
^ | 匹配搜索字符串开始位置 |
$ | 匹配搜索字符串结束位置 |
. | 匹配除换行\\n 之外的任何单个字符 |
\\ | 转义字符,将下一个字符标记为特殊字符 |
xyz | 字符集,与任意一个指定字符匹配 |
a-z | 字符范围,匹配指定范围内的任何字符 |
\\w | 与以下任意字符匹配 A-Z a-z 0-9 和下划线 等下于[A-Za-z0-9] |
\\d | 数字字符匹配,等效于[0-9] |
n | 正好匹配n次 |
n. | 至少匹配n次 |
n,m | 匹配至少n次至多m次 |
* | 零次或多次等下于0. |
+ | 一次或多次,等下于1, |
? | 零次或一次,等效于0,1 |
server
listen 80;
server name ~^www.(\\w+)([a-z]+)\\.com;
#www.xxx.com 在xxx中只要含有 任意字符并且超过一次 及匹配成功
loaction /
default_type:text\\plain;
return 200 '$1 $2' #$1 会打印第一个()中匹配的值;
三种匹配方式的执行顺序
准确匹配>通配符匹配>正则表达式匹配>default_server(没有匹配到,默认为第一个server)
location 指令用来设置请求的URL
语法 | location [ = / ~ / ~* / ^ ~ / @ ] url … |
---|---|
默认值 | - |
位置 | server.location |
url 变量是匹配的请求字符串,可以不包含正则表达式,也可以包含正则表达式,那么nginx服务器在搜索匹配location的时候,是先使用不包含正则表达式进行匹配,找到一个匹配度最高的一个,然后在通过包含正则表达式的进行匹配,如果能直接访问,匹配不到,就使用刚才匹配度最高的那个localtion 来处理请求
不指定
不要带符号,要求必须以指定模式开始
server
listen 80;
server_name localhost;
location /abc
default_type text/plain;
return 200 "access success"
提下连接都可以访问到
http://localhost:80/abc
http://localhost:80/abc?p1=TOM
http://localhost:80/abc/
http://localhost:80/abcdef
nginx server配置
server {
listen 80;
server_name localhost;
client_max_body_size 200m;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
location /images/ {
root /usr/local/;
autoindex on;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ .php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ .php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache‘s document root
# concurs with nginx‘s one
#
#location ~ /.ht {
# deny all;
#}
}
以上是关于Nginx--server块配置的主要内容,如果未能解决你的问题,请参考以下文章