nginx与apache配合反向代理技术1
序:最近在看Dimitri Aivaliotis的《Mastering Nginx》,刚好跆拳道课下班在路上看了反向代理服务器,准备在自己的博客VPS尝试一下
web代理服务器可以实现分布式响应用户请求的特点,减轻或者说分散下游服务器的压力。合理精密的配置可以达到负载均衡的奇效!下面我们来试着先实现Nginx的反向代理功能。
原料:已经搭建好的LNMP网站服务器一台,为了代理,必须要已经存在一台服务器,详细搭建过程,请查阅本博客的ubuntu搭建LNMP服务器。
第一步:搭建上游服务器:apache
sudo su //进root模式
//安装apache2服务器,会提示无法启动,因为80端口被nginx占了
apt-get install apache2
修改apache配置文件
vim /etc/apache2/ports.conf //修改端口8080
Listen 8080 <IfModule ssl_module> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
vim /etc/apache2/apache2.conf //修改apache网站目录proxy_www
<Directory /var/proxy_www> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
vim /etc/apache2/sites-available/000-default.conf //修改默认站点文件
<VirtualHost *:8080> ServerAdmin webmaster@localhost DocumentRoot /var/proxy_www ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
mkdir /var/proxy_www //创建apache的网站目录作为代理
chmod -R 777 /var/proxy_www //为了快速实验,直接赋予所有权限
cd /var/proxy_www
vim ./index.html //随便新建一个测试文件,测试apache站点
sudo service apache2 restart //重启apache2
浏览器输入网址:8080端口访问出现测试页面,apache服务器搭建完成
第二步:配置nginx为web反向代理服务器
介绍:Nginx能够作为一个反向代理终结来自于客户端的请求,并且向上游服务器打开一个新的请求。
修改default站点配置文件
vim /etc/nginx/sites-available/default
修改location如下
location /apache { proxy_pass http://127.0.0.1:8080; }
效果:浏览器请求“地址/apache(例如:www.gxy.gift/apache)”,这么一个URL请求就会把请求转发到到apache服务器,由apache处理访问,我们可以故意输错/apachessss这样来查看是否显示以下这样的apache错误页来验证请求被apache处理了!