nginx做正向代理(Centos7,支持http和https)
默认的情况下,使用nginx做正向代理可以解析http请求,
对于诸如baidu.com这样的https请求,nginx默认并不支持,不过我们可以借助第三方模块来实现。
1、先说默认情况下的代理配置
配置方法如下:
#user nobody;
worker_processes ; #error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; events {
worker_connections ;
} http {
server {
resolver 192.168.31.1;
resolver_timeout 5s; listen ; access_log /nginx-1.10./logs/proxy.access.log;
error_log /nginx-1.10./logs/proxy.error.log; location / {
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host; proxy_buffers 4k;
proxy_max_temp_file_size ; proxy_connect_timeout ; proxy_cache_valid 10m;
proxy_cache_valid 1h;
proxy_cache_valid any 1m;
}
}
}
listen的就是监听的端口。
resolver就是一个dns地址,如果在家里用路由器上网,一般也可以配成你的路由器地址。
其它配置不改也行,这样配置后,对非https的访问没什么问题,不过这显然不够用,我们接着讲一下如何实现https的代理。
2、再说用nginx同时代理https和http
这里我们需要借助大神开发的【ngx_http_proxy_connect_module】
首先要确保你安装了patch,gcc、gcc++、pcre、zlib,这些都是我们用到的依赖软件或静态库
yum group install -y "Development Tools"
yum install -y patch pcre-devel pcre zlib-devel zlib
然后去github下载下来这个模块,就是直接去官网把整个目录下下来,解压放到你centos的某个目录下。
我这里留了个百度网盘的备份: 链接:https://pan.baidu.com/s/1eqcFW8tEE6SEg3b9OHyThA 密码:c8e2
再下载nginx、按照官网说明执行以下命令
$ wget http://nginx.org/download/nginx-1.9.2.tar.gz
$ tar -xzvf nginx-1.9..tar.gz
$ cd nginx-1.9./
$ patch -p1 < /path/to/ngx_http_proxy_connect_module/proxy_connect.patch
$ ./configure --add-module=/path/to/ngx_http_proxy_connect_module
$ make && make install
注意其中的【/path/to/ngx_http_proxy_connect_module】,指的就是你从github上,下载的这个模块的存放路径。
完成后,/usr/local/nginx就是编译后的nginx的路径。
然后编辑/usr/local/nginx/conf/nginx.conf(注意备份原文件),修改后内容如下:
worker_processes ; events {
worker_connections ;
} http { server {
resolver 192.168.31.1;
resolver_timeout 5s;
listen ;
proxy_connect;
proxy_connect_allow ;
proxy_connect_connect_timeout 10s;
proxy_connect_read_timeout 10s;
proxy_connect_send_timeout 10s; location / {
#proxy_pass $scheme://$host$request_uri;
#proxy_set_header Host $http_host; proxy_pass http://$host;
proxy_set_header Host $host; proxy_buffers 4k;
proxy_max_temp_file_size ; proxy_connect_timeout ; proxy_cache_valid 10m;
proxy_cache_valid 1h;
proxy_cache_valid any 1m;
} error_page /50x.html;
location = /50x.html {
root html;
} }
}
然后保存。
listen的就是监听的端口。
resolver就是一个dns地址,如果在家里用路由器上网,一般也可以配成你的路由器地址。
最后执行:
/usr/bin/local/nginx/sbin/nginx
找一台外网的机器,配置一下代理,百度上查看一下本机ip,如果成功的话,显示的就是代理服务器的外网IP了。
再附一篇介绍--CentOS如何通过代理上网:
http://www.cnblogs.com/flying607/p/8709640.html
nginx做正向代理(Centos7,支持http和https)的更多相关文章
- Nginx做正向代理并缓存文件
和前面一篇用Nginx做反向代理并缓存静态文件 差别仅在于这是内部机器用来通过Nginx上外网的方式. 其他配置差不多,仅在下面有点区别 server { listen 83; location / ...
- nginx做正向代理
#代理服务器设置 server { resolver 8.8.8.8; resolver 114.114.114.114; listen ; access_log /home/lin/proxy.ac ...
- nginx做正向代理搭建bugfree
下载地址: Nginx下载地址:http://download.csdn.net/detail/terrly88/9099117 bugfree下载地址:http://download.csdn.ne ...
- nginx做正向代理https遇到SSL_do_handshake()握手失败
SSL_do_handshake() failed (SSL: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number) wh ...
- nginx之正向代理
1.概述 nginx的正向代理,只能代理http.tcp等,不能代理https请求.有很多人不是很理解具体什么是nginx的正向代理.什么是反向代理.下面结合自己的使用做的一个简介: 1)正向代理: ...
- (大型网站之Nginx)图解正向代理、反向代理、透明代理
一.正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forward)是一个位于客户端[用户A]和原始服务器(o ...
- wsl 2 unbuntu 部署 asp.net core 使用 nginx 做反向代理,调试文件上传失败
继上一篇 asp.net core 3.1多种身份验证方案,cookie和jwt混合认证授权 的公司内部项目上线后发现文件上传功能有问题. 上传的文件超过50M以后前端就报错了,没有状态返回,也没有响 ...
- nginx做反向代理并防盗链
nginx做反向代理真的非常简单,只需设置location+proxy_pass即可. 防盗链配置有些复杂,需要注意的地方: 在防盗链的location中需要再设置一下proxy_pass(在这里走了 ...
- 用nginx做反向代理来访问防外链图片
用nginx做反向代理来访问防外链图片 女儿的博客从新浪搬到wordpress后,发现原来博客上链接的新浪相册的图片都不能访问了,一年的博客内容,一个个去重新上传图片,修正链接也是个大工程.还是得先想 ...
随机推荐
- 在intellij idea 中进行android 单元测试
本次用来测试的代码是sqlite进行数据操作. ######右键选择要进行单元测试的应用 #############弹出选择框,选择Android>Test Module>Next ### ...
- 1.2(JavaScript学习笔记)JavaScript HTML DOM
一.DOM DOM全称为document object model(文档对象模型). 此处的文档指当前HTML文档,对象指HTML标签. 当网页被加载时,浏览器会创建页面的文档对象模型. 下面结合具体 ...
- C#中的Stack
Stack(栈) 是一种先进后出的对象集合,它是一个泛型,所表示的类型可以为int,string这样的常见类型,也可以为用户自定义类型. 属性 描述 Count 获取 Stack 中包含的元素个数. ...
- iptables最常用的规则示例
iptables v1.4.21 iptables基础 规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”.规则存储在内核空间的信息 ...
- GridControl事件
private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventA ...
- es6,async简单总结
1.简单来讲就是把函数变为异步操作的 async function demo() { let result = Math.random(); console.log(result); } 2.asyn ...
- shell 脚本中执行mysql语句
通过hash建表之后,表的数据量巨大2048,那怎么去验证表是否建成功呢? 逻辑生成表名这部分就不写了.只要能建表成功,这部分的脚本肯定是有的.那么怎么在shell中执行selec查询并返回呢 只要在 ...
- [转]SSIS: By coding
本文转自:http://www.codeproject.com/Articles/604197/SSIS-By-coding Introduction SSIS better known as “SQ ...
- iOS:导航条滚动透明度随着tableView的滚动而变化
来源:HelloYeah 链接:http://www.jianshu.com/p/b8b70afeda81 下面这个界面有没有觉得很眼熟.打开你手里的App仔细观察,你会发现很多都有实现这个功能.比如 ...
- Docker创建centos的LNMP镜像
前段时间重装了系统,今天刚好有时间,就用docker安装一个lnmp开发环境,下面是我的安装笔记. 1. 安装docker 这个就不说了,不会的可以看下我之前的文章<Docker介绍及安装> ...