记录:nginx proxy_pass转php给apache

本文介绍了一种Nginx配置方法,用于优化静态资源缓存有效期并实现PHP请求的代理转发。通过设置不同类型的静态文件缓存过期时间和使用正则表达式重写规则,可以有效提高网站性能。此外,还详细展示了如何配置Nginx作为PHP应用的反向代理。

nginx的配置

if (!-e $request_filename){
 set $rule_0 1$rule_0;
}
if ($request_uri !~* "\.(css|js|jpg|jpeg|gif|png|swf|flv)$"){
 set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
 rewrite (.*) /index.php/$1 last;
}

location ~.*\.(gif|jpg|jpeg|png|bmp|swf|flv)$ {
 expires        1d;
}

location ~.*\.(js|css)?$ {
 expires        1d;
}

location ~ \.php {
 proxy_pass http://127.0.0.1:8080;
 proxy_redirect off;
 proxy_set_header Host $host;
 proxy_set_header X-Forwarded-For $remote_addr;
}

Nginx 中的 Rewrite 和 proxy_pass 是两个不同的功能,它们在作用和应用场景上存在明显区别。 ### Rewrite Rewrite 主要用于重写 URL,也就是对请求的 URL 进行修改和跳。在很多实际场景中会有重写 URL 的需求,比如更换域名后要让旧域名跳到新域名,某网页发生改变需要跳到新页面,以及网站防盗链等。若后端使用 Apache 服务器虽也能做跳,但其规则库虽强大,不过 Nginx效率更高,可进行正则精确匹配。例如,在配置文件中可以通过相关指令来实现 URL 重写,像在 `server` 块里使用 `if` 条件判断结合 `rewrite` 指令,当域名满足特定条件时将请求重定向到新的域名和路径: ```nginx server { listen 80; server_name www.xiaoyan.com; charset utf-8; access_log /var/local/nginx/www.xiaoyan.access.log; location / { if ($host = 'www.xiaoyan.com'){ rewrite ^/(.*)$ http://www.xiaoyun.com/$1 permanent; } root html; index index.html index.htm; } } ``` 这里当访问 `www.xiaoyan.com` 时,会将请求永久重定向到 `www.xiaoyun.com` 对应的路径 [^1][^4]。 ### proxy_pass proxy_pass 是用于反向代理的指令,其作用是将客户端的请求发到后端的服务器。当 Nginx 接收到客户端的请求后,会根据 `proxy_pass` 指定的地址,把请求发给后端服务器进行处理,然后将后端服务器的响应返回给客户端。例如: ```nginx location /proxy/ { proxy_pass http://127.0.0.1/; } ``` 当客户端访问 `http://192.168.1.1/proxy/test.html` 时,Nginx 会将该请求发到 `http://127.0.0.1/test.html` 进行处理 [^1][^3]。 综上所述,Rewrite 侧重于对请求的 URL 进行修改和跳,改变客户端请求的目标地址;而 proxy_pass 侧重于将请求发给后端服务器,由后端服务器来处理请求并返回响应。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值