Nginx工作模式及代理配置的使用细节

Nginx是一个轻量级的Web服务器,其强大的代理和负载平衡功能已经在很多网站和企业中使用。本攻略将详细讲解Nginx的工作模式及代理配置的使用细节,包括常见的两种代理模式、反向代理配置、负载平衡配置等。

Nginx的工作模式

Nginx的工作模式主要有两种:master进程模式和worker进程模式。其中,master进程用来控制worker进程的启动、停止、重新加载配置文件等工作。worker进程则用来处理请求。在一个Nginx实例中,通常会有多个worker进程,以便更好地分担请求的压力和加快响应速度。

Nginx的代理模式

Nginx的代理模式包括正向代理和反向代理两种。

正向代理模式

正向代理模式一般用于内部网络对外部网络的访问,常见的应用场景包括翻墙、网络加速等。在正向代理模式中,客户端发起请求时,请求先发送到代理服务器上,然后由代理服务器转发请求到目标服务器上,并将目标服务器的响应返回给客户端。

正向代理配置示例:

http {
    upstream backend {
        server backend1.example.com:8080;
        server backend2.example.com:8080;
    }

    server {
        listen 80;
        server_name proxy.example.com;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

反向代理模式

反向代理模式一般用于公网对内部网络的访问,常见的应用场景包括网站、应用服务器等。在反向代理模式中,客户端发送请求到代理服务器上,代理服务器根据配置,将请求转发到不同的后端服务器上,然后将后端服务器的响应返回给客户端。

反向代理配置示例:

http {
    upstream backend {
        server backend1.example.com:8080;
        server backend2.example.com:8080;
    }

    server {
        listen 80;
        server_name www.example.com;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

Nginx的负载平衡

负载平衡是Nginx的另外一个非常重要的功能。Nginx可以通过不同的算法来分配请求到不同的后端服务器上,从而加速响应速度和提高系统的可用性。Nginx支持的负载平衡算法包括轮询、IP哈希、Least Connections等。

负载平衡配置示例:

http {
    upstream backend {
        server backend1.example.com:8080;
        server backend2.example.com:8080;
        server backend3.example.com:8080;
    }

    server {
        listen 80;
        server_name www.example.com;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            # 负载平衡算法为轮询
            # 关闭后端服务器的健康检查
            # 最大失败次数为3次,失败后3分钟内暂停
            # 失败后会记录日志
            proxy_next_upstream error timeout invalid_header http_502 http_503 http_504;
            proxy_connect_timeout 60s;
            proxy_read_timeout 60s;
            proxy_send_timeout 60s;
            proxy_pass_request_headers on;
            proxy_set_header Connection "";
        }
    }
}

以上就是Nginx工作模式及代理配置的使用细节。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx工作模式及代理配置的使用细节 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • nginx-location

    参考来源: http://blog.zol.com.cn/1067/article_1066186.html,http://flandycheng.blog.51cto.com/855176/280121 语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 …

    Nginx 2023年4月13日
    00
  • nginx配置负载

    1、修改/etc/sysctl.conf,优化tcp连接数 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net…

    2023年4月10日
    00
  • Nginx配置指令的执行顺序

    Nginx指令顺序:set与echo location /test { set $a 32; echo $a; set $a 56; echo $a; } # set 指令就是在 rewrite 阶段运行的,而 echo 指令就只会在 content 阶段运行 # rewrite 阶段总是在 content 阶段之前执行 #结果server-rewrite …

    Nginx 2023年4月12日
    00
  • nginx反向代理后abp的webapi host如何获取客户端ip?

    dotnet core 跨平台是微软伟大的创举,脱离iis后服务器成本都降低了。 问题 这不,采用abp搞了个小项目,部署到centos后发现审计日志里面的ip信息不对。 解决 这个问题在.net 4.5下处理过,记得当时是继承 WebClientInfoProvider重写GetClientIpAddress。将代码拿来后发现dotnet core下报错。…

    Nginx 2023年4月16日
    00
  • Nginx1.8.0版本平滑升级新版本1.9.7

    以下是关于“Nginx1.8.0版本平滑升级新版本1.9.7”的完整攻略: 简介 Nginx是一款高性能的Web服务器和反向代理服务器,常用于网站、网络应用平台和移动应用平台等。由于其极佳的负载均衡、缓存、反向代理等功能,越来越受到开发者的青睐。 在Nginx 1.8.0版本之后,增加了一些新功能和修复了一些Bug。但是,如果你想升级到更新版本(如1.9.7…

    Nginx 2023年5月16日
    00
  • Nginx + Keeplived双主测试

    Author: JinDate: 20130613Title: Nginx + Keeplived 双主测试 前言:一年多前做过一次测试,时间久了忘记了,现在又重新做一次 一、环境1、基本信息和规划pxe-svr.skylog.cn CentOS release 6.2 (Final)eth0 192.168.78.250vip 192.168.78.215…

    Nginx 2023年4月12日
    00
  • Nginx配置文件详细说明

     记录备忘: nginx:./nginx -t 检查语法./nginx -s reload 重新加载配置./nginx -s stop fastcgi_param 加上: fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name; nginx.conf加上: include si…

    Nginx 2023年4月10日
    00
  • centos 7.0 安装nginx 1.9.10

    可以参考以前安装成功的案例 centos 7.0 nginx 1.7.9成功安装过程 官网下载 http://nginx.org/en/download.html nginx下载位置 /usr/local/ nginx 安装目录 /usr/etc/nginx1910 nginx path prefix: “/usr/etc/nginx1910” nginx …

    Nginx 2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部