1、在一个location下匹配多个路径
location ~ ^/(路径1|路径2|路径3|路径4|路径5) {
proxy_pass 跳转的地址;
proxy_set_header $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header x-tif-uid $http_x_tif_uid;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_ignore_client_abort on;
proxy_next_upstream timeout;
}可以有多个server,一个server监听一个端口
server {
listen 80;
# 上面是监听ipv4的端口,下面是监听ipv6的端口
listen [::]:80;
# 关于SSL的配置
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
# 指定根目录,以下会把访问映射到/var/www目录下
root /var/www;
# 设置默认的后缀,如果访问路径是一个目录,没有默认后缀,会依次访问以下后缀来尝试访问
index index.html index.htm index.nginx-debian.html;
# 无论用户访问时使用哪个域名或IP地址,都会被这个配置所匹配,此处也可以指定域名或ip,这样只有指定域名或ip才能访问到此server
server_name _;
# location ~/blog/ {
# proxy_set_header server_source_flag 'flag';
# add_header custFlag "flag";
# proxy_pass http://127.0.0.1:80;
# }
location / {
# 设置过滤地址
# allow 127.0.0.1;
# deny all;
#if ($http_referer) {
#if (-f $request_filename/index.html){
# # 如果不是通过重定向到达,执行重定向
# proxy_pass http://127.0.0.1:23000/;
#}
# 访问一个目录时,Nginx会按照设定的顺序尝试查找并显示第一个存在的索引文件。比如,用户访问 http://yourdomain.com/ 而没有指定具体的文件名时,Nginx会依次尝试查找 index.html, index.htm, index.php, default.html, default.htm, default.php 这些文件,并显示找到的第一个可用的文件作为页面内容
index index.html index.htm index.php default.html default.htm default.php;
if (-f $request_filename/index.html){
# (.*): 匹配任意字符零次或多次,这里表示匹配所有内容,并将其捕获到变量 $1 中
# $1/index.html: 表示将匹配到的内容拼接上 /index.html
# break: 告诉 Nginx 在当前位置结束处理该请求,并立即应用新的重写规则。
# index index.html index.htm index.php default.html default.htm default.php并不是我们期待的后缀,并不能在系统中正确识别,所以就要进行跳转操作
# index.html或index.php是我们预期要的后缀,所以得到这个后缀了,就不再向下执行,向下执行是为了获得index.html后缀,此次跳转是为了要放行
rewrite (.*) $1/index.html break;
}
# 如果请求的文件不存在(即当前请求的文件不在服务器上),则执行条件语句内部的逻辑。在这里 !-f 是一个Nginx的判断条件,表示检查当前请求对应的文件是否存在。
if (-f $request_filename/index.php){
# index.php也是能够支持的一种后缀,所以也予以识别并且跳转
# 这里之所以没有break,是因为没必要,下面的筛选智能进入不带后缀的访问请求
rewrite (.*) $1/index.php;
}
# 专门拦截没有后缀的地址,给加上合理的后缀。每次跳转之后,上面的过程会从新检查一遍,找到符合的入口
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
# location /lone/ {
# 重新设置这个请求的根目录
# root /etc/af/h3c/lone/Three;
# 指定默认文件为
# index index.html;
# Nginx 尝试按照指定的顺序查找文件,首先尝试匹配当前URI,然后尝试在URI后面加上斜线再进行匹配,如果都没有找到则返回404页面
# try_files $uri $uri/ /index.html =404;
# }
# 这段配置代码用于将以 .php 结尾的请求转发给 PHP 解释器进行处理,确保 Web 服务器能正确解析和执行 PHP 脚本。
# 如果你采用了php的引擎,那这段是你必不可少要加的
location ~\.php(\/.*)*$ {
# allow 127.0.0.1;
# deny all;
# 指定了 FastCGI 后端服务器(PHP-FPM)的地址,Nginx 会将 PHP 脚本交给 PHP-FPM 进行处理。
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
#fastcgi_pass 127.0.0.1:6000;
# 设置 FastCGI 参数,告诉 PHP-FPM 当前执行脚本的路径和文件名。
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
包含了一个文件,该文件一般包含了一些默认设置和参数。
include fastcgi_params;
}
# 这是地址映射的写法,把正则晒出来的地址映射到里面那个地址,alias是映射
# location ~ /fuse/ftts/(.+/)*(.+)\.(jpg|png|gif)$ {
# alias /etc/af/h3c/fuse/ftts/$1$2.$3;
# }
}