nginx笔录

Nginx

安装

安装教程

1.反向代理

  • 正向代理:比如kexue上网无法访问谷歌,需要一个代理服务器代理客户端请求谷歌,这个代理服务器就是正向代理
  • 反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。隐藏了真正服务器的ip

正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。

正向代理中,服务器不知道真正的客户端到底是谁,以为访问自己的就是真实的客户端。而在反向代理中,客户端不知道真正的服务器是谁,以为自己访问的就是真实的服务器。

http中配置以下内容

server {
    listen       80;		# 监听80端口
    server_name  abucloud.com;

    location /manager {
        proxy_pass http://192.168.72.128:8080;
    }

    location /user {
        proxy_pass http://192.168.72.128:8081;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

}
  1. 以访问abucloud.com以api开头的代理到 http://192.168.72.128:8080服务

    代理前的路径是:http://abucloud.com/api/getName?id=1

    代理后的路径是:http://192.168.72.128:8080/api/getName?id=1

  2. 以访问abucloud.com以dev开头的代理到 http://192.168.72.128:8081服务

    代理前的路径是:http://abucloud.com/api/getName?id=1

    代理后的路径是:http://192.168.72.128:8081/dev/getName?id=1

2.负载均衡

http中添加

upstream custom-myserver {
    server 192.168.72.128:8081;
    server 192.168.72.128:8082;
}

server {

    listen       80;
    server_name  abucloud.com;

    location /api {
        proxy_pass http://custom-myserver;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

}

以访问abucloud.com以api开头的代理到 负载均衡到http://192.168.72.128:8080、http://192.168.72.128:8080服务中,默认是轮询

3.动静分离

放置前端

server {

    listen       80;
    server_name  abucloud.com;
    charset utf-8;

    location / {
        root  /data/;
        index  index.html index.htm;
    }

}

所有访问abucloud.com路径的请求都会去linux系统/data/下找,也就是说/data/目录下存放前端打包资源

当访问abucloud.com实质上访问的是http://abucloud.com/index.html,如果/data/目录下没有index.html会报forbidden 403

案例1

upstream custom-myserver {
    server 192.168.72.128:8081;
    server 192.168.72.128:8082;
}

server {

    listen       80;
    server_name  abucloud.com;
    charset utf-8;

    location / {
        root  /data/;
        index  index.html index.htm;
    }

    location /api {
        proxy_pass http://custom-myserver;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

}

当用户输入http://abucloud.com时,会被转发访问/data/目录下的资源

当用户点击按钮触发发送ajax请求http://abucloud.com/api/xxx时,会被反向代理到http://custom-myserver,进行负载均衡到具体的服务中,可能是http://192.168.72.128:8081/api/xxx,也可能http://192.168.72.128:8082/api/xxx

posted @ 2022-11-19 22:52  永无八哥  阅读(21)  评论(0编辑  收藏  举报