利用 nginx 建置反向代理服务器
Nginx是俄罗斯人编写的十分羽量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发.
Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的mod_proxy也有一些问题并且很久没有升级。
但是Nginx并不支援cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。
nginx做为HTTP服务器,有以下几项基本特性:
1)处理静态档,索引档以及自动索引;打开文件描述符缓冲.
2)无缓存的反向代理加速,简单的负载均衡和容错.
3)FastCGI,简单的负载均衡和容错.
4)模块化的结构。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其他代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。
5)Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。它支援内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。
6)Nginx具有很高的稳定性。其他HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器实体内存耗尽频繁交换,失 去回应,只能重启服务器。例如当前apache一旦上到200个以上进程,web回应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得 它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来 说基本上是毫无用处的。就稳定性而言,nginx比lighthttpd更胜一筹。
7)Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。
常见的 Proxy Server ( 代理服务器 ) 的工作是去各个 Web Server 抓取数据回来放在服务器上来供用户读取、下载,而 Reverse Proxy Server ( 反向代理服务器 ) 做的事则是和 Proxy Server 刚好相反,负责将用户端的数据传送给藏在 Reverse Proxy Server 后面的 Web Server,这些躲在后面的 Web Server 不会、也不能直接被用户直接链结,只能经由 Reverse Proxy Server 代理传送和接收数据。
使用 Reverse Proxy Server 可以保护后方 Web Server 被攻击,同时,还可提供负载平衡、快取以及数据加密的功能,而目前比较常见的操作方式,是利用 Nginx 做为 Reverse Proxy Server,用 Apache 来当后面实际行的 Web Server。
本次则以操作方式来建置反向代理服务器
测试环境
ubuntu 14.04 LTS 192.168.0.117 ( 已安装apache + mysql + phpmyadmin )
ubuntu 14.04 LTS 192.168.0.118 ( 仅安装NginX )
首先在apache服务器上先建置所要的网站环境作为web server
这部分就依据不同的需求来建置这边不再说明
在192.168.0.118 Reverse Proxy服务器上我们则使用 ubuntu14.04LTS 来操作NginX
CentOS/Fedora:yum install nginx Ubuntu/Debian:apt-get install nginx mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
vi /etc/nginx/sites-available/default
#将原本设置删除加入下列设置
upstream fl_web {
server dongtaiwang.com:80;#网站名称自行设置
}
server {
listen 80;
server_name fl;
access_log /var/log/nginx/fl_access_log;
location / {
proxy_pass_header Server;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://192.168.0.117;#这里输入apache服务器的ip
}
}实际用网址连线192.168.0.118

可以发现到已经转到apache服务器那台主机192.168.0.117

上图为原本的apache服务器192.168.0.117

更换个google网站,也能导到www.google.com.tw
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
