[转帖]nginx实现内容重定向的两种方式:rewrite和反向代理

nginx,实现,内容,重定向,两种,方式,rewrite,反向,代理 · 浏览次数 : 0

小编点评

**第一种:rewrite   更多参考另一个blog** ```nginx listen 80; server_name cnblogs.linuxds.com; access_log /var/log/nginx/cnblogs.access.log main; error_log /var/log/nginx/cnblogs.error.log warn; location / { if ($host = 'cnblogs.linuxds.com') { rewrite ^/(.*) http://www.cnblogs.com permanent; } } ``` **第二种:反向代理** ```nginx location /abc/ { proxy_pass http://localhost:8101; } location /abc/ { proxy_pass http://localhost:8101/; } ``` **区别:** * **rewrite**重定向的是针对请求路径的,当访问http://cnblogs.linuxds.com/index/1.html时,重定向至http://www.cnblogs.com。 * **反向代理**则是针对整个请求,当访问http://myip/abc/cc/1.html时,它会转发到http://localhost:8101/abc/cc/1.html。 **总结:** 使用**rewrite**重定向可以实现动态的URL重定向,而使用**反向代理**可以实现静态的URL重定向。

正文

第一种:rewrite   更多参考另一个blog

按照常规理解,实现重定向就是要用rewrite来实现,例如demo:

  1. [root@nginx01 ~]# vi /etc/nginx/conf.d/rewrite01.conf
  2. server {
  3. listen 80;
  4. server_name cnblogs.linuxds.com;
  5. access_log /var/log/nginx/cnblogs.access.log main;
  6. error_log /var/log/nginx/cnblogs.error.log warn;
  7. location / {
  8. if ($host = 'cnblogs.linuxds.com') {
  9. rewrite ^/(.*) http://www.cnblogs.com redirect;
  10. }
  11. }
  12. }
  13. 配置解释:结合if指令来对nginx请求进行判断,若访问http://cnblogs.linuxds.com/index/1.html,即$host = 'cnblogs.linuxds.com' 的时候,进行重定向跳转,重定向至 http://www.cnblogs.com。
  14. 使用rewrite重定向,浏览器链接是会发生变化:http://www.cnblogs.com
  15. 后缀index/1.html 是没有跟上的

第二种:反向代理
有些场景需要内容重定向到另外一个url, 但是链接保持不变,这时候就可以利用反向代理配置来达到目的。cc/1.html 是不会变的

  1. location /abc/ {
  2. proxy_pass http://localhost:8101;
  3. }
  4. 请求 http://myip/abc/cc/1.html 实际请求 http://localhost:8101/abc/cc/1.html
  5. 后缀是不变的
  6. location /abc/ {
  7. proxy_pass http://localhost:8101/;
  8. }
  9. 请求 http://myip/abc/cc/1.html 实际请求 http://localhost:8101/cc/1.html
  10. 后缀是不变的

与[转帖]nginx实现内容重定向的两种方式:rewrite和反向代理相似的内容:

[转帖]nginx实现内容重定向的两种方式:rewrite和反向代理

第一种:rewrite 更多参考另一个blog 按照常规理解,实现重定向就是要用rewrite来实现,例如demo: [root@nginx01 ~]# vi /etc/nginx/conf.d/rewrite01.confserver { listen 80; server_name cnblog

[转帖]nginx实现内容重定向的两种方式:rewrite和反向代理

第一种:rewrite 更多参考另一个blog 按照常规理解,实现重定向就是要用rewrite来实现,例如demo: [root@nginx01 ~]# vi /etc/nginx/conf.d/rewrite01.confserver { listen 80; server_name cnblog

[转帖]Nginx设置目录浏览模式

https://www.cnblogs.com/shanfeng1000/p/16259268.html Nginx除了可以实现反向代理外,还有个实用的功能,那就是目录浏览,它可以很方便的让我们查看某个目录下的文件内容,并可以选择性的下载。 启用目录浏览 一般的,我们可以创建一个demo.conf配

[转帖]查看请求在nginx中消耗的时间

需求:查看请求在nginx中消耗的时间,不包括程序响应时间。 1.声明日志的格式,在nginx配置文件nginx.conf里的http下添加如下内容: log_format test '$remote_addr - $remote_user [$time_local] "$request" ' '$

[转帖]Nginx Ingress 高并发实践

概述 Nginx Ingress Controller 基于 Nginx 实现了 Kubernetes Ingress API,Nginx 是公认的高性能网关,但如果不对其进行一些参数调优,就不能充分发挥出高性能的优势。之前我们在 Nginx Ingress on TKE 部署最佳实践 一文中讲了

[转帖]Nginx优化与防盗链

目录 一、配置Nginx隐藏版本号1、第一种方法修改配置文件2、第二种方法修改源码文件,重新编译安装 二、修改Nginx用户与组三、配置Nginx网页缓存时间四、实现Nginx的日志分割五、配置Nginx实现连接超时六、更改Nginx运行进程数七、配置Nginx实现网页压缩功能八、配置Nginx防盗

[转帖]nginx如何实现负载均衡、限流、缓存、黑白名单和灰度发布

https://zhuanlan.zhihu.com/p/464491494 挺好的文章. nginx负载均衡配置 1.负载均衡配置 http { upstream real_server { server 192.168.1.100:8082 weight=1; #轮询服务器和访问权重 serve

[转帖]基于 Nginx 实现 10万+ 并发,Linux 内核优化

来源:http://t.cn/EyQTMwG 由于默认的Linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,是的Nginx可以拥有更高的性能; 在优化内核时,可以做的事情很多,不过,我们通常会根据业务特点来进行调整,当Nginx作

[转帖]使用nginx的proxy_store缓存文件加速访问速度

https://www.qiansw.com/using-nginxs-proxystore-cache-file-to-accelerate-access-speed.html nginx的proxy_store可以将后端服务器的文件暂存在本地. 基于此,可以实现nginx的缓存后端服务器文件,加

[转帖]Etcd+Confd实现Nginx配置文件自动管理

https://www.cnblogs.com/zhengchunyuan/p/9681954.html 一、需求 我们使用Nginx做七层负载均衡,后端是Tomcat。项目采用灰度发布方式,每次项目升级,都要手动先从Nginx下摘掉一组,然后再升级这组,当项目快速迭代时,手动做这些操作显然会增加部