centos proxy server?centos7安装软件选择

大家好,关于centos proxy server很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于centos7安装软件选择的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

求助关于centos6.6搭建nginx反向代理服务器

〉直接作为http server(代替apache,对PHP需要FastCGI处理器支持);

〉另外一个功能就是作为反向代理服务器实现负载均衡

以下我们就来举例说明如何使用 nginx实现负载均衡。因为nginx在处理并发方面的优势,现在这个应用非常常见。当然了Apache的 mod_proxy和mod_cache结合使用也可以实现对多台app server的反向代理和负载均衡,但是在并发处理方面apache还是没有 nginx擅长。

1)环境:

a.我们本地是Windows系统,然后使用VirutalBox安装一个虚拟的Linux系统。

在本地的Windows系统上分别安装nginx(侦听8080端口)和apache(侦听80端口)。在虚拟的Linux系统上安装apache(侦听80端口)。

这样我们相当于拥有了1台nginx在前端作为反向代理服务器;后面有2台apache作为应用程序服务器(可以看作是小型的server cluster。;-));

b. nginx用来作为反向代理服务器,放置到两台apache之前,作为用户访问的入口;

nginx仅仅处理静态页面,动态的页面(php请求)统统都交付给后台的两台apache来处理。

也就是说,可以把我们网站的静态页面或者文件放置到nginx的目录下;动态的页面和数据库访问都保留到后台的apache服务器上。

c.如下介绍两种方法实现server cluster的负载均衡。

我们假设前端nginx(为127.0.0.1:80)仅仅包含一个静态页面index.html;

后台的两个apache服务器(分别为localhost:80和158.37.70.143:80),一台根目录放置phpMyAdmin文件夹和test.php(里面测试代码为print“server1“;),另一台根目录仅仅放置一个test.php(里面测试代码为 print“server2“;)。

2)针对不同请求的负载均衡:

a.在最简单地构建反向代理的时候(nginx仅仅处理静态不处理动态内容,动态内容交给后台的apache server来处理),我们具体的设置为:在nginx.conf中修改:

复制代码代码如下:

location~\.php${

proxy_pass 158.37.70.143:80;

}

〉这样当客户端访问localhost:8080/index.html的时候,前端的nginx会自动进行响应;

〉当用户访问localhost:8080/test.php的时候(这个时候nginx目录下根本就没有该文件),但是通过上面的设置 location~\.php$(表示正则表达式匹配以.php结尾的文件,详情参看location是如何定义和匹配的 ),nginx服务器会自动pass给 158.37.70.143的apache服务器了。该服务器下的test.php就会被自动解析,然后将html的结果页面返回给nginx,然后 nginx进行显示(如果nginx使用memcached模块或者squid还可以支持缓存),输出结果为打印server2。

如上是最为简单的使用nginx做为反向代理服务器的例子;

b.我们现在对如上例子进行扩展,使其支持如上的两台服务器。

我们设置nginx.conf的server模块部分,将对应部分修改为:

复制代码代码如下:

location ^~/phpMyAdmin/{

proxy_pass 127.0.0.1:80;

}

location~\.php${

proxy_pass 158.37.70.143:80;

}

上面第一个部分location ^~/phpMyAdmin/,表示不使用正则表达式匹配(^~),而是直接匹配,也就是如果客户端访问的 URL是以开头的话(本地的nginx目录下根本没有phpMyAdmin目录),nginx会自动pass到127.0.0.1:80的Apache服务器,该服务器对phpMyAdmin目录下的页面进行解析,然后将结果发送给nginx,后者显示;

如果客户端访问URL是的话,则会被pass到158.37.70.143:80的apache进行处理。

因此综上,我们实现了针对不同请求的负载均衡。

〉如果用户访问静态页面index.html,最前端的nginx直接进行响应;

〉如果用户访问test.php页面的话,158.37.70.143:80的Apache进行响应;

〉如果用户访问目录phpMyAdmin下的页面的话,127.0.0.1:80的Apache进行响应;

3)访问同一页面的负载均衡:

即用户访问这个同一页面的时候,我们实现两台服务器的负载均衡(实际情况中,这两个服务器上的数据要求同步一致,这里我们分别定义了打印server1和server2是为了进行辨认区别)。

a.现在我们的情况是在windows下nginx是localhost侦听8080端口;

两台apache,一台是127.0.0.1:80(包含test.php页面但是打印server1),另一台是虚拟机的158.37.70.143:80(包含test.php页面但是打印server2)。

b.因此重新配置nginx.conf为:

〉首先在nginx的配置文件nginx.conf的http模块中添加,服务器集群server cluster(我们这里是两台)的定义:

复制代码代码如下:

upstream myCluster{

server 127.0.0.1:80;

server 158.37.70.143:80;

}

表示这个server cluster包含2台服务器

〉然后在server模块中定义,负载均衡:

复制代码代码如下:

location~\.php${

proxy_pass 这里的名字和上面的cluster的名字相同

proxy_redirect off;

proxy_set_header Host$host;

proxy_set_header X-Real-IP$remote_addr;

proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;

}

这样的话,如果访问页面的话,nginx目录下根本没有该文件,但是它会自动将其pass到myCluster定义的服务区机群中,分别由127.0.0.1:80;或者158.37.70.143:80;来做处理。

上面在定义upstream的时候每个server之后没有定义权重,表示两者均衡;如果希望某个更多响应的话例如:

复制代码代码如下:

upstream myCluster{

server 127.0.0.1:80 weight=5;

server 158.37.70.143:80;

}

这样表示5/6的几率访问第一个server,1/6访问第二个。另外还可以定义max_fails和fail_timeout等参数。

综上,我们使用nginx的反向代理服务器reverse proxy server的功能,将其布置到多台apache server的前端。

nginx仅仅用来处理静态页面响应和动态请求的代理pass,后台的apache server作为app server来对前台pass过来的动态页面进行处理并返回给nginx。

通过以上的架构,我们可以实现nginx和多台apache构成的机群cluster的负载均衡。

两种均衡:

1)可以在nginx中定义访问不同的内容,代理到不同的后台server;如上例子中的访问phpMyAdmin目录代理到第一台server上;访问test.php代理到第二台server上;

2)可以在nginx中定义访问同一页面,均衡(当然如果服务器性能不同可以定义权重来均衡)地代理到不同的后台server上。如上的例子访问test.php页面,会均衡地代理到server1或者server2上。

实际应用中,server1和server2上分别保留相同的app程序和数据,需要考虑两者的数据同步。

centos安装配置pptpvpn服务器步骤分享

说明:

服务器操作系统:CentOS 5.X 64位

服务器IP地址:192.168.21.128

实现目的:服务器安装配置pptp软件,对外提供vpn拨号服务

具体操作:

一、安装包下载

1、ppp#安装pptpd需要此软件包

2、pptpd#目前最新版本

下载好之后上传到/usr/local/src目录

二、检查服务器系统环境是否支持安装pptp vpn

1、检查系统内核是否支持MPPE补丁

复制代码代码如下:

modprobe ppp-compress-18&&echo success

显示success说明系统支持MPPE补丁,如果不支持,需要先安装kernel-devel

复制代码代码如下:

yum install kernel-devel

2、检查系统是否开启TUN/TAP支持

cat/dev/net/tun

如果这条指令显示结果为下面的文本,则表明通过:

复制代码代码如下:

cat:/dev/net/tun: File descriptor in bad state

3、检查系统是否开启ppp支持

复制代码代码如下:

cat/dev/ppp

如果这条指令显示结果为下面的文本,则表明通过:

复制代码代码如下:

cat:/dev/ppp: No such device or address

上面三条必须同时满足,否则不能安装pptp vpn

三、安装pptp

复制代码代码如下:

cd/usr/local/src

rpm-ivh ppp-2.4.4-14.1.rhel5.x86_64.rpm#安装ppp

rpm-ivh pptpd-1.4.0-1.rhel5.x86_64.rpm#安装pptp

四、配置pptp

1、vi/etc/ppp/options.pptpd#编辑,添加、修改以下参数

复制代码代码如下:

name pptpd

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

proxyarp

lock

nobsdcomp

novj

novjccomp

nologfd

ms-dns 8.8.8.8#添加主DNS服务器地址

ms-dns 8.8.4.4#添加备DNS服务器地址

:wq!#保存,退出

2、vi/etc/ppp/chap-secrets#设置pptp拨号用户和密码(可以设置多个用户,每行一个)

复制代码代码如下:

# client server secret IP addresses

osyunweivpnuser01 pptpd 123456*

osyunweivpnuser02 pptpd 1234*

osyunweivpnuser03 pptpd 12345678*

格式:用户名 pptpd密码*

其中*表示为客户端自动分配IP地址

:wq!#保存,退出

3、vi/etc/pptpd.conf#设置pptp服务器IP地址,设置vpn拨入客户端ip地址池

复制代码代码如下:

option/etc/ppp/options.pptpd

logwtmp

localip 172.16.36.1#设置pptp虚拟拨号服务器IP地址(注意:不是服务器本身的IP地址)

remoteip 172.16.36.2-254#为拨入vpn的用户动态分配172.16.36.2~172.16.36.254之间的IP地址复制代码代码如下:

:wq!#保存,退出

/sbin/service pptpd start#启动pptp

/etc/init.d/pptpd stop#关闭

service pptpd restart#重启

chkconfig pptpd on#设置开机启动

五、开启服务器系统路由模式,支持包转发

编辑vi/etc/sysctl.conf

复制代码代码如下:

net.ipv4.ip_forward= 1#设置为1

#net.ipv4.tcp_syncookies= 1#注释掉

复制代码代码如下:

:wq!#保存,退出

/sbin/sysctl-p#使设置立刻生效

六、设置防火墙转发规则

复制代码代码如下:

yum install iptables#安装防火墙

service iptables start#启动防火墙

iptables-t nat-A POSTROUTING-s 172.16.36.0/255.255.255.0-j SNAT--to-source 192.168.21.128#添加规则

iptables-A FORWARD-p tcp--syn-s 172.16.36.0/255.255.255.0-j TCPMSS--set-mss 1356#添加规则

/etc/init.d/iptables save#保存防火墙设置

七、开启pptp服务端口tcp 1723,设置vpn拨入客户端ip地址池172.16.36.0/255.255.255.0通过防火墙

编辑vi/etc/sysconfig/iptables,添加以下代码

复制代码代码如下:

-A RH-Firewall-1-INPUT-p tcp-m state--state NEW-m tcp--dport 1723-j ACCEPT

-A RH-Firewall-1-INPUT-s 172.16.36.0/255.255.255.0-j ACCEPT

:wq!#保存,退出

备注:

复制代码代码如下:

#192.168.21.128为服务器IP地址

#172.16.36.0/255.255.255.0是第四步中设置的pptp虚拟拨号服务器IP地址段

/etc/init.d/iptables restart#重启防火墙

chkconfig iptables on#设置开机启动

cat/etc/sysconfig/iptables#查看防火墙配置文件

# Generated by iptables-save v1.3.5 on Wed Dec 11 20:21:08 2013

*nat

: PREROUTING ACCEPT [60:4680]

: POSTROUTING ACCEPT [4:258]

:OUTPUT ACCEPT [4:258]

-A POSTROUTING-s 172.16.36.0/255.255.255.0-j SNAT--to-source 192.168.21.128

COMMIT

# Completed on Wed Dec 11 20:21:08 2013

# Generated by iptables-save v1.3.5 on Wed Dec 11 20:21:08 2013

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [94:16159]

:RH-Firewall-1-INPUT- [0:0]

-A INPUT-j RH-Firewall-1-INPUT

-A FORWARD-j RH-Firewall-1-INPUT

-A FORWARD-s 172.16.36.0/255.255.255.0-p tcp-m tcp--tcp-flags FIN,SYN,RST,ACK SYN-j TCPMSS--set-mss 1356

-A RH-Firewall-1-INPUT-i lo-j ACCEPT

-A RH-Firewall-1-INPUT-p icmp-m icmp--icmp-type any-j ACCEPT

-A RH-Firewall-1-INPUT-p esp-j ACCEPT

-A RH-Firewall-1-INPUT-p ah-j ACCEPT

-A RH-Firewall-1-INPUT-d 224.0.0.251-p udp-m udp--dport 5353-j ACCEPT

-A RH-Firewall-1-INPUT-p udp-m udp--dport 631-j ACCEPT

-A RH-Firewall-1-INPUT-p tcp-m tcp--dport 631-j ACCEPT

-A RH-Firewall-1-INPUT-m state--state RELATED,ESTABLISHED-j ACCEPT

-A RH-Firewall-1-INPUT-p tcp-m state--state NEW-m tcp--dport 22-j ACCEPT

-A RH-Firewall-1-INPUT-p tcp-m state--state NEW-m tcp--dport 1723-j ACCEPT

-A RH-Firewall-1-INPUT-s 172.16.36.0/255.255.255.0-j ACCEPT

-A RH-Firewall-1-INPUT-j REJECT--reject-with icmp-host-prohibited

COMMIT

# Completed on Wed Dec 11 20:21:08 2013

八、设置开机自动建立ppp设备节点(系统重新启动后有可能会丢失此文件,导致pptp客户端拨号出现错误619)

编辑vi/etc/rc.d/rc.local,在文件最后添加此行代码

复制代码代码如下:

mknod/dev/ppp c 108 0#在文件最后添加此行代码

:wq!#保存,退出

CentOS环境下Nginx实现3台虚拟机负载均衡

负载均衡

先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。

测试环境

在VMware里安装了三台。

A服务器IP:192.168.0.219(主)

B服务器IP:192.168.0.119

C服务器IP:192.168.0.109

部署思路

A服务器做为主服务器,域名直接解析到A服务器(192.168.0.219)上,由A服务器负载均衡到B服务器(192.168.0.119)与C服务器(192.168.0.109)上。

在A服务器上,upstream指令——分配负载

vi/etc/nginx/conf.d/default.conf

upstream 192.168.0.219{

server 192.168.0.119:80;

server 192.168.0.109:80;

}

server{

listen 80;

server_name 192.168.0.219;

charset utf8;

location/{

proxy_pass

proxy_set_header Host$host;

proxy_set_header X-Real-IP$remote_addr;

proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;

}

}

保存重启nginx

在B、C服务器上,

vi/etc/nginx/conf.d/default.conf

server{

listen 80;

server_name 192.168.0.219;

index index.html;

root/usr/share/nginx/html;

}

保存重启nginx

测试

当访问的时候,为了区分是转向哪台服务器处理我分别在B、C服务器下写一个不同内容的index.html文件,以作区分。

打开浏览器访问a.com结果,刷新会发现所有的请求均分别被主服务器(192.168.5.149)分配到B服务器(192.168.0.119)与C服务器(192.168.0.109)上,实现了负载均衡效果。

主服务器不能提供服务吗?

以上例子中,我们都是应用到了主服务器负载均衡到其它服务器上,那么主服务器本身能不能也加在服务器列表中,这样就不会白白浪费拿一台服务器纯当做转发功能,而是也参与到提供服务中来。

怎么解决这个问题呢?因为80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理192.168.0.219的访问请求,得用一个新的。

于是我们在主服务器中编辑/etc/nginx/conf.d/default.conf,添加以下内容

server{

listen 8080;

server_name 192.168.0.219;

index index.html;

root/usr/share/nginx/html;

}

重启nginx

然后,再重新渡负载均衡。

更多Nginx相关教程见以下内容:

CentOS 6.2实战部署Nginx+MySQL+PHP

使用Nginx搭建WEB服务器

搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程

CentOS 6.3下Nginx性能调优

CentOS 6.3下配置Nginx加载ngx_pagespeed模块

CentOS 6.4安装配置Nginx+Pcre+php-fpm

Nginx安装配置使用详细笔记

Nginx日志过滤使用ngx_log_if不记录特定日志

阅读剩余
THE END