• nginx反向代理


    环境

    ubuntu:bionic的docker image

    docker run -it ubuntu:bionic
    

    安装nginx

    • 安装
    # apt-get install nginx
    
    • 查看版本号
    # nginx -v
    nginx version: nginx/1.14.0 (Ubuntu)
    
    • 启动nginx
    #  nginx
    //会启动一个master进程和多个worker进程
    #  ps  -ef
    root       2897      1  0 13:55 ?        00:00:00 nginx: master process /usr/sbin/nginx
    www-data   2898   2897  0 13:55 ?        00:00:00 nginx: worker process
    www-data   2899   2897  0 13:55 ?        00:00:00 nginx: worker process
    www-data   2900   2897  0 13:55 ?        00:00:00 nginx: worker process
    www-data   2901   2897  0 13:55 ?        00:00:00 nginx: worker process
    
    • 重新加载配置
    # nginx -s reload
    
    • 停止
    # nginx -s stop
    

    文件位置

    # find / -name nginx     
    /var/log/nginx               日志文件目录
    /usr/share/nginx
    /usr/sbin/nginx              可执行文件
    /etc/nginx/nginx.conf        配置文件目录
    

    Nginx作为反向代理

    反向代理就是将nginx作为网关服务器,背后有一个或者多个上游服务器。Http请求由网关服务器转发给上游服务器。

    单个上游服务器

    nginx进行反向代理配置:

    1. 修改网关服务器的nginx.conf
    http {
      server {
              listen     80;
              server_name 172.17.0.2;                 <<< 网关服务器的ip
    
              location / {
                  proxy_pass http://172.17.0.3:80;    <<< 上游服务器的ip
              }
      }
    }
    

    这个配置意思很清晰,就是用网关服务器ip对外接收http请求,然后转发给上游服务器ip。
    2. 启动上游服务器nginx。为了区分,可以修改上游服务器的nginx欢迎页面

    //欢迎页面的html文件路径
    /var/www/html/index.nginx-debian.html
    
    1. 浏览器访问:http://172.17.0.2:80,此时接收到欢迎页面应该是172.17.0.3中返回的。

    多个上游服务器

    1. 修改网关服务器的nginx.conf
    http {
      upstream myserver {                   <<< 上游服务器的组
          server 172.17.0.3:80;             <<< 上游服务器的ip
          server 172.17.0.4:80  weight=3;   <<< 还可以加修改权重
      }
    
    	server {
    		listen     80;
    		server_name 172.17.0.2;             <<< 网关服务器的ip
    
    		location / {
    		    proxy_pass http://myserver;     <<< 上游服务器的组
        }
    	}
    }
    

    nginx可以通过负载均衡在上游服务器的组内轮询各个ip。
    2. 启动多个上游服务器nginx。为了区分,可以修改上游服务器的nginx欢迎页面

    //欢迎页面的html文件路径
    /var/www/html/index.nginx-debian.html
    
    1. 浏览器访问:http://172.17.0.2:80,此时接收到欢迎页面应该是172.17.0.3,172.17.0.4中轮流返回的。

    参考

    1. 精通Nginx(第2版) Mastering NGINX,Dimitri Aivaliotis,人民邮电出版社,2017.8.1
    2. Nginx高性能Web服务器详解,苗泽,电子工业出版社,2013.10
    3. 官方文档:http://nginx.org/en/docs/http/load_balancing.html
    4. 视频教程:https://www.bilibili.com/video/BV1zJ411w7SV?p=10
  • 相关阅读:
    Apache TomEE 入门指南
    Windows 7运行命令大全
    hibernate hql 大全
    maven常用命令
    php编译安装php-5.6
    nginx编译安装
    apache通过AD验证
    apache编译安装 httpd 2.2 httpd 2.4
    DC 辅域转主域
    tomcat安装配置
  • 原文地址:https://www.cnblogs.com/abc36725612/p/14402844.html
Copyright © 2020-2023  润新知