Lnamp的高级网站架构+动静分离+反向代理
Lnamp的架构

环境:
图上面是5台服务器
192.168.1.116 是nginx负载均衡+动静分离
192.168.1.117:linux+apache+php
192.168.1.118:linux+apache+php
192.168.1.18:mysql主
192.168.1.19:msql从
!# 忽略安装http php mysql服务,可以源码安装 也可以yum安装,安装方法可以看其他笔记。
nginx安装:
接下来我们就应该做nginx负载均衡+动静分离+反向代理的配置
什么是动静分离:动态和静态请求分开不能理解成只是单纯的把动态页面和静态页面物理分离可以理解成使用Nginx处理静态页面,Tomcat、Resin出来动态页面。动态走后端 静态走nginx本地发布目录解析
在1.116安装nginx
接下来正式安装Nginx,首先需要安装pcre库。
#安装pcre支持rewrite库,也可以安装源码,注*安装源码时,指定pcre路径为解压
源码的路径,而不是编译后的路径,否则会报错
(make[1]: *** [/usr/local/pcre/Makefile] Error 127 错误)
yum install pcre-devel pcre -y
#下载Nginx源码包
cd /usr/src
wget -c http://nginx.org/download/nginx-1.6.2.tar.gz
#解压Nginx源码包
tar -xzf nginx-1.6.2.tar.gz
#预编译Nginx
useradd www ;./configure --user=www --group=www --prefix=/usr/local/nginx --with-
http_stub_status_module --with-http_ssl_module
#.configure预编译成功后,执行make命令进行编译
make
#make执行成功后,执行make install 正式安装
make install
#自此Nginx安装完毕
/usr/local/nginx/sbin/nginx -t 检查nginx配置文件是否正确,返回OK即正确。
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost ~]#
然后启动nginx,/usr/local/nginx/sbin/nginx 回车即可。查看进程是否已启动:
[root@localhost ~]# ps -ef |grep nginx
然后配置nginx的配置文件

打开配置文件nginx.conf 配置方向代理+优化等如下:
Nginx配置文件:如下(都是优化参数)
user www www;
worker_processes ;
worker_cpu_affinity
;
error_log /usr/local/nginx/logs/error.log crit;
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile ;
events {
use epoll;
worker_connections ;
multi_accept on;
} http {
include mime.types;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$request_time"';
default_type application/octet-stream;
access_log logs/access.log main ;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout ;
gzip on;
gzip_min_length 1k;
gzip_buffers 16k;
gzip_http_version 1.1;
gzip_comp_level ;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout ;
proxy_send_timeout ;
proxy_read_timeout ;
proxy_buffer_size 4k;
proxy_buffers 32k;
proxy_busy_buffers_size 64k;
large_client_header_buffers 4k;
client_header_buffer_size 4k;
open_file_cache max= inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses ;
include vhosts.conf;
# include vhosts/*;
}
然后我们在当前目录下建立一个vhosts.conf文件 配置如下
Vhosts.conf配置文件如下:动静分离的配置文件 静态文件走nginx 必须要拷贝到nginx服务器:(拷贝整个网站到发布目录www1和www2)
upstream tdt_wugk {
server 192.168.1.117: weight= max_fails= fail_timeout=30s;
server 192.168.1.119: weight= max_fails= fail_timeout=30s;
}
server {
listen ;
server_name www.jf.com jf.com;
######规则访问所有的域名都会调到www.jf.com###############
if ($host != 'www.jf.com' ) {
rewrite ^/(.*)$ http://www.jf.com/$1 permanent;
}
#######拒绝wget下载##########################
if ($http_user_agent ~* "wget")
{
return ;
}
root /data/webapps/www/www1;
index index.php index.html index.htm;
location /{
root /data/webapps/www/www1;
index index.php index.html;
expires 3d;
}
#########反向代理配置 负载网站 动态走后端########################
location ~ .*\.(php|jsp|cgi)?$ {
proxy_next_upstream http_502 http_404 http_504 error timeout invalid_header;
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;
proxy_pass http://tdt_wugk; }
############静态文件走nginx的发布目录 浏览器缓存图片3天###############
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{ root /data/webapps/www/www1;
expires 3d;
}
#############防盗链配置################### location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked *.jf.com;
root /data/webapps/www/www1;
if ($invalid_referer) {
return ;
}
}
}
下面就是动静分离 静态走的是nginx 动态走的是后端

但是上面访问的有文字没有界面是吧 这说明了没有静态文件 那么这是我们就应该把1.117上的网站配置的所有文件拷贝到nginx网站目录,我能不能只拷贝静态文件 我们应该把所有的网站文件都拷贝就ok了。
在企业我们也是这么干的 这么干就相当于网站动静分离

下面就是一个动静分离的网站 静态文件走的是nginx 动态文件走的是后端

#vhosts配置文件解析 反向代理配置解析
这里为后端服务器wugk应用集群配置,根据后端实际情况修改即可,tdt_wugk为负载均衡名称,可以任意指定
下面的所有配置是个负载均衡单没有配置动静分离 动静分离就是上面我配置vhosts.conf的文件 自己去理解
weight配置权重,在fail_timeout内检查max_fails次数,失败则剔除均衡。
upstream tdt_wugk {
server 192.168.1.117:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.1.119:80 weight=1 max_fails=2 fail_timeout=30s;
}
#虚拟主机配置
server {
#侦听80端口
listen 80;
#定义使用www.wuguangke.cn访问
server_name www.wuguangke.cn;
#设定本虚拟主机的访问日志
access_log logs/access.log main;
root /data/webapps/wugk; #定义服务器的默认网站根目录位置
index index.php index.html index.htm; #定义首页索引文件的名称
#默认请求
location ~ /{
root /data/www/wugk; #定义服务器的默认网站根目录位置
index index.php index.html index.htm; #定义首页索引文件的名称
#以下是一些反向代理的配置.
proxy_next_upstream http_502 http_404 http_504 error timeout invalid_header;
#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_redirect off;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tdt_wugk; #请求转向后端定义的均衡模块
}
Lnamp的高级网站架构+动静分离+反向代理的更多相关文章
- 9、架构--动静分离、rewrite、HTTPS
笔记 1.晨考 1.说明反向代理跟负载均衡有哪些区别? 2.负载均衡分配流量的几种方式? 1.轮询 2.权重 3.ip_hash 3.负载均衡部署BBS的步骤 2.昨日问题 3.今日内容 1.资源分离 ...
- 高级运维(一):反向代理&使用Varnish加速Web
案例1.反向代理 目标: 1.代理服务器可以将远程的Web服务器页面缓存于本地 2.代理服务器端口设置为80端口 3.用户通过访问代理服务器即可获得远程Web服务器页面上的内容 4.远程We ...
- .net core 跨平台开发 微服务架构 基于Nginx反向代理 服务集群负载均衡
1.概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客 ...
- 动态PHP电商网站伪静态的 Nginx反向代理Cache缓存终极设置
转自: http://www.ttlsa.com/nginx/dynamic-php-nginx-cache/
- PHP服务化搭建之nginx动静分离实战
如有什么问题可以加群交流:647617935 什么是动静分离 动静分离:将项目中的CSS,JS,HTML,JPG'.等静态资源和 PHP等动态资源分开处理的一种方式 动静分离优点 不同的文件由不同类型 ...
- 细介Nigix配置与反向代理
Nginx(发 音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下 发行.由俄罗斯的程序设计师Igor S ...
- Nginx (二) Nginx的反向代理负载均衡以及日志切割
Nginx是一个高并发,高性能的服务器,可以进行反向代理以及网站的负载均衡.这些功能的运用都在配置文件中,也就是Nginx安装目录下的conf/nginx.conf. nginx.conf 1. 先来 ...
- nignx反向代理web服务器的配置与使用
一.为什么要用nignx反向代理 1.负载均衡 当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃.为了避免服务器崩溃,让用户有更好的体验,我们通过负载均 ...
- LAMP环境搭建实现网站动静分离[转]
目录: 1.环境概述 2.动静分离拓扑图 3.各服务器功能规划 4.各服务器基础环境配置 5.httpd安装配置 6.php安装配置及启用opcache加速功能 7.mysql安装配置 8.wordp ...
随机推荐
- 5-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(,远程升级GPRS内部程序)
https://www.cnblogs.com/yangfengwu/p/10410202.html 与升级WIFI相同介绍的不再叙述 先看WIFI升级的: ↑ 演示视频: https://www. ...
- webpack 性能优化小结
背景 如今前端工程化的概念早已经深入人心,选择一款合适的编译和资源管理工具已经成为了所有前端工程中的标配,而在诸多的构建工具中,webpack以其丰富的功能和灵活的配置而深受业内吹捧,逐步取代了gru ...
- Linux使用Aria2命令下载BT种子/磁力/直链文件 转载
Linux使用Aria2命令下载BT种子/磁力/直链文件 博主: Rat's 发布时间:2017 年 10 月 10 日 26725 次浏览 8 条评论 1073 字数 分类:主机教程 首页 正文 分 ...
- 数据结构实验之二叉树一:树的同构 (SDUT 3340)
题解:把原本结构体的左右子树的类型定义成 int 型,用来存放这个结点的左右子树的编号,分别建造两棵二叉树,按个比较,如果在第二棵树中没有找到,那么就不用在判断了. #include <bits ...
- svg创建分支
是这样的 我之前的项目上传到svn上一直没有开过分支,今天其中的一个项目改动会比较大,想创建一个分支,在此分支上修改(目的是改动如果比较大,不想影响原来主干上的分支) 首先打开我们的项目存放的文件:右 ...
- 下面的代码在Python2中的输出是什么?解释你的答案
python2 def div1(x,y): print "%s/%s = %s" % (x, y, x/y) def div2(x,y): print "%s//%s ...
- Python基础之各种推导式玩法
一.推导式套路 除了我们之前所学习的列表推导式和生成器表达式之外,还有字典推导式.集合推导式等等. 下面就是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式. variable = [out ...
- cesium地下模式(地表透明)4
这篇博客主要罗列一下解决地下模式(地表透明)的相关资源 1.Cesium的Github仓库地下模式issue 有人提了这个问题,但是cesium官方没有解决这个问题,持续跟踪一下问题说不定哪天官方就解 ...
- MySQL_JDBC_jar包的下载与使用(Windows)
1. 下载 (1) 打开MySQL_JDBC的下载网站:https://dev.mysql.com/downloads/connector/j/ (2) 选择操作系统:Platform Indepen ...
- cannot load from mysql.proc. the table is probably corrupted 解决办法
执行以下命令:mysql_upgrade -u root -p 密码 mysql5.5及5.5以上的版本开始,mysql数据库中proc表中的comment字段的列属性已经由char(64)改为tex ...