[转帖]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 redirect; } } ``` **解释:** * `listen 80;` 定义了监听端口 80。 * `server_name cnblogs.linuxds.com;` 设置了服务器域名。 * `access_log` 和 `error_log` 配置了访问日志和错误日志文件。 * `location /` 定义了通配规则,匹配所有请求到 `/` 目录下的文件。 若访问 `cnblogs.linuxds.com/index/1.html`,则执行重定向: ``` rewrite ^/(.*) http://www.cnblogs.com redirect; ``` **第二种:反向代理** ```nginx location /abc/ { proxy_pass http://localhost:8101; } ``` **解释:** * `location /abc/` 定义了匹配 `/abc/` 的通配规则。 * `proxy_pass http://localhost:8101;` 将请求转发到 `localhost:8101` 服务器。 请求 `http://myip/abc/cc/1.html` 实际请求的是 `http://localhost:8101/abc/cc/1.html`,因此缀是不变的。

正文

第一种: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 实现 10万+ 并发,Linux 内核优化

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

[转帖]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的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下摘掉一组,然后再升级这组,当项目快速迭代时,手动做这些操作显然会增加部

[转帖]nginx的ip_hash算法

概念 根据用户请求的ip,利用算法映射成hash值,分配到特定的tomcat服务器中。主要是为了实现负载均衡,只要用户ip固定,则hash值固定,特定用户只能访问特定服务器,解决了session的问题。 源码分析 ip_hash算法的处理代码位于src\http\modules\ngx_http_u