美文网首页
nginx转发配置

nginx转发配置

作者: warmsirius | 来源:发表于2019-08-16 18:53 被阅读0次

    写在前面

    前几天做微信开发的时候,老师提了一嘴,要自己配置一下端口转发到80,之前也学过nginx,但是也快忘得差不多了,现在来整理一下博客,加深一下记忆,有时间把之前的笔记全部做整理到博客上来。

    参考博客

    什么是端口转发

    当我们在服务器上搭建一个图书以及一个电影的应用,其中图书应用启动了 8001 端口,电影应用启动了 8002 端口。此时如果我们可以通过

    localhost:8001    //图书
    localhost:8002    //电影
    
    • 问题产生

    但我们一般访问应用的时候都是希望不加端口就访问域名,也即两个应用都通过 80 端口访问。但我们知道服务器上的一个端口只能被一个程序使用,这时候如何该怎么办呢?

    • 解决办法

    一个常用的方法是用 Nginx 进行端口转发

    • Nginx 的实现原理是

    用 Nginx 监听 80 端口,当有 HTTP 请求到来时,将 HTTP 请求的 HOST 等信息与其配置文件进行匹配并转发给对应的应用。例如当用户访问 book.douban.com 时,Nginx 从配置文件中知道这个是图书应用的 HTTP 请求,于是将此请求转发给 8001 端口的应用处理。当用户访问 movie.douban.com 时,Nginx 从配置文件中知道这个是电影应用的 HTTP 请求,于是将此请求转发给 8002 端口的应用处理。一个简单的 Nginx 配置文件(部分)如下面所示:

    #配置负载均衡池
    
    
    #Demo1负载均衡池
    upstream book_pool{
        server 127.0.0.1:8001;
    }
    
    #Demo2负载均衡池
    upstream movie_pool{
        server 127.0.0.1:8002;
    }
    
    #Demo1端口转发
    server {
        listen       80;
        server_name  book.chanshuyi.com;
        access_log logs/book.log;
        error_log logs/book.error;
    
        #将所有请求转发给demo_pool池的应用处理
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://book_pool;
        }
    }
    #Demo2端口转发
    server {
        listen       80;
        server_name  movie.chanshuyi.com;
        access_log logs/movie.log;
        error_log logs/movie.error;
    
        #将所有请求转发给demo_pool池的应用处理
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://movie_pool;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:nginx转发配置

          本文链接:https://www.haomeiwen.com/subject/dqaqsctx.html