Nginx配置中,try_files和“@”符号得妙用

1、今天研究了一下Nginx反向代理配置,其中有一段代码

loaction / {

try_files $uri @apache

}

loaction @apache{

proxy_pass http://127.0.0.1:88

include aproxy.conf

}

try_files方法让Ngxin尝试访问后面得$uri链接,并进根据@apache配置进行内部重定向。

当然try_files也可以以错误代码赋值,如try_files /index.php = 404 @apache,则表示当尝试访问得文件返回404时,根据@apache配置项进行重定向。

注意try_files的作用域时loaction.
参考: https://blog.csdn.net/houpanqi/article/details/51498469

2、 Nginx的配置语法灵活,可控制度非常高。在0.7以后的版本中加入了一个try_files指令,配合命名location,可以部分替代原本常用的rewrite配置方式,提高解析效率。

作用域:server location

location  / {
                root  /var/www/build;
                index  index.html index.htm;
                try_files $uri $uri/ @rewrites;
        }
  
location @rewrites {
             rewrite ^(.+)$ /index.html last;
        }

try_files $uri $uri/ @aaaaa; 这句话是什么意思?

try_files从字面上理解就是尝试文件,再结合环境理解就是“尝试读取文件”,那他想读取什么文件呢,
答:读取静态文件

u r i 这 个 是 n g i n x 的 一 个 变 量 , 存 放 着 用 户 访 问 的 地 址 , 比 如 : h t t p : / / w w w . x x x . c o m / i n d e x . h t m l , 那 么 uri 这个是nginx的一个变量,存放着用户访问的地址, 比如:http://www.xxx.com/index.html, 那么 uringinx访,http://www.xxx.com/index.html,uri就是 /index.html

u r i / 代 表 访 问 的 是 一 个 目 录 , 比 如 : h t t p : / / w w w . x x x . c o m / h e l l o / t e s t / , 那 么 uri/ 代表访问的是一个目录,比如:http://www.xxx.com/hello/test/ ,那么 uri/访http://www.xxx.com/hello/test/uri/就是 /hello/test/

完整的解释就是:try_files 去尝试到网站目录读取用户访问的文件,如果第一个变量存在,就直接返回;
不存在继续读取第二个变量,如果存在,直接返回;不存在直接跳转到第三个参数上。

比如用户访问这个网地址:http://www.xxx.com/test.html
try_files首先会判断他是文件,还是一个目录,结果发现他是文件,与第一个参数 $uri变量匹配。
然后去到网站目录下去查找test.html文件是否存在,如果存在直接读取返回。如果不存在直接跳转到第三个参数,而第三个参数是一个location,而这个location里面配置的就是rewrite规则。

对于统信UOS操作系统,可以使用以下步骤配置Nginx作为web服务器: 1. 安装Nginx: 在终端执行以下命令来安装Nginx: ``` sudo apt update sudo apt install nginx ``` 2. 配置网站文件: 默认情况下,Nginx的网站文件位于`/etc/nginx/sites-available/`目录下。可以通过创建一个新的配置文件来配置您的网站。在终端执行以下命令: ``` sudo nano /etc/nginx/sites-available/mywebsite.conf ``` 在打开的文件,可以按照以下示例进行配置: ``` server { listen 80; listen [::]:80; root /var/www/html; index index.html index.htm; server_name mywebsite.com www.mywebsite.com; location / { try_files $uri $uri/ =404; } } ``` 在上面的示例,将`mywebsite.com`替换为您的实际域名。如果您要使用默认的Nginx欢迎页面,则无需更改根目录和索引文件。 3. 激活网站配置: 创建配置文件后,需要创建一个符号链接将其关联到`sites-enabled`目录。在终端执行以下命令: ``` sudo ln -s /etc/nginx/sites-available/mywebsite.conf /etc/nginx/sites-enabled/ ``` 4. 检查配置文件语法并重新加载Nginx: 在终端执行以下命令以验证Nginx配置文件的语法是否正确: ``` sudo nginx -t ``` 如果没有错误,重新加载Nginx以使配置生效: ``` sudo systemctl reload nginx ``` 5. 配置防火墙: 需要确保防火墙允许HTTP和HTTPS流量通过。在终端执行以下命令: ``` sudo ufw allow 'Nginx HTTP' ``` 如果您要启用HTTPS,则还需要允许HTTPS流量: ``` sudo ufw allow 'Nginx HTTPS' ``` 通过按照以上步骤配置Nginx,您可以将其用作统信UOS操作系统上的web服务器。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值