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

(一)简述
nginx不仅可以做反向代理,还能用作正向代理来进行上网等功能。正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理(也就是大家常说的,通过正向代理进行上网功能)

(二)nginx正向代理的功能
1.由于nginx正向代理的功能指令较少,只需要进行简单的配置即可

server {
    resolver 114.114.114.114;       #指定DNS服务器IP地址
    listen 8080;
    location / {
        proxy_pass http://$http_host$request_uri;     #设定代理服务器的协议和地址
    }
}  

以上的配置只能访问80 端口的网站,而不能访问https443端口的网站,现在的网站基本上都是https的要解决技能访问http80端口也能访问https443端口的网站,需要置两个SERVER节点,一个处理HTTP转发,另一个处理HTTPS转发,而客户端都通过HTTP来访问代理,通过访问代理不同的端口,来区分HTTP和HTTPS请求。


server {
    resolver 114.114.114.114;       #指定DNS服务器IP地址
    listen 80;
    location / {
        proxy_pass http://$http_host$request_uri;     #设定代理服务器的协议和地址
                proxy_set_header HOST $http_host;
                proxy_buffers 256 4k;
                proxy_max_temp_file_size 0k;
                proxy_connect_timeout 30;
                proxy_send_timeout 60;
                proxy_read_timeout 60;
                proxy_next_upstream error timeout invalid_header http_502;
    }
}
server {
    resolver 114.114.114.114;       #指定DNS服务器IP地址
    listen 443;
    location / {
       proxy_pass https://$host$request_uri;    #设定代理服务器的协议和地址
             proxy_buffers 256 4k;
             proxy_max_temp_file_size 0k;
       proxy_connect_timeout 30;
       proxy_send_timeout 60;
       proxy_read_timeout 60;
       proxy_next_upstream error timeout invalid_header http_502;
    }
}  

2.客户端访问设置:
2.1 Windows系统
为浏览器配置http代理即可,具体步骤如下:"打开浏览器"->Internet选项” -> “连接” -> “局域网设置” -> “代理服务器”,然后设置如下:

2.2 Linux访问地址如下:
如果访问HTTP网站,可以直接这样的方式: curl --proxy proxy_server:80 http://www.taobao.com/
如果访问HTTPS网站,例如https://www.alipay.com,那么可以使用nginx的HTTPS转发的server:
curl --proxy proxy_server:443 http://www.alipay.com

###通过http的访问
[[email protected] ~]# curl -I --proxy 192.168.99.99:80 www.baidu.com    ###显示http访问的状态码
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Wed, 07 Feb 2018 02:09:03 GMT
Content-Type: text/html
Content-Length: 277
Connection: keep-alive
Last-Modified: Mon, 13 Jun 2016 02:50:40 GMT
ETag: "575e1f80-115"
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Pragma: no-cache
Accept-Ranges: bytes

[[email protected] ~]# curl --proxy 192.168.99.99:80 www.baidu.com       ####显示http访问整个网页
###通过https的访问
[[email protected] ~]# curl -I --proxy 192.168.99.99:443 http://www.taobao.com/     ###
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Wed, 07 Feb 2018 02:13:14 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
Vary: Ali-Detector-Type
Cache-Control: max-age=60, s-maxage=90
X-Snapshot-Age: 1
Content-MD5: LIH52+3GPE2b2ELlP/CffQ==
ETag: W/"295b-1616605047e"
Via: cache47.l2cn624[14,304-0,C], cache29.l2cn624[11,0], cache2.cn12[0,200-0,H], cache5.cn12[0,0]
Age: 17
X-Cache: HIT TCP_MEM_HIT dirn:26:913567405 mlen:-1
X-Swift-SaveTime: Wed, 07 Feb 2018 02:12:57 GMT
X-Swift-CacheTime: 90
Timing-Allow-Origin: *
EagleId: 7250ae1715179695945657582e
Set-Cookie: thw=cn; Path=/; Domain=.taobao.com; Expires=Thu, 07-Feb-19 02:13:14 GMT;
Strict-Transport-Security: max-age=31536000
[[email protected] ~]# curl --proxy 192.168.99.99:443 http://www.taobao.com/              ###通过https代理访问

(三)Linux设置代理上网的方法:
线上环境为了安全期间,服务器是不容许上外网的,如果需要通过yum来进行更新或下载相应的软件包就比较麻烦,现在可以通过设置代理的方式来进行上外网的操作,具体方法如下:

(1)使用yum 的设置代理的方法。如果只需要使用yum来更新包的,只需进行yum配置即可。

[[email protected] ~]# vim /etc/yum.conf
proxy=http://192.168.99.99:80
proxy=ftp://192.168.99.99:80
#proxy_username=username                 #####代理的用户名
#proxy_password=password                  #####代理的密码

[[email protected] ~]# yum install iotop -y
Loaded plugins: fastestmirror
base                                                                                                             | 3.6 kB  00:00:00
extras                                                                                                           | 3.4 kB  00:00:00
updates                                                                                                          | 3.4 kB  00:00:00
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package iotop.noarch 0:0.6-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================
 Package                        Arch                            Version                             Repository                     Size
========================================================================================================================================
Installing:
 iotop                          noarch                          0.6-2.el7                           base                           52 k

Transaction Summary
========================================================================================================================================
Install  1 Package

Total download size: 52 k
Installed size: 156 k
Downloading packages:
iotop-0.6-2.el7.noarch.rpm                                                                                       |  52 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : iotop-0.6-2.el7.noarch                                                                                               1/1
  Verifying  : iotop-0.6-2.el7.noarch                                                                                               1/1 

Installed:
  iotop.noarch 0:0.6-2.el7                                                                                                              

Complete!
***备注:vi /etc/yum.conf***

添加下面内容
proxy = http://username:[email protected]:8080/
或者
proxy=http://yourproxy:808
proxy=ftp://yourproxy:808
proxy_username=username
proxy_password=password

2.wget设置代理的方法:
[[email protected] ~]# vim /etc/wgetrc
http_proxy=192.168.99.99:80
http_proxy=192.168.99.99:443

3.curl访问代理设置的方法:

如果访问HTTP网站,可以直接这样的方式: curl --proxy proxy_server:80 http://www.taobao.com/
如果访问HTTPS网站,例如https://www.alipay.com,那么可以使用nginx的HTTPS转发的server:
curl --proxy proxy_server:443 http://www.alipay.com

[[email protected] ~]# curl -I --proxy 192.168.99.99:80 www.baidu.com    ###显示http访问的状态码
HTTP/1.1 200 OK
备注:上边有介绍,详见上边内容。

4.使用设置全局代理的方法:


[[email protected] ~]# vim /etc/profile
http_proxy = http://192.168.99.99:80
http_proxy = http://192.168.99.99:443
ftp_proxy = http://192.168.99.99:80/
export http_proxy
export ftp_proxy

[[email protected] ~]# curl -I https://www.taobao.com
HTTP/1.1 200 OK
Server: Tengine
Date: Wed, 07 Feb 2018 02:50:49 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
Vary: Ali-Detector-Type
Cache-Control: max-age=60, s-maxage=90
X-Snapshot-Age: 2
Content-MD5: p7MoaH71PI2hqTQ/lcsW4Q==
ETag: W/"295b-1616605047e"
Via: cache40.l2et15-1[0,304-0,H], cache20.l2et15-1[0,0], cache10.cn418[0,200-0,H], cache5.cn418[1,0]
Age: 22
X-Cache: HIT TCP_MEM_HIT dirn:25:104405114 mlen:-1
X-Swift-SaveTime: Wed, 07 Feb 2018 02:50:27 GMT
X-Swift-CacheTime: 90
Timing-Allow-Origin: *
EagleId: 65e3d1e515179718498223532e
Set-Cookie: thw=cn; Path=/; Domain=.taobao.com; Expires=Thu, 07-Feb-19 02:50:49 GMT;
Strict-Transport-Security: max-age=31536000

原文地址:http://blog.51cto.com/liqingbiao/2069726

时间: 2024-08-08 17:20:02

Linux服务器通过Nginx正向代理上网的相关文章

.Net Core部署在Linux服务器:Nginx反向代理+Supervisor进程守护

前言:.Net Core 程序(网站)可以部署在windows IIS ,也可以部署在Linux系统(更加推荐) 本文部署,基于.net core 2.1,服务器CentOS 7, 需要安装的服务有2个:Nginx,SuperVisor(进程守护) 命令预览: Linux: 重启:reboot Nginx: 强杀: killall -9 nginx 测试配置是否正确: nginx -t 启动: nginx SuperVisor:停止:supervisorctl shutdown 启动: supe

nginx 正向代理上网

配置文件: server { #resolver 21.202.152.10; #指定DNS服务器IP地址 |如果指定IP$scheme://22.2.65.214$request_uri 可以不指定DNS listen 8888; location / { #proxy_pass $scheme://$host$request_uri; #指定传递过来的host和uri proxy_pass $scheme://22.2.65.214$request_uri; proxy_set_header

nginx正向代理的配置及实现

Nginx 正向代理 正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理. 目前现状:只有1个机器能上网(web),其他机器不能 方法:能上网的做一个代理web服务器中转,其他机器连接它即可.采用nginx  1.到nginx的官网中(http://nginx.org/en/download.html),下载Linux版本的安装包,我下载的版本为 2.源码安装(***) a) tar

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

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

Linux平台部署nginx反向代理实例

nginx有着优秀的代理性能,很多情况下,nginx常常被充当反向代理服务器负载后端应用web构建起一个高性能高可用的web集群(淘宝tengix ,京东的nginx集群都使用到了nginx反向代理功能),接下来给大家讲解Linux平台部署nginx反向代理实例. [本文档所介绍的内容适用于公司测试/生产等常见的nginx反向代理应用] 1. nginx环境部署前准备: 1.1相关软件以及系统 系统要求:Centos 6.0以上 (64位) 相关中间件:Nginx: 1.6.0 以上(包含1.6

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

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

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

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

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

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

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