Nginx的应用场景

  1. http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

  2. 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

  3. 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

什么是代理

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

正向代理

所谓正向代理就是内网服务器主动要去请求外网的地址或服务,所进行的一种行为。内网服务---访问--->外网

反向代理

所谓反向代理就是外网要访问内网服务而进行的一种行为。 外网----请求--->内网服务

安装nginx

安装nginx第三方模块

这里我们需要借助大神开发的【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/1m27jg9E71kpx_zHqmTK9kQ  密码: ccj8

再下载nginx、按照官网说明执行以下命令

$ wget http://nginx.org/download/nginx-1.16.1.tar.gz
$ tar zxvf nginx-1.16.1.tar.gz
$ cd nginx-1.16.1/#下面这一步
$ patch -p1 < ../ngx_http_proxy_connect_module-0.0.1/patch/proxy_connect_rewrite_101504.patch
$ ./configure --prefix=/etc/nginx --user=www --group=www --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --modules-path=/usr/share/nginx/modules --error-log-path=/data/logs/nginx/error.log --http-log-path=/data/logs/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --http-client-body-temp-path=/var/cache/nginx/client_body_temp/ --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp/ --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp/ --http-scgi-temp-path=/var/cache/nginx/scgi_temp/ --http-proxy-temp-path=/var/cache/nginx/proxy_temp/ --with-compat --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_sub_module --with-http_random_index_module --with-http_slice_module --with-http_degradation_module --with-http_stub_status_module --with-http_addition_module --with-http_auth_request_module --with-http_secure_link_module --with-stream --with-stream_realip_module --with-stream_ssl_preread_module --with-mail --with-mail_ssl_module --with-pcre --with-pcre-jit --add-module=../ngx_http_proxy_connect_module-0.0.1
$ make && make install
  • 【../ngx_http_proxy_connect_module-0.0.1/patch/proxy_connect_rewrite_101504.patch】,指的就是你从github上下载的这个模块的存放路径。

  • 选择正确的补丁进行构建:
nginx version enable REWRITE phase patch
1.4.x ~ 1.12.x NO proxy_connect.patch
1.4.x ~ 1.12.x YES proxy_connect_rewrite.patch
1.13.x ~ 1.14.x NO proxy_connect_1014.patch
1.13.x ~ 1.14.x YES proxy_connect_rewrite_1014.patch
1.15.2 YES proxy_connect_rewrite_1015.patch
1.15.4 ~ 1.16.x YES proxy_connect_rewrite_101504.patch
1.17.x ~ 1.18.0 YES proxy_connect_rewrite_1018.patch
OpenResty version enable REWRITE phase patch
1.13.6 NO proxy_connect_1014.patch
1.13.6 YES proxy_connect_rewrite_1014.patch
1.15.8 YES proxy_connect_rewrite_101504.patch
1.17.8 YES proxy_connect_rewrite_1018.patch

Server端 - 配置正向代理

  • 设置http代理

server {# 配置DNS解析IP地址,比如 Google Public DNS,以及超时时间(5秒)resolver 8.8.8.8;    # 必需resolver_timeout 5s;# 监听端口listen 8080;access_log  /home/reistlin/logs/proxy.access.log;error_log   /home/reistlin/logs/proxy.error.log;location / {# 配置正向代理参数proxy_pass $scheme://$host$request_uri;# 解决如果URL中带"."后Nginx 503错误proxy_set_header Host $http_host;# 配置缓存大小proxy_buffers 256 4k;# 关闭磁盘缓存读写减少I/Oproxy_max_temp_file_size 0;# 代理连接超时时间proxy_connect_timeout 30;# 配置代理服务器HTTP状态缓存时间proxy_cache_valid 200 302 10m;proxy_cache_valid 301 1h;proxy_cache_valid any 1m;}}
  • 设置https代理

默认的情况下,使用nginx做正向代理可以解析http请求,

对于诸如baidu.com这样的https请求,nginx默认并不支持,不过我们可以借助第三方模块来实现。

server {resolver  114.114.114.114;resolver_timeout 5s;listen       8889;proxy_connect;proxy_connect_allow            443 563;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 256 4k;proxy_max_temp_file_size 0;proxy_connect_timeout 30;proxy_cache_valid 200 302 10m;proxy_cache_valid 301 1h;proxy_cache_valid any 1m;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}

测试配置正确性

nginx -t

重启nginx并生效配置

nginx -s reload

Client端 - 配置代理上网

Centos7网络代理配置

一、设置http代理

修改配置

修改/etc/profile,增加以下内容:

http_proxy=http://[代理地址]:[代理地址的端口]/
https_proxy=http://[代理地址]:[代理地址的端口]/
export http_proxy https_proxy

永久生效代理

vim .bashrc
export http_proxy=http://192.168.1.9:8080
source  .bashrc

马上生效

source /etc/profile

取消代理

unset http_proxy

二、yum代理设置

1.打开yum.conf文件
vi /etc/yum.conf
2.添加Proxy代理信息
proxy = http://username:password@proxy_ip:port/

三、wget代理设置

1.打开/wgetrc文件
vi /etc/wgetrc
2.修改Proxy代理信息
http_proxy=http://username:password@proxy_ip:port/
ftp_proxy=http://username:password@proxy_ip:port/

linux下如出现 Received HTTP code 407 from proxy after CONNECT 这种错误提示,请去掉代理的密码

参考资料

-centos使用nginx反向代理实现负载均衡
-CentOS7 通过代理上网
-nginx做正向代理(Centos7,支持http和https)

Nginx正向代理与Client设置代理上网相关推荐

  1. C# 使用GET和POST(v1签名方式)以及SDK的方式调用腾讯云人像动漫化接口,包含设置代理

    声明:此内容仅供学习交流使用,不用于商业用途,如果涉及侵权,联系作者删除. 最近在调用腾讯云的人像动漫化接口,感觉挺好玩的,自己去看文档写了一下,遇到了各种问题,最后都解决了 ,遇到最多的就是签名错误 ...

  2. XShell设置代理

    关键字:xshell代理:xshell设置代理 客户节点Client可以连接中间节点middle,中间节点middle能够连接很多其它服务节点,如A1,A2.但是客户节点Client和服务节点A,B, ...

  3. IE浏览器如何设置代理ip教程

    很多人可能不知道代理ip的作用.如果在浏览器上设置代理ip,上网速度就会比较快.win7系统怎么设置代理ip?下面我们就来看一下win7设置代理ip的教程. 这里开心代理再说一下设置代理ip的好处,就 ...

  4. linux下设置代理

    由于我们实验室有自己的代理.所以想用代理,省些money.于是就开始学习怎么设置代理. 先是在网上搜了好些方法.但是怎么都成功不了.最后成功了以后,才发现,原来是网上提供的命令行的大小写有误,而且还少 ...

  5. python设置电脑ip代理_设置代理IP在Python中使用

    在Pyhton中要怎么使用代理IP?我们经常说代理IP能够让Python更好的发挥爬虫效果,首先我们要懂得如何在python语言中设置代理IP来利用. 1.urllib模块设置代理 如果我们频繁用一个 ...

  6. win10设置代理无法保存的情况

    如果你是win10系统的电脑且系统更新到比较新的状态,那么可能会面临着无法设置代理的情况,不论是"自动设置代理"还是"手动设置代理"都失败,点击"保存 ...

  7. python爬虫设置代理ip池

    在使用python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,那如何解决呢?使用代 ...

  8. [503]安卓模拟器怎么设置代理

    app开发测试的同学为了调试方便,通常会在电脑上装一些android模拟器,开多台进行测试.调试中通常要干的一件事就是抓取,那么想要抓包,我们必须要设置代理. 模拟器设置代理的方法: 点击设置,然后进 ...

  9. python爬虫设置代理ip池——方法(一)

    """ 在使用python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网 ...

最新文章

  1. 微软发布Azure Application Insights for Node.js 1.0版本
  2. 蓝桥备赛第四周 同余+并查集
  3. python 列表加入_加入python中的列表列表
  4. Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上
  5. 【matlab】画图的文字调整大小
  6. Backbone的RESTFUL API 解释
  7. cad细等线体不显示_CAD技法大全,如何在CAD中解决好部分图元无法正常显示的问题 ?...
  8. RMAN Crosscheck 和 Delete 命令的2个实例
  9. c语言如何框出视频或图像中的车辆,视频图像中的车辆检测跟踪和分类
  10. 尚学堂马士兵hibernate讲义
  11. 软件是怎么开发出来的?怎么进行软件开发流程
  12. 常用LDO低压差线性稳压芯片封装型号以及基本电路
  13. 浅谈如何保障服务器安全
  14. 微信小程序 实现带刻尺度滑块
  15. mybatis-plus le ge 记录
  16. 010 极限的四则运算例题
  17. UEFI启动模式下, 双硬盘安装UBuntu16.04与Win10双系统
  18. 隐藏与显示桌面上的单个图标
  19. #BDA#笔记#业务知识:常见行业业务模式指标5内容行业
  20. Spring Cloud Alibaba 笔记

热门文章

  1. 电子显微镜数据格式MRC
  2. C++OpenCV系统学习(17)——图像分割与抠图(6)——视频背景替换
  3. amoled led 排列_AMOLED-显示原理详解.pdf
  4. @Param注解的使用和解析
  5. PMP需要提供什么资料来证明自己的项目管理经验
  6. Markdown 入门及语法详细指南 ★
  7. tkinter窗口美化功能介绍 第二章 怎么做圆角窗口
  8. 【密集人群检测】Detection in Crowded Scenes: One Proposal, Multiple Predictions例程实现
  9. three.js glb 多个_与林肯冒险家相比 奔驰GLB差的不仅是个四驱而已|冒险家|奔驰-石家庄新闻网...
  10. 最新最全的免费股票数据接口--沪深A股基础列表数据API接口(三)