广告位联系
返回顶部
分享到

nginx中配置proxy_pass的方法

nginx 来源:互联网 作者:佚名 发布时间:2024-06-13 19:49:18 人浏览
摘要

nginx http 代理 通过proxy_set_header,返回客户端真实IP地址及端口,而不是代理主机ip 1 2 3 4 5 6 7 8 9 server { listen 80; location / { proxy_set_header Host h o s t : host: host:server_port; # 设置请求头:代理IP:port

nginx http 代理

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

1

2

3

4

5

6

7

8

9

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中匹配的路径部分

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

例:

1

2

3

4

5

6

location ^~ /static/css/

{

    proxy_cache css_cache;

    proxy_set_header Host css.ztit.cn;

    proxy_pass http://css.ztit.cn/;

}

如上面的配置

如果请求的url是:

1

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

会被代理成:

1

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

1

2

3

4

5

6

location ^~ /static/css/

{

    proxy_cache css_cache;

    proxy_set_header Host css.ztit.cn;

    proxy_pass http://css.ztit.cn;

}

如上面的配置

如果请求的url是:

1

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

则会被代理到:

1

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

关于proxy_pass配置的path问题

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

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

例:

1

2

3

4

location /static/css/ {

    proxy_set_header Host $host;

    proxy_pass http://127.0.0.1:85;

}

如果请求的url是:

1

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

会被代理到:

1

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

否则,在proxy_pass的配置中有path

1

2

3

4

location /static/css/ {

    proxy_set_header Host $host;

    proxy_pass http://127.0.0.1:85/path;

}

如果请求的url是:

1

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

会被代理到:

1

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…

1

2

3

4

upstream images {

    server 192.168.1.50:8080;

    server 192.168.1.50:8080 backup;  #热备    

}

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

1

2

3

4

upstream images1 {

    server 192.168.1.50:8080;

    server 192.168.1.51:8080;      

}

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

1

2

3

4

upstream images2 {

    server 192.168.1.50:8080 weight=1;

    server 192.168.1.51:8080 weight=2;

}

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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;

    }

}


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 在centos服务器上部署nginx容器的方法
    1.下载nginx镜像 2.导入镜像 1 docker load -i nginx.tar 3. 查看导入的镜像 1 docker images 4. 运行镜像 1 docker run -d -p 80:80 --name my-nginx nginx 5. 访问Nginx 其
  • nginx中配置proxy_pass的方法
    nginx http 代理 通过proxy_set_header,返回客户端真实IP地址及端口,而不是代理主机ip 1 2 3 4 5 6 7 8 9 server { listen 80; location / { proxy_set_header Host
  • Nginx中add_header和proxy_set_header的区别及介绍

    Nginx中add_header和proxy_set_header的区别及介绍
    proxy_set_header和add_header的区别 proxy_set_header是nginx设置请求头给上游服务器,add_header是nginx设置响应头信息给浏览器。 1. proxy_set_header 1 2 3 4
  • windows查看nginx是否启动及常用命令小结介绍

    windows查看nginx是否启动及常用命令小结介绍
    1.nginx启动 1 start nginx 2.快速停止nginx 1 nginx -s stop 3.正常停止nginx 1 nginx -s quit 4.nginx重启 1 nginx.exe -s reopen 5.nginx重新加载配置文件 1 nginxexe -s
  • nginx proxy_set_header设置自定义header的实现步骤
    在Nginx中,使用proxy_set_header指令可以自定义header并在反向代理时传递到后端服务器。以下是如何使用proxy_set_header来设置自定义header的教程:
  • Ubuntu16.04上为Nginx创建自签名SSL证书
    简介 TLS,即传输层安全协议,及其前身SSL,即安全套接字层,是用于将普通流量包装在受保护的加密包装中的网络协议。 使用这项技术,服
  • nginx将https协议反向代理到http协议请求上

    nginx将https协议反向代理到http协议请求上
    1、问题背景 目前一个系统仅支持https协议访问,因后端服务基于ssl协议,前端在请求是也需要支持ssl协议的https请求来访问。目前的代理服
  • Nginx结合keepalived实现集群介绍

    Nginx结合keepalived实现集群介绍
    Nginx与keepalived实现集群实现的效果 两台服务器都安装Nginx与keepalived: master服务器的ip(192.168.200.2) backup服务器的ip(192.168.200.4) 将 master服务器
  • Nginx多虚拟主机配置介绍2

    Nginx多虚拟主机配置介绍2
    最近写公司项目,需要和前端小伙伴对接,但是有时候只是后端的一个bug,也不好意思一直让前端小伙伴帮忙起服务,所以想着直接拿测试
  • Nginx配置网页转发的实现介绍

    Nginx配置网页转发的实现介绍
    需求 将云服务器的80端口转发到另一台服务器部署的网页 1. 方式一 直接跳转到另一个网站 这种方式就是打开当前云服务器的公网ip绑定的域
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计