Nginx代理

正向代理:客户端

反向代理:服务端

主机连接正向代理

系统代理:所有的网络请求都会走代理。

软件:可以单独指定代理。

配置代理服务器

shell 复制代码
# 修改Nginx配置文件的server
server {
  resolver: 223.5.5.5;
  listen: 80;
  location / {
    proxy_pass http://$host$request_uri;
    proxy_set_header HOST $host;
    proxy_buffers 256 4k;
    proxy_max_temp_file_size 0k;
    proxy_connect_timeout 30;
    proxy_send_timeout 60;
    proxy_read_timeout 60;
    proxy_next_upstream error timeout invalid_header http_502;
  
  }
}
此时的nginx就不代表一个网站了,只做请求转发,单纯的代理。该配置只代理的http协议,https不行。

反向代理

主要是为了保护源站

反向代理讲请求转发给服务器,服务器将响应结果回复给代理,再由代理响应给客户端。

反向代理还能做负载均衡,将大量的请求分发给服务器集群(多台服务器提供一个服务)。

shell 复制代码
http {
    include               mime.types;
    default_type          application/octet-stream;
    charset               utf-8;
    sendfile              on;
    keepalive_timeout     65;
    server {
        listen       80;
        server_name  localhost;
        location / {
             # 192.168.61.140是源站的IP地址  将收到的请求转发给192.168.61.140服务器
            proxy_pass     http://192.168.61.140;
            # 设置host,防止请求域名丢失,不然代理服务器直接转发请求ip,会导致服务端不知道客户端真实访问的是哪个域名。
            proxy_set_header Host $host;

            # 设置真实ip地址记录,下面两个都是一个意思,实际中两个都会用。
            proxy_set_header X-Real_IP $remote_addr;
            proxy_set_header X-Forwarded_for $remote_addr;
        }
    }
}

负载均衡

在代理服务器的nginx配置文件的http中添加资源池,server的外面

shell 复制代码
http {
    include       mime.types;
    default_type  application/octet-stream;
    charset utf-8;
    # 资源池
    upstream web {
      # 集群服务器中的两个ip
      server 192.168.223.100;
      server 192.168.223.100;
    }
    server {
        listen       80;
        server_name  localhost;
        location / {
            proxy_pass htttp:// web; # 资源池的路径
        }
    }

    
}
相关推荐
小白羊丨12 小时前
HTTP/2 如何缓解 HTTP/1.1 阻塞;长连接对 Nginx 有什么影响?
网络协议·nginx·http
xixiaoyunya1 天前
Docker 容器化部署实战:从零搭建一套完整的 Nginx + Node.js + MySQL + Redis 项目环境
nginx·docker·node.js
SendTomo1 天前
【技术交流】从0到1构建一个汉字学习平台:汉字吧(hanzi8.com)的技术架构猜想
redis·mysql·nginx·php·个人开发
滨哥GPT2 天前
Codex新增文件上传后为什么小文件正常,大文件总失败?Multipart、Body Limit与Nginx限制排查
nginx·ai编程·文件上传·codex·multipart
come112342 天前
Nginx `location` 配置说明(后端开发版)
运维·nginx
PHP实战开发录3 天前
PHP文件上传成功为什么页面却找不到
开发语言·nginx·php·开发
「、皓子~3 天前
海狸IM 2.1 私有化部署从零到一:中间件、微服务与 Nginx 全流程
nginx·flutter·微服务·中间件·开源软件·im·海狸im
徐小黑ACG3 天前
nginx配置文件
linux·服务器·nginx
考虑考虑3 天前
nginx打印请求日志
运维·后端·nginx
Rain的Java大神之路4 天前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发