nginx正向代理的配置及实现

Nginx 正向代理

正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

目前现状:只有1个机器能上网(web),其他机器不能 
方法:能上网的做一个代理web服务器中转,其他机器连接它即可。采用nginx 

1.到nginx的官网中(http://nginx.org/en/download.html),下载Linux版本的安装包,我下载的版本为

2.源码安装(***)

a) tar -zxvf nginx-1.4.7.tar.gz   解压缩

b) Cd nginx-1.4.7

c) 该文件夹中有一个configure文件

d) ./configure    该命令的作用是安装之前做检测

e) Yum install gcc* -y 下载gcc,之后还可能有一些安装包要下

f) ./configure之后,输入make命令

g) 然后输入make install 命令,安装成功

h) 安装路径为  /usr/local/nginx

i) Cd /usr/local/nginx

j) vim /usr/local/nginx中的config文件夹中的nginx.conf

Nginx配置如下: 
server {

resolver 8.8.8.8;

resolver_timeout 5s;

listen 0.0.0.0:80;

access_log  /home/reistlin/logs/proxy.access.log;

error_log   /home/reistlin/logs/proxy.error.log;

location / {

proxy_pass $scheme://$host$request_uri;

proxy_set_header Host $http_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;

}

}

二,Nginx 正向代理配置说明:

1,配置 DNS 解析 IP 地址,比如 Google Public DNS,以及超时时间(5秒)。

resolver 8.8.8.8;

resolver_timeout 5s;

2,配置正向代理参数,均是由 Nginx 变量组成。其中 proxy_set_header 部分的配置,是为了解决如果 URL 中带 "."(点)后 Nginx 503 错误。

proxy_pass $scheme://$host$request_uri;

proxy_set_header Host $http_host;

3,配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间。

proxy_buffers 256 4k;

proxy_max_temp_file_size 0;

proxy_connect_timeout 30;

4,配置代理服务器 Http 状态缓存时间。

proxy_cache_valid 200 302 10m;

proxy_cache_valid 301 1h;

proxy_cache_valid any 1m;

三,不支持代理 Https 网站

因为 Nginx 不支持 CONNECT,所以无法正向代理 Https 网站(网上银行,Gmail)。
如果访问 Https 网站,比如:https://www.google.com,Nginx access.log 日志如下:

"CONNECT www.google.com:443 HTTP/1.1" 400

配置完nginx之后,切换到/usr/local/nginx/sbin目录中,输入./nginx 启动nginx服务

如果出现80端口被占用,

Lsof -i :80 查看80端口的pid进程号,然后用Kill -9 +进程号,删除进程,再重启服务

查看dns方法 
cat /etc/resolv.conf

代理使用

在需要访问外网的机器上(Linux系统)执行以下操作之一即可: 
1. export http_proxy=http://yourproxyaddress:proxyport 
2. gedit ~/.bashrc  
    export http_proxy=http://yourproxyaddress:proxyport 
yourproxyaddress也就是你的Nginx服务器的ip了,proxyport就是上面配置中的80,可以根据自己的需要修改。

时间: 2024-11-07 22:25:27

nginx正向代理的配置及实现的相关文章

Nginx 正向代理配置

Nginx 正向代理配置 作用:客户端通过Nginx代理服务器来进行访问. 案例 客户端添加代理:IP:8080 server { # 端口 listen 8080; # 地址 server_name localhost; # DNS解析地址 resolver 8.8.8.8; # 代理参数 location / { # $http_host就是我们要访问的主机名 # $request_uri就是我们后面所加的参数 proxy_pass http://$http_host$request_uri

nginx正向代理SFTP整体配置方案

一.概述目前由于行内网络规划以及安全的原因,不能直接从应用区域直接访问第三方SFTP文件服务器,只能允许代理服务器网络区域出去,也就是SFTP正向代理转发到第三方的SFTP文件服务器,而我们使用的代理应用软件则是开源的nginx.以前搞过正向代理HTTP,而没有尝试过正向代理SFTP,其实也就是TCP协议.为了满足应用需求,我们需要搭建nginx正向代理SFTP服务应用. nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发.代理或者负载均衡等.这完全就是抢HApro

nginx正向代理实现受限网站的访问

项目背景:公司商务同事需要操作合作方的后台,但是这个后台做了限制(安全考虑只对指定IP放行),刚好公司是adsl拨号,经常更换IP 需求:让商务同事不要经常给IP到合作方去添加白名单 于是想到了做正向代理代理的方法,关于正向代理和反向代理的区别后面有说明,该场景适合用正向代理 具体操作:两种方案:方案1将一台固定外网ip的windows系统添加到客户网站白名单,开通一个远程账号给商务同事,让他通过远程桌面操作合作方的后台 方案2:将我们的一台linux服务器做成代理服务器IP添加到合作方的白名单

nginx正向代理,反向代理,透明代理(总结)

1正向代理 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容 代理服务器去取回来,然后返回给我 从网站的角度,只在代理服务器来取内容的时候有一次记录 有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站 结论就是 正向代理 是一个位于客户端和原始服务器(origin server)之间的服务

Linux服务器通过Nginx正向代理上网

(一)简述nginx不仅可以做反向代理,还能用作正向代理来进行上网等功能.正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理(也就是大家常说的,通过正向代理进行上网功能) (二)nginx正向代理的功能1.由于nginx正向代理的功能指令较少,只需要进行简单的配置即可 server { resolver 114.114.114.114; #指定DNS服务器IP地址 listen 808

Nginx反向代理的配置

Chapter: Nginx基本操作释疑 1. Nginx的端口修改问题 2. Nginx 301重定向的配置 3. Windows下配置Nginx使之支持PHP 4. Linux下配置Nginx使之支持PHP 5. 以源码编译的方式安装PHP与php-fpm 6. Nginx多站点配置的一次实践 7. Nginx反向代理的配置 Nginx 作为 web 服务器一个重要的功能就是反向代理.其实我们在前面的一篇文章<Nginx多站点配置的一次实践>里,用的就是 Nginx 的反向代理,这里简单再

CentOS 7 配置 Nginx 正向代理 http、https 最详解

手头项目中有使用到 nginx,因为使用的三方云服务器,想上外网需要购买外网IP的,可是有些需要用到外网却不常用的主机也挂个外网IP有点浪费了,便想使用nginx的反向代理来实现多台内网服务器使用一台代理服务器进行外网访问. 查了很多资料,分享这个功能的人很多(都是好人啊),参考着实现还是费了大半天功夫才搞定,总结了一下,让后来的人少走一些弯路. 我有两台云服务器:172.25.114.72 是有外网的服务器,在这台上面安装 nginx172.25.114.71 是没有外网的服务器,这台服务器通

nginx正向代理http(一)

nginx实现正向代理,下面以http为例说明: (1)nginx配置: server { listen 8080; resolver 114.114.114.114; access_log logs/http.access.log main; location / { proxy_pass http://$http_host$request_uri; root html; index index.html index.htm; proxy_set_header HOST $http_host;

nginx正向代理

我们平时用的最多的最常见的是反向代理.反向代理想必都会配置的,有不会的可以到本博客里面搜索下,有相关文档. 那么nginx的正向代理是如何配置的呢? 1 2 3 4 5 6 7 8 9 server { listen 8090; location / { resolver 218.85.157.99 218.85.152.99; resolver_timeout 30s; proxy_pass http://$host$request_uri; } access_log  /data/httpl