默认的情况下,使用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)的更多相关文章

  1. Nginx做正向代理并缓存文件

    和前面一篇用Nginx做反向代理并缓存静态文件 差别仅在于这是内部机器用来通过Nginx上外网的方式. 其他配置差不多,仅在下面有点区别 server { listen 83; location / ...

  2. nginx做正向代理

    #代理服务器设置 server { resolver 8.8.8.8; resolver 114.114.114.114; listen ; access_log /home/lin/proxy.ac ...

  3. nginx做正向代理搭建bugfree

    下载地址: Nginx下载地址:http://download.csdn.net/detail/terrly88/9099117 bugfree下载地址:http://download.csdn.ne ...

  4. nginx做正向代理https遇到SSL_do_handshake()握手失败

    SSL_do_handshake() failed (SSL: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number) wh ...

  5. nginx之正向代理

    1.概述 nginx的正向代理,只能代理http.tcp等,不能代理https请求.有很多人不是很理解具体什么是nginx的正向代理.什么是反向代理.下面结合自己的使用做的一个简介: 1)正向代理: ...

  6. (大型网站之Nginx)图解正向代理、反向代理、透明代理

    一.正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forward)是一个位于客户端[用户A]和原始服务器(o ...

  7. wsl 2 unbuntu 部署 asp.net core 使用 nginx 做反向代理,调试文件上传失败

    继上一篇 asp.net core 3.1多种身份验证方案,cookie和jwt混合认证授权 的公司内部项目上线后发现文件上传功能有问题. 上传的文件超过50M以后前端就报错了,没有状态返回,也没有响 ...

  8. nginx做反向代理并防盗链

    nginx做反向代理真的非常简单,只需设置location+proxy_pass即可. 防盗链配置有些复杂,需要注意的地方: 在防盗链的location中需要再设置一下proxy_pass(在这里走了 ...

  9. 用nginx做反向代理来访问防外链图片

    用nginx做反向代理来访问防外链图片 女儿的博客从新浪搬到wordpress后,发现原来博客上链接的新浪相册的图片都不能访问了,一年的博客内容,一个个去重新上传图片,修正链接也是个大工程.还是得先想 ...

随机推荐

  1. HashMap的实现原理 HashMap底层实现,hashCode如何对应bucket?

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 数组和链表组合成的链表散列结构,通过hash算法,尽量将数组中的数据分布均匀,如果has ...

  2. BZOJ 4653 [Noi2016]区间(Two pointers+线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4653 [题目大意] 在数轴上有n个闭区间 [l1,r1],[l2,r2],...,[l ...

  3. 检测是否为n的因子 Exercise07_06

    /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:检测是否为n的因子 * */ public class Exercise07_06 { public static void ...

  4. [转]JSP中常见的Tomcat报错错误解析(一)

    1**:请求收到,继续处理2**:操作成功收到,分析.接受3**:完成此请求必须进一步处理4**:请求包含一个错误语法或不能完成5**:服务器执行一个完全有效请求失败 100——客户必须继续发出请求1 ...

  5. 5 Best Gantt Chart JIRA Plugins

    Andrew Stepanov/June 23, 2017/6 minutes Software developers enjoy using JIRA software for their proj ...

  6. (救星啊)im-switch -s ibus错误:Error: no configuration file "ibus" exists.

    转自:http://www.cnblogs.com/csulennon/p/4194902.html 在虚拟机上安装Ubuntu14.04 后安装ibus输入法,万万没想到在切换输入法的时候居然出错了 ...

  7. Android ANR优化 1

    1, 你碰到ANR了吗 在App使用过程中, 你可能遇到过这样的情况: ANR 恭喜你, 这就是传说中的ANR. 1.1 何为ANR ANR全名Application Not Responding, ...

  8. JSON相关

  9. 1:MUI选择器组件抛出“n.getSelectedItem is not a function”异常的解决办法 2:mui三级联动 3:移动端关闭虚拟键盘

    1:如下图 问题:引用了mui的地址选择的三级联动的应用在h5上的组件 百度发现别人思路对 Array 原型链方法扩充时,会抛出这个异常. 修改方法: mui.poppicker.js 第 112 行 ...

  10. 阿里云NAS使用方法

    1.创建文件系统 #在创建文件系统页面,填写各项参数.根据项目需求选择存储类型 2.添加挂载点 文件系统实例创建完成后,您需要为文件系统添加挂载点,用于计算节点(ECS 实例.E-HPC 或容器服务) ...