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后,发现原来博客上链接的新浪相册的图片都不能访问了,一年的博客内容,一个个去重新上传图片,修正链接也是个大工程.还是得先想 ...
随机推荐
- 关于 CommonJS AMD CMD UMD
1. CommonJS CommonJS 原来叫 ServerJS, 是服务器端模块的规范,Node.js采用了这个规范. 根据CommonJS规范,一个单独的文件就是一个模块.加载模块使用requi ...
- Codeforces Round #450 (Div. 2) ABCD
这次还是能看的0 0,没出现一题掉分情况. QAQ前两次掉分还被hack了0 0,两行清泪. A. Find Extra One You have n distinct points on a p ...
- BZOJ 1532 [POI2005]Kos-Dicing(二分+最大流判断)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1532 [题目大意] n个人,给出m场比赛,求出胜出的人最少赢的场次. [题解] 我们发 ...
- 【计算几何】【二分】【随机增量法】hdu6167 Missile Interception
n个半径为R的圆是否有公共部分,等价于询问是否存在一个半径小于R的圆,能覆盖所有n个圆的圆心. 对这n个点求最小圆覆盖即可.从网上扒了个随机增量法的代码. 这样算上二分,复杂度就是nlogn了. #i ...
- bzoj 3373: [Usaco2004 Mar]Lying Livestock 说谎的牲畜
3373: [Usaco2004 Mar]Lying Livestock 说谎的牲畜 Description 兽群中总是有一些麻烦制造者.约翰知道他的N(1≤N≤100)头奶牛中有一头总是说谎,其他的 ...
- python基础之面向过程编程,模块
面向过程编程 面向过程的核心是过程,指的是解决问题的步骤,即先干什么再干什么,就好像设计一条流水线. 优点:复杂的问题流程化,进而简单化 缺点:可扩展性差,修改流水线的任意一个阶段,都会牵一发而动全身 ...
- 大于非负整数N的第一个回文数 Symmetric Number
1.题目 如标题,求大于整数N(N>=0)的第一个回文数的字符串表示形式. 2.样例 1 --> 2 9 -->11 12345 -->12421 123456 --> ...
- 利用cURL请外部接口
昨天有一个需求,就是需要把获取到的百度地图信息存储到百度地图LBS云储存上 看了一下LBS云储存,说白了就是通过接口操作云数据库,所以写了一个通用的cURL函数 代码如下: /** * @param ...
- Red Hat Enterprise Linux上配置SQL Server Always On Availability Group
http://www.cnblogs.com/lavender000/p/6946848.html
- (转)DLL中导出函数的两种方式(dllexport与.def文件)
DLL中导出函数的两种方式(dllexport与.def文件)http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/04/1792 ...