网站首页 > 博客文章 正文
什么是正向代理
正向代理是一个位于客户端和真实服务器之间的服务器,为了从真实服务器取得内容,客户端向代理服务器发送一个请求并指定真实服务器地址,然后代理向真实服务器转发请求并将获得的内容返回给客户端。
配置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;
}
}
}
- 上一篇: nginx实现内外网访问限制
- 下一篇: 技术大佬教你如何使用Nginx在公网上搭建加密数据通道?
猜你喜欢
- 2024-12-04 如何用nginx配置https加密访问?
- 2024-12-04 给Frp穿透的内网Web上https
- 2024-12-04 OAuth2.0认证Nginx反向代理解决方案
- 2024-12-04 k8s部署ingress-nginx以及配置http/https访问
- 2024-12-04 在windows上用Nginx做正向代理
- 2024-12-04 技术大佬教你如何使用Nginx在公网上搭建加密数据通道?
- 2024-12-04 nginx实现内外网访问限制
- 2024-12-04 Nginx代理上网,连接企业微信API,报错41004
- 2024-12-04 如何在nginx下配置ssl证书实现https访问,小白都会【超详细】
- 2024-12-04 NGINX 路由配置与参数详解(https配置、跨域配置、socket配置)
你 发表评论:
欢迎- 08-03 Docker 命令入门实战:搞懂这些才算真正入门!
- 08-03Docker 常用命令分类汇总
- 08-03docker常用命令大全,看这一篇就够了
- 08-03Docker命令大全详解(39个常用命令)
- 08-03Docker 常用命令手册
- 08-03Docker命令最全详解(39个最常用命令)
- 08-03Docker命令最全详解(29个最常用命令)
- 08-03C++语法进阶-字符:字符变量(char)
- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- vueproxytable (64)
- npminstallsave (63)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)