当前位置:首页 > 技术文章 > 正文内容

nginx正向代理配置(nginx正反向代理配置)

arlanguage3个月前 (01-31)技术文章24

什么是正向代理

正向代理是一个位于客户端和真实服务器之间的服务器,为了从真实服务器取得内容,客户端向代理服务器发送一个请求并指定真实服务器地址,然后代理向真实服务器转发请求并将获得的内容返回给客户端。

配置nginx正向代理http请求

如果只代理http请求,可以像下面这样配置:

http{
    server {
       listen 8080;
       resolver 8.8.8.8;
       location / {
           proxy_pass http://$host;
           proxy_set_header Host $host;
       }
   }
}

resolver是必须配置的,用来解析真实服务器的地址,它可以解析ipv4与ipv6地址,如果只想解析ipv4地址可以这样配置resolver:

resolver 8.8.8.8 ipv6=off;

配置nginx正向代理https请求

nginx默认是不支持正向代理https请求的,如果要让它代理https请求,则需要安装支持proxy_connect指令的扩展。

扩展的安装有两种方式,一种是编译进nginx程序本身,另一种是动态加载。第一种需要编译时确定,第二种可以后期动态加载进来。

加载动态扩展时nginx默认会检测兼容性,如果不兼容则不会加载,所以我们编译动态扩展时需要加兼容选项,比如下面配置:

./configure --with-compat --add-dynamic-module=/path/to/module

由于我们这里安装扩展时对代码进行了打补丁操作,即使用动态加载的方式也需要用编译后的nginx程序,所以我们用编译进nginx程序本身的方式添加扩展。

添加扩展方式可以参考官网地址:
https://github.com/chobits/ngx_http_proxy_connect_module

最后的配置如下:

http{
    server {
       listen 8080;
       resolver 8.8.8.8 ipv6=off;
       proxy_connect;
       proxy_connect_allow all;
       proxy_connect_connect_timeout 30s;
       proxy_connect_read_timeout 30s;
       proxy_connect_send_timeout 30s;
       location / {
           proxy_pass http://$host;
           proxy_set_header Host $host;
       }
   }
}

如果想对CONNECT请求使用https,可以这样配置:

http{
    server {
       listen 8080 ssl;
       resolver 8.8.8.8 ipv6=off;
       ssl_certificate /etc/pki/nginx/server.crt;
       ssl_certificate_key /etc/pki/nginx/server.key;
       ssl_session_cache shared:SSL:1m;
       proxy_connect;
       proxy_connect_allow all;
       proxy_connect_connect_timeout 30s;
       proxy_connect_read_timeout 30s;
       proxy_connect_send_timeout 30s;
       location / {
           proxy_pass http://$host;
           proxy_set_header Host $host;
       }
   }
}

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/1235.html

分享给朋友:

“nginx正向代理配置(nginx正反向代理配置)” 的相关文章

从入门到精通nginx——Nginx命令

Nginx命令查看命令选项:nginx -h启动命令:nginx -c file停止命令:nginx -s stop/quit平滑重启命令:nginx -s reload测试配置文件命令:nginx -tq??nginx -t:测试配置文件是否正确,默认只测试默认的配置文件conf/nginx.co...

Nginx常用配置与命令 nginx命令详解

Nginx特点高并发、高性能;模块化架构使得它的扩展性非常好;异步非阻塞的事件驱动模型这点和 Node.js 相似;相对于其它服务器来说它可以连续几个月甚至更长而不需要重启服务器使得它具有高可靠性;热部署、平滑升级;完全开源,生态繁荣;Nginx作用Nginx 的最重要的几个使用场景:静态资源服务,...

Nginx 支持 JavaScript 了 nginx支持php吗

简介Nginx 作为一款高性能的 Web 服务器,其功能可以通过多种模块进行扩展。其中,NJS 模块为 Nginx 提供了强大的 JavaScript 处理能力,使得开发者可以在服务器端使用 JavaScript 进行复杂的逻辑处理。本文将详细介绍如何在 Nginx 中安装和使用 NJS,并通过具体...

PHP nginx配置 配置nginx支持php

在配置 PHP 和 nginx 以运行 PHP 应用程序时,您需要进行以下步骤:安装 nginx 和 PHP:如果您的系统上尚未安装 nginx 和 PHP,请根据您的操作系统的说明来安装它们。配置 nginx:您需要为 PHP 应用程序创建 nginx 服务器配置。您可以使用以下代码作为模板:ph...

Nginx 在微服务中的应用(9)

在微服务架构中,Nginx 通常作为反向代理服务器、负载均衡器和 API 网关,承担着多个关键角色。它可以帮助管理微服务之间的流量,确保请求的高效路由、负载均衡、流量控制、安全防护等。Nginx 由于其高性能、轻量级和配置灵活性,成为微服务架构中非常常见的组件。以下是 Nginx 在微服务中的几种主...

Nginx热升级流程,看这篇就够了

在之前做过 Nginx 热升级的演示,他能保证nginx在不停止服务的情况下更换他的 binary 文件,这个功能非常有用,但我们在执行 Nginx 的 binary 文件升级过程中,还是会遇到很多问题,比如老的 worker 进程一直退不掉或者新的 worker 进程升级以后出现问题需要考虑回滚,...