15 nginx反向代理实现nginx+apache动静分离
一:nginx反向代理实现nginx+apache动静分离
-------------概念---------------------------
nginx反向代理服务器+负载均衡
用nginx做反向代理和负载均衡非常简单,
支持两个用法 1个proxy, 1个upstream,分别用来做反向代理,和负载均衡
以反向代理为例, nginx不自己处理php的相关请求,而是把php的相关请求转发给apache来处理.
这不就是传说的”动静分离”,动静分离不是一个严谨的说法,叫反向代理比较规范
---------------------------------------------------------------
yum install httpd \
httpd-manual mod_ssl \
mod_perl mod_auth_mysql \
php-mcrypt php-gd php-xml \
php-mbstring php-ldap \
php-pear php-xmlrpc \
mysql-connector-odbc \
mysql-devel libdbi-dbd-mysql
修改httpd.conf 配置
(1)把端口改成8080
(2)修改目录文件夹地址指向nginx/www/html [292行 DocumentRoot "/usr/share/nginx/html"]
(3) AllowOverride None 修改成 AllowOverride all 记得有多行需要配置
(4) Deny from all 修改成 Allow from all
(5)开启: Include conf/exra/httpd-vhosts.conf
启动httpd:/etc/init.d/httpd start
配置:nginx.conf
(1)在server 中的location端中加入 proxy_pass http://127.0.0.1:8080;
如:
location ~ \.php$ {
proxy_pass http://127.0.0.1:8080;
}
重启nginx ./sbin/nginx -s reload
访问ecshop 127.0.0.1/ecshop/index.php
出现错误:Forbidden
You don't have permission to access /ecshop/index.php on this server.
原因是没有权限,解决办法,修改权限。
查看权限:ll ;发现有读写权限,不是root身份。
解决办法拷贝一份出来。
cp -rf ecshop ecshop1
在查看权限 发现是root身份了。
访问ecshop 127.0.0.1/ecshop/index.php
OK 成功。如果不成功则看错误日志。。。。。