`
sg552
  • 浏览: 620000 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
47437293-94b9-3b04-9152-8971c7580049
白手起家学习使用Flex
浏览量:18709
社区版块
存档分类
最新评论

转载: nginx 域名跳转一例~~~(rewrite、proxy)

阅读更多
转载的  ,  http://storysky.blog.51cto.com/628458/486338

前几天搭了一个论坛服务器并放到了公司的局域网里面,论坛用的是9066端口并在路由器上面做了个端口转发,而且把bbs.xxx.com这个域名也指向了公司的公网IP,因为想让用户在访问的时候不用输入端口号于是就想在公司的web服务器上面做个跳转,将访问bbs.xxx.com的请求都转到他的服务器上面去。我第一个想法就是 用 nginx的rewrite,过程很简单 配置如下:

server {
listen     80;
server_name  bbs.xxx.com;
rewrite  "^/(.*)$"  http://bbs.xxx.com:9066/$1 break;
          }

于是访问bbs.xxx.com检查了一下,注册,登录发帖等等操作都正常,本以为这样就ok了,结果随后问题出现了,虽然能正常的跳转但是 用户浏览器的域名栏上的地址后面一直跟着 9066 这个端口号,这让领导很不满意,于是我找了下nginx的文档, 问了下别的朋友,没有什么好办法。于是就改用了 proxy_pass,这个配置也很简单:

server {
listen       80;
server_name  bbs.xxx.com;
        location /
         {
        proxy_pass http://bbs.xxx.com:9066/;
          }
        }

然后再访问 bbs.xxx.com 后面的端口号就不在了,注册、登录、发帖都正常,可是不一会儿又出问题了,用户反映论坛无法注册,提示说“单一ip一天内只能注册5次”,这是怎么回事,通过检查日志后发现 所有公网发过来的请求竟然都是 网关的ip地址 ,这下我明白了简单的加了proxy以后如果不进一步设置的话 nginx是不会去判断真正的客户端ip的,而是直接把路由的地址作为请求ip,所以会出现上述情况,分析后查了下 nginx的wiki 于是就在上面又加了几条:

server {
listen       80;
server_name  bbs.xxx.com;
        location /
         {
        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://bbs.xxx.com:9066/;
          }
      }

改完以后 reload 了一下nginx,发现日志里面的源ip已经是真实的客户端地址了,重新注册,登录,发帖,都正常,重复了多次后没有发现问题,客户那里也都正常了。


下面是从网上找的一篇文章,分析的很详细 http://www.beijus.info/?p=730&cpage=1 ,同时也感谢这篇文章的作者 “蛋蛋面”
分享到:
评论

相关推荐

    nginx 域名跳转nginx多域名向主域名跳转

    - **多域名配置**:若需要实现多个子域名或不同形式的域名跳转到同一个主域名,则可以在同一个 server 块中配置多个 server_name 和 rewrite 规则。例如,下面的配置实现了 `wgkgood.gicp.net` 跳转到 `blog.mgcrazy...

    开源电子书:Nginx 开发手册文档.pdf

    2. 配置 Nginx:可以使用配置文件来配置 Nginx,包括设置服务器根目录、端口号、虚拟主机、负载均衡等。 3. PHP-FPM 安装配置:可以使用 PHP-FPM 作为 FastCGI server,提供 PHP支持。 Nginx 的一些常见问题和解决...

    一分钟搞定 Nginx反向代理 nginx域名代理

    2.在D:\nginx\目录下用记事本新建一个文本文档改名为 proxy.conf。 proxy.conf里面的内容格式如下: server { listen 80; server_name www.*****.com; location / { proxy_pass http://192.168.45.1:8045; ...

    图书:Nginx HTTP服务器

    《Nginx HTTP服务器》这本书深入探讨了Nginx这一高效、轻量级的Web服务器。Nginx以其反向代理、负载均衡和静态文件处理能力而闻名,被广泛应用于高性能网站架构中。以下是该书可能涉及的知识点,以及与之相关的IT...

    实战Nginx~~~

    ### 实战Nginx:取代Apache的高性能Web服务器 #### Nginx简介 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发。自2004年公开发布以来,...

    nginx页面跳转新方式

    传统的页面跳转方法通常采用`rewrite`规则,但随着技术的发展,出现了一种新的跳转方式——通过`refresh`进行跳转。这种方式相比传统方法更为彻底且更安全快捷,被广泛应用在如百度、知乎等大型网站中。本文将详细...

    Nginx转发到动态域名的proxy.conf

    Nginx在vhost里的配置站点,通过proxy转发到动态域名的具体配置。 反向代理,动态域名 ,Proxy

    6.3: Nginx代理服务器 、 Nginx优化 、 总结和答疑.docx

    Nginx 代理服务器是一种常用的 Web 服务器代理技术,能够将用户的请求转发给多个后端 Web 服务器,提高网站的性能和可用性。在本节中,我们将学习如何使用 Nginx 实现反向代理功能,实现多个后端 Web 服务器的负载...

    Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写[文].pdf

    Nginx 中 rewrite 实现二级域名、三级域名、泛域名、路径的重写 Nginx 中的 rewrite 模块是实现 URL 重写和.redirect 的强大工具。下面我们将详细介绍 Nginx 中如何使用 rewrite 实现二级域名、三级域名、泛域名、...

    nginx rewrite常用示例

    ### Nginx Rewrite 常用示例解析 #### 一、从非-www 版本自动重定向到 www 版本 **应用场景:** 当用户访问 `abc.com`(无 www 的版本)时,需要自动重定向到 `http://www.abc.com`。 **配置示例:** ```nginx ...

    Nginx的Rewrite规则与实例

    本文将深入探讨Nginx的Rewrite规则,通过实例来展示其在实际场景中的应用,帮助读者更好地理解和掌握这一关键技能。 #### 一、Rewrite规则的基本语法 Rewrite规则主要通过`rewrite`指令实现,其基本语法结构如下:...

    实例讲解nginx的rewrite规则

    ### 实例讲解Nginx的rewrite规则 #### 正则表达式匹配 在Nginx中,使用`rewrite`指令可以实现对URL的重写,其中涉及到正则表达式的匹配方式有以下几种: 1. **区分大小写的匹配**:使用`~`符号,例如:`rewrite ^/...

    Nginx之proxy_redirect使用详解

    在讨论Nginx的proxy_redirect指令时,我们首先要明确其在Nginx配置中的作用和重要性。proxy_redirect指令主要用于在反向代理过程中修改响应头中的Location和Refresh字段值。在Web服务器配置中,特别是在使用Nginx...

    nginx源码包(nginx+pcre+openssl+zlib)

    **Nginx** 是一款高性能的 Web 和反向代理服务器,以其轻量级、高并发、稳定性和灵活性而闻名。Nginx 的源代码由多个组件组成,包括基础的 Nginx 引擎以及与其他软件的集成,如 PCRE(Perl Compatible Regular ...

    带完整详细目录:Nginx高性能Web服务器详解+深入理解Nginx:模块开发与架构解析(第2版)陶辉著

    "Nginx高性能Web服务器详解"与"深入理解Nginx:模块开发与架构解析(第2版)"这两本书是深入学习Nginx的宝贵资料,涵盖了Nginx的基础知识、高级特性和模块开发。 1. **Nginx基础** - Nginx的工作原理:Nginx采用...

    Nginx反向代理和proxy

    此文比较详细讲述了Nginx与proxy共同搭建反向代理服务的配置方法

    实战Nginx:取代Apache的高性能Web服务器.

    Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,因其高效稳定和低内存占用而备受青睐。在互联网行业中,Nginx经常被用来替代传统的Apache服务器,以应对高并发访问和大型网站的需求。本教程将深入探讨Nginx...

    nginx-1.17.4.zip

    12. **虚拟主机**:Nginx 支持基于域名的虚拟主机,一个服务器可以同时托管多个网站。 13. **错误页面定制**:通过`error_page`指令,可以自定义错误页面,提供更友好的用户体验。 14. **模块扩展**:Nginx 有丰富...

Global site tag (gtag.js) - Google Analytics