Nginx反向代理在生产环境中使用很多的。场景1:
域名没有备案,可以把域名解析到香港一台云主机上,在香港云主机做个代理,而网站数据是在大陆的服务器上。示例1:
server
{listen 80;server_name oldxu.com;location /{proxy_pass http://123.23.13.11/;proxy_set_header Host   $host;proxy_set_header X-Real-IP      $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
配置说明
1. proxy_pass
在正向代理中,已经使用过该指令。
格式很简单: proxy_pass  URL;
其中URL包含:传输协议(http://, https://等)、主机名(域名或者IP:PORT)、uri。示例如下:
proxy_pass http://www.oldxu.com/;
proxy_pass http://192.168.200.101:8080/uri;
proxy_pass unix:/tmp/www.sock;对于proxy_pass的配置有几种情况需要注意。
示例2:
location /oldxu/
{proxy_pass http://192.168.1.10;...
}示例3:
location /oldxu/
{proxy_pass http://192.168.1.10/;...
}示例4:
location /oldxu/
{proxy_pass http://192.168.1.10/linux/;...
}示例5:
location /oldxu/
{proxy_pass http://192.168.1.10/linux;...
}假设server_name为www.oldxu.com
当请求http://www.oldxu.com/oldxu/a.html的时候,以上示例2-5分别访问的结果是示例2:http://192.168.1.10/oldxu/a.html示例3:http://192.168.1.10/a.html示例4:http://192.168.1.10/linux/a.html示例5:http://192.168.1.10/linuxa.html
2. proxy_set_header
proxy_set_header用来设定被代理服务器接收到的header信息。语法:proxy_set_header field value;
field为要更改的项目,也可以理解为变量的名字,比如host
value为变量的值如果不设置proxy_set_header,则默认host的值为proxy_pass后面跟的那个域名或者IP(一般写IP),
比如示例4,请求到后端的服务器上时,完整请求uri为:http://192.168.1.10/linux/a.html如果设置proxy_set_header,如 proxy_set_header host $host;
比如示例4,请求到后端的服务器完整uri为:http://www.oldxu.com/linux/a.htmlproxy_set_header X-Real-IP $remote_addr;和proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
用来设置被代理端接收到的远程客户端IP,如果不设置,则header信息中并不会透传远程真实客户端的IP地址。
可以用如下示例来测试:示例6(被代理端)
server{listen 8080;server_name www.oldxu.com;root /tmp/123.com_8080;index index.html;location /linux/ {echo "$host";echo $remote_addr;echo $proxy_add_x_forwarded_for;}
}示例7(代理服务器上)
server {listen 80;server_name www.oldxu.com;location /oldxu/{proxy_pass http://192.168.1.10:8080/linux/;proxy_set_header host $host;proxy_set_header X-Real-IP      $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
3. proxy_redirect
该指令用来修改被代理服务器返回的响应头中的Location头域和“refresh”头域。
语法结构为:
proxy_redirect redirect replacement;
proxy_redirect default;
proxy_redirect off;示例8:
server {listen 80;server_name www.oldxu.com;index  index.html;location /{proxy_pass http://127.0.0.1:8080;proxy_set_header host $host;proxy_set_header X-Real-IP      $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}当请求的链接为 http://www.oldxu.com/oldxu
结果会返回301,定向到了 http://www.oldxu.com:8080/oldxu/注意:返回301有几个先决条件
1. location后面必须是/;
2. proxy_pass后面的URL不能加uri,只能是IP或者IP:port结尾,并不能以/结尾;
3. 访问的uri必须是一个真实存在的目录,如,这里的oldxu必须是存在的
4. 访问的时候,不能以/结尾,只能是 www.oldxu.com/oldxu虽然,这4个条件挺苛刻,但确实会遇到类似的请求。解决方法是,加一行proxy_redirect http://$host:8080/ /;示例9:
server {listen 80;server_name www.oldxu.com;index  index.html;location /{proxy_pass http://127.0.0.1:8080;proxy_set_header host $host;proxy_redirect http://$host:8080/ /;proxy_set_header X-Real-IP      $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

转载于:https://www.cnblogs.com/xuliangwei/p/11568316.html

Nginx反向代理其他使用方式相关推荐

  1. nginx反向代理以及nginx反向代理三种方式

    nginx反向代理的三种模式分别是: 一.正向代理(Forward Proxy) 二.反向代理(reverse proxy) 三.透明代理 Nginx性能很高的,尤其是作为一个代理服务器,因为它用的是 ...

  2. (转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容...

    from :http://www.cnblogs.com/wuyou/p/3455619.html 环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: ...

  3. Nginx反向代理的两种配置方式

    一.nginx反向代理简单配置 1.准备nginx环境 这篇文章的前提是已经配置好了NGINX,而且tomcat已经配置好了,而且能能够访问了. 反向代理不同端口(本案例均是单节点) 这里介绍一台ng ...

  4. nginx反向代理原理及配置详解

    nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...

  5. nginx反向代理原理讲解

    一 .概述                  反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果 ...

  6. 懂点 Nginx 反向代理与负载均衡,是面试加分项没有之一

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 学到老活到老 前端圈一直很新,一直要不停的学习,而且在进入大厂的路上,还要求熟悉一门后台语言等等 ...

  7. nginx反向代理,负载均衡

    nginx 反向代理(Reverse Proxy)是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户 ...

  8. Nginx反向代理以及负载均衡配置

    一 .nginx 的优缺点: nginx 相对 apache 的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则 ...

  9. 配置nginx反向代理jira并实现https

    摘要: 配置nginx反向代理jira并实现https 配置Tomcat 在本文中,我们设置可以在地址http://jira.aniu.so/jira(标准HTTP端口80)上访问JIRA,而JIRA ...

最新文章

  1. c++ memset 语言_自学C语言不知道从哪儿下手?学习框架都帮你列好了!
  2. 基础 PHP 数据类型
  3. 操作系统 chapter 12 死锁
  4. 修改Thickbox,预加载图片和点击图片前后浏览
  5. 圆方圆学院零基础入门学习Python(绝对干货,值得学习)
  6. 为什么叫日上_古雷150万吨乙烯,为啥叫芒果项目?
  7. 信用卡使用十年的心得体会(图)
  8. php连接mysql的方式_php有几种连接mysql的方法
  9. mysql启动失败2005_数据库2005服务启动不了
  10. fs hadoop 压缩_Hadoop 压缩图文教程
  11. html图片多tab切换代码,CSS实现Tab页切换实例代码
  12. 设计总结:进销存业务流程设计
  13. 连这些题都不会做好意思说自己懂网络?
  14. Chrome屏蔽广告
  15. 【精华帖】PS拼接图片最简单教程
  16. 没有这个路径C:\Program Files\Microsoft Office\root\Office16怎么办
  17. 让你的 CDN 费用省 50% 以上!图片瘦身的正确姿势
  18. STM32学习总结——UART
  19. 金海佳学C++primer 练习9.44
  20. GSM MODEN短信发送模块详解(短信的读取、发送过程和编码、解码过程)

热门文章

  1. 学习笔记:平衡树-splay
  2. 第十四篇 元类编程(二)
  3. (转)oracle表分区详解
  4. hdu3535 (分组背包,最少选一 + 最多选一 + 随意)
  5. 10月17日Servlet培训日记
  6. linux grub error 22,Linux系統grub常見錯誤問題解決
  7. kvm架构详解--理解CPU、内存、IO虚拟化技术、处理器硬件支持
  8. linux网络发包性能优化
  9. 初识Web Component
  10. HBase之重试机制