nginx中如何配置proxy_pass

 更新时间:2024年06月13日 16:17:46   作者:CL82  
这篇文章主要介绍了nginx中如何配置proxy_pass问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

nginx http 代理

通过proxy_set_header,返回客户端真实IP地址及端口,而不是代理主机ip

server {
listen 80;
location / {
proxy_set_header Host h o s t : host: host:server_port; # 设置请求头:代理IP:port
proxy_set_header X-Real-IP $remote_addr; # 真实客户端地址IP
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For KaTeX parse error: Double subscript at position 12: proxy_add_x_̲forwarded_for; …http_host:88$request_uri;
}
}

在nginx中配置proxy_pass时的加不加/的问题

要注意proxy_pass后的url最后的/

当加上了/,相当于是加了路径,则nginx不会保留location中匹配的路径部分

如果没有/,则会把匹配的路径部分保留

例:

location ^~ /static/css/
{
    proxy_cache css_cache;
    proxy_set_header Host css.ztit.cn;
    proxy_pass http://css.ztit.cn/;
}

如上面的配置

如果请求的url是:

http://[域名]/static/css/a.css

会被代理成:

http://css.ztit.cn/a.css
location ^~ /static/css/
{
    proxy_cache css_cache;
    proxy_set_header Host css.ztit.cn;
    proxy_pass http://css.ztit.cn;
} 

如上面的配置

如果请求的url是:

http://[域名]/static/css/a.css

则会被代理到:

http://css.ztit.cn/static/css/a.css

关于proxy_pass配置的path问题

如果,你不想nginx对你的URI请求被修改

那么,proxy_pass的配置中就不应该带有任何path。

例:

location /static/css/ {
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:85;
}

如果请求的url是:

http://127.0.0.1/static/css/a.css

会被代理到:

http://127.0.0.1:85/static/css/a.css

否则,在proxy_pass的配置中有path

location /static/css/ {
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:85/path;
}

如果请求的url是:

http://127.0.0.1/static/css/a.css

会被代理到:

http://127.0.0.1:85/path/a.css

nginx 负载均衡

关于nginx负载均衡配置的几个状态参数讲解。

  • down,表示当前的server暂时不参与负载均衡。
  • backup,预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。
  • max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。
  • fail_timeout,在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。

#热备:如果你有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务。

服务器处理请求的顺序:AAAAAA突然A挂啦,BBB…

upstream images { 
    server 192.168.1.50:8080; 
    server 192.168.1.50:8080 backup;  #热备     
}

#轮询:nginx默认就是轮询其权重都默认为1,服务器处理请求的顺序:ABABABABAB…

upstream images1 { 
    server 192.168.1.50:8080;
    server 192.168.1.51:8080;       
}

#加权轮询:跟据配置的权重的大小而分发给不同服务器不同数量的请求。如果不设置,则默认为1。下面服务器的请求顺序为:ABBABBABBABBABB…

 upstream images2 { 
    server 192.168.1.50:8080 weight=1;
    server 192.168.1.51:8080 weight=2;
}

#ip_hash:nginx会让相同的客户端ip请求相同的服务器。

upstream images3 { 
    server 192.168.1.50:8080; 
    server 192.168.1.51:8080;
    ip_hash;
}
upstream images4 {
    server 192.168.1.50:8080   max_fails=2 fail_timeout=30s;
    server 192.168.1.51:8080   max_fails=2 fail_timeout=30s;
}
server {
    listen 80;
    server_name _;

    location / {
        proxy_read_timeout 1800;
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://images;
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx中roxy_set_header与add_header区别举例浅析

    Nginx中roxy_set_header与add_header区别举例浅析

    proxy_set_header是一个 Nginx 配置指令,用于设置将要转发到后端服务器的 HTTP 请求头,这篇文章主要给大家介绍了关于Nginx中roxy_set_header与add_header区别的相关资料,需要的朋友可以参考下
    2024-04-04
  • Nginx定义域名访问方式

    Nginx定义域名访问方式

    这篇文章主要介绍了Nginx定义域名访问方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Nginx 安装配置及常用命令详解

    Nginx 安装配置及常用命令详解

    本文介绍了Nginx的安装、配置和启动等步骤,详细介绍了Nginx的配置文件结构和常用命令,感兴趣的朋友跟随小编一起看看吧
    2026-04-04
  • Nginx的一些常用配置汇总

    Nginx的一些常用配置汇总

    nginx配置说简单也简单,说复杂也复杂,入门简单,精通难,下面这篇文章主要给大家介绍了关于Nginx的一些常用配置,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • keepalived+nginx高可用实现方法示例

    keepalived+nginx高可用实现方法示例

    这篇文章主要介绍了keepalived+nginx高可用实现方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Nginx配置终极版指南(全网最详细)

    Nginx配置终极版指南(全网最详细)

    对于前端项目来说,nginx是必须了解和熟悉的,本文对nginx整体的概念进行了重新梳理,同时帮读者理清nginx配置思路,文中通过代码示例和图文讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-11-11
  • nginx配置location方法总结

    nginx配置location方法总结

    这篇文章主要介绍了nginx配置location方法总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Nginx请求访问控制实现方案

    Nginx请求访问控制实现方案

    Nginx并不直接实现漏桶算法或令牌桶算法,但这些算法在控制网络流量和请求速率方面非常有用,这些算法通常在网络编程、API服务、负载均衡等领域中使用,以确保系统的稳定性和性能,这篇文章给大家介绍Nginx请求访问控制实现方案,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • Nginx中keepalive配置小结

    Nginx中keepalive配置小结

    本文介绍了Nginx keepalive配置的概念和作用,阐述了keepalive连接的基本原理和优势,并给出了一些常用的配置示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Nginx四层负载均衡的实现示例

    Nginx四层负载均衡的实现示例

    Nginx 不支持传统的四层负载均衡,但可以通过stream模块配合TCP实现类似的功能,本文主要介绍了Nginx四层负载均衡的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04

最新评论