>

04使用cntlm配置代理上网,的反向代理和负载均衡

- 编辑:www.bifa688.com -

04使用cntlm配置代理上网,的反向代理和负载均衡

公司安装了ISA服务器,Ubuntu 无法通过 ISA  代理更新软件.即无法使用apt-get在命令行下更新软件

原文链接:

Ubuntu 12.04使用cntlm配置代理上网

背景

公司网络使用了域账号管理机制,上网必须配指定的机器名和域名,并需要密码,访问网站时经常弹出输入用户名密码的窗口,很多软件都不能自动升级,而且Console模式下apt-get也不能使用;使用cntlm就可以解决上述问题。

Ubuntu 12.04下步骤如下:

代理环境下IT环境配置

1、首先,安装cntlm工具(工欲善其事必先利其器么)

软件官网:

# 直接下载deb安装包进行安装

sudo dpkg -i cntlm_0.92.3_amd64.deb

2、修改配置文件cntlm.conf

$ sudo vi /etc/cntlm.conf

username:san.zhang #请改成员工自己外网帐号

domain:company.domain#输入外网域名

password:123456#请改成员工自己帐号的密码

查找此行Proxy 10.0.0.19:8080 #请改为公司的代理服务器ip地址和端口

其余默认即可

在这里,特别注意cntlm监听的端口号"Listen3128"

3、重启cntlm服务

$ sudo killall cntlm#关闭cntlm服务

$ sudo cntlm #开启cntlm服务

4、更改代理服务器地址和端口

$ sudo apt-get update

#检查代理是否能连接Internet

$ sudo vi /etc/profile #检查代理服务器端口,并将端口设置为3128

1)添加如下语句

export http_proxy=”

export https_proxy=”

export ftp_proxy=”

$ source /etc/profile 应用代理服务器设置

5、修改Firefox浏览器代理

1) 打开Firefox浏览器,点击浏览器菜单Edit--Preferences--Advanced—Network--Settings

2)选中Manual proxy configuration--HTTP Proxy, 输入代理服务器地址:127.0.0.1 Port:3128,并勾选Use this proxy server for all protocols。

6、修改系统网络代理(或修改Chromium浏览器代理)

1)点击桌面右上角图标--System Settings—Hardware—Network,并双击打开。

2) 点击Network proxy—Method,并在HTTP Proxy中输入代理服务器:127.0.0.1 ,端口:3128 或代理服务器:ip地址,端口:xxxx。

12.04使用cntlm配置代理上网 背景 公司网络使用了域账号管理机制,上网必须配指定的机器名和域名,并需要密码,访问网站时经常弹出...

1.如果只是单纯上网的话,很简单.

正向代理和反向代理

(1)我们直接preference-->network proxy里找到代理

我们经常看到正向代理和反向代理这两个名词,那么什么是正向代理,什么是反向代理呢?这里我举两个通俗的例子帮助理解这两个概念:

设置好就行了。

正向代理

可以参考下图:

假如我们要访问一个网站A,但是由于各种原因无法直接访问到,我们可以借助一个可以访问到网站A的第三方的服务器B,通过服务器B访问网站A,我们通过服务器B访问网站A的这个过程就是正向代理。

图片 1

反向代理

(2)在命令行下输入route add default gw 10.***.***.***添加默认的网管就可以在浏览器上网了。

同样举访问网站A的例子,这个网站A是一个大型网站,我们知道大型网站都是有服务器集群的,我们在访问网站A的时候,怎么找到某个具体的服务器呢?这就需要使用反向代理服务器,通过反向代理服务器可以帮助我们找到A网站服务器集群中的某一台服务器,这个过程就是反向代理。

如果是在火狐下上网只需Edit-->Preferrences-->Advance-->Settings里面设置好代理,在命令行端口加入网管就可以直接上网了

负载均衡

2.公司安装了ISA服务器,Ubuntu 无法通过 ISA  代理更新软件.

还是以上面的访问网站A为例,我们在访问网站A的时候,反向代理服务器怎么知道把我们的请求转发到集群中的哪一台服务器呢?同时,为了合理的优化资源,不应该将所有的请求都转发到同一台服务器上,需要根据集群中服务器的运行情况,比如通过CPU占用、带宽等因素决定将请求转发到一个较优的服务器。这个合理分配请求资源的过程就叫做负载均衡。

   解决方法:安装ntlmaps

有很多方案可以实现反向代理和负载均衡,如 Nginx、LVS以及通过硬件手段等。

 (1)到此网站

Nginx

 (2)  dpkg -i  *安转刚刚下载的ntlmaps

对于中小网站,常用 Nginx 实现反向代理和负载均衡。关于 Nginx 本身又是一个庞大的领域了,本人对具体的细节也不明白,毕竟术业有专攻。因此本文只介绍一般前端工程师常用的一些操作和配置,若想深入 Nginx,还需要您再通过其他的资料加以学习。

 (3)cp /etc/ntlmaps/server.cfg  /usr/share/ntlmaps/

安装 Nginx

 (4)在启动认证代理服务器之前,首先要进行配置,设置代理服务器msproxy的IP、端口信息和ntlmaps的基本配置

在 Ubuntu 上,可以通过apt-get的方式进行安装:

           vi /usr/share/ntlmaps/server.cfg 或者gedit /usr/share/ntlmaps/server.cfg

sudo apt-get install nginx

           [GENERAL] #常规设置

执行安装后,Nginx 的可执行程序被安装到/usr/sbin,路径为/usr/sbin/nginx,Nginx 的相关配置配置文件在/etc/nginx目录中。

           LISTEN_PORT:5865 #ntlmaps默认监听端口,默认即可
           PARENT_PROXY:your_parentproxy #msproxy代理服务器的IP地址
           PARENT_PROXY_PORT:8080 #msproxy代理服务器端口,http一般是8080
           [NTLM_AUTH]
           NT_HOSTNAME: hostname #可选的主机名
           NT_DOMAIN: domainname #可选的NT服务器域名
           USER: username #msproxy指定的用户名,如没有则空白即可
           PASSWORD: password #msproxy需要的密码,空白即可,自动提示输入

注:以上为 Ubuntu 中的文件结果,不同的 Linux 发行版可能会有差异。

 (5)/usr/share/ntlmaps/main.py 启动后台 启动后不能关掉

Nginx 的几个常用命令

 (6)export http_proxy=""  本机IP与监听端口与system---->preferences---->proxy设置相同

Nginx 有以下几个常用的命令:

 (7)apt-get update 测试运行

// 启动 Nginx

图片 2

sudo nginx

// 停止 Nginx

sudo nginx -s stop

// 重载 Nginx 配置文件(平滑重启)

sudo nginx -s reload

// 自定义 Nginx 配置文件

nginx -c xxx.conf

准备两台服务器

要配置反向代理和负载均衡,至少需要三台服务器:一台服务器用来做反向代理和负载均衡,另外两台服务器用来让用户访问。由于我是在本地进行的开发,手头上没有服务器和虚拟机,就在本地使用不同的端口来表示不同的服务器了。

使用 Koa2 创建一个简单的服务器,代码如下:

const Koa = require("koa")

const app = new Koa();

const Router = require("koa-router");

const router = new Router();

// 获取命令行参数

const PORT = process.argv.splice(2)[0];

// 监听端口

app.listen(PORT);

router.get("/",async (ctx,next) => {

ctx.body = `

Server at ${PORT}

`

});

app.use(router.routes());

这里的端口是从命令行参数获取的(您也可以使用在代码中监听随机端口,但这样就不好在 Nginx 负载均衡中指定服务器的地址了),我们可以用其来指定多个服务器。

配置 Nginx 负载均衡

对 Nginx 配置负载均衡比较简单,需要对http配置项下的upstream和server进行配置:

http {

...

upstream mynodeapp {

server 127.0.0.1:8081;

server 127.0.0.1:8082;

}

...

server {

listen      80;

server_name  localhost;

location / {

proxy_pass  ;

}

...

}

...

}

这样,我们就配置了一个简单的负载均衡服务器。

下面我们启动服务器,打开两个命令行窗口,定位到项目文件夹中,分别运行:

node server 8081

node server 8082

然后在浏览器打开localhost,可以反复刷新看下效果:

图片 3

nginx 配置负载均衡-1.gif

如上所示,我们已经使用 Nginx 配置了一个简单的负载均衡服务器。

ip_hash

如果对于没有用户验证或者其他验证需求的站点,上面的配置已经足够了。但对于有用户验证之类需求的站点而言,上面的配置是有问题的。因为用户每次刷新页面后不保证能够降落到同一台服务器上,如果需要进行验证操作,当认证成功的用户降落到另一台服务器上时,认证就可能失败。

解决方法也很简单:在upstream模块下添加ip_hash配置即可,这样会保证用户每次刷新都降落在同一台服务器上:

...

# 配置负载均衡

upstream mynodeapp {

ip_hash;

server 127.0.0.1:8081;

server 127.0.0.1:8082;

}

...

看下运行效果:

图片 4

nginx 配置 ip_hash.gif

当我们配置了ip_hash之后,用户刷新浏览器都会落到同一台服务器上了。

url_hash

ip_hash是通过用户的 IP 地址来判断落点,对于固定的 IP 地址较好用,但有时候用户使用的是动态 IP,IP 地址可能是在不断变化的,这时候如果再根据 IP 地址来判断落点就不准确了。我们可以使用url_hash来处理这种情况,url_hash的具体配置和ip_hash一致,这里不再赘述了。

访问权重配置

我们还可以对服务器进行访问权重的配置,如果我们事先知道哪一台服务器性能较好,我们可以将它的权重设置的大一点。但一般而言,使用默认的配置就好了,具体着陆到哪一台服务器,由 Nginx 去判断。

# 配置负载均衡

upstream mynodeapp {

server 127.0.0.1:8081 weight=5;

server 127.0.0.1:8082;

}

看下效果:

图片 5

nginx 配置落点权重.gif

我们将端口为8081的服务器的权重配置的稍大些,在负载均衡时,着陆到该服务器的几率也更大了。

总结

本文主要介绍了使用 Nginx 配置反向代理和负载均衡的初步使用,包括:

理解正向代理和反向代理

理解负载均衡

安装 Nginx 和 Nginx 的常用命令

如何使用 Nginx 配置简单的负载均衡服务器

ip_hash,url_hash和weight的意义

完。

作者:黑黢黢

链接:

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文由bifa688.com发布,转载请注明来源:04使用cntlm配置代理上网,的反向代理和负载均衡