lanmp之一(动静分离)

windysai windysai     2022-08-20     603

关键词:

一、lanmp——需求篇

1. 准备两台centos 6,其中一台机器跑mysql,另外一台机器跑apache,nginx + php

2. 同时安装apache和nginx,其中nginx启动80端口,用来跑静态对象(图片、js、css),apache监听88端口,负责跑动态页(php相关),并且需要由nginx代理对外访问

3. mysql服务器需要开启慢查询日志

4. 搭建discuz、wordpress以及phpmyadmin,域名分别为bbs.abc.com, blog.abc.com, pma.abc.com

5. 配置discuz的伪静态(nginx配置)

6. apache不需要记录日志,nginx记录日志,但不记录图片等静态页的日志,并且配置日志切割

7. 配置图片防盗链(nginx)

8. 配置图片缓存7天,js,css缓存1天(nginx)

9. discuz和wordpress访问后台限制一下ip白名单,比如只允许192.168.1.100访问(nginx)

10. phpmyadmin整个站点需要配置用户认证(nginx)

11. 写一个mysql备份的脚本,每天5点执行,需要远程拷贝到web机器上

12. 把除了百度、google外的其他常见搜索引擎蜘蛛封掉,比如(bingbot/2.0、Sogou web spider/4.0、360Spider、YisouSpider、YandexBot/3.0)(nginx)
 
 
ps:因为详细过程写下来实在太多了(都在我的笔记中),考虑到用户体验,所以一切简化吧~~
 
二、lanmp——搭建+部署
(1)说明:
两台centos 6.7
1、windysai(192.168.131.110)   ——》 跑web(apache + [mysql]+ nginx + php) 
2、luojy(192.168.131.133) ——》 跑mysql,以下简称为 db 机器
3、apache: 2.2.31        mysql:5.1.49
nginx:1.6.2          php:5.4.36
 
(2)db机器安装mysql,并授权给 web 机器
注意:防火墙规则记得关掉
web机器测试登录:  
mysql -usai -p123456 -h192.168.131.133
 
(3)web机器
安装 apache+php(lamp环境)  + nginx(作为代理)
 
(4)搭建三个域名
bbs.abc.com(discuz)
blog.abc.com(wordpress)
pma.abc.com(phpmyadmin)
 
思路:安装完之后(解压+挪地方)
再编辑apache虚拟主机配置文件 (DocumentRoot, ServerName)
 
三、lanmp——功能说明
1、apache监听88端口
(1)Apache 的主配置文件httpd.conf,端口改成88
Listen 88
(2)Apache 的虚拟主机配置文件 httpd-vhosts.conf(../conf/extra/)
(i)NameVirtualHost *:88
(ii)全局替换  :1,%s/:80/:88   《====》  :1,$s/:80/:88
 
2、apache跑动态网页(php相关)
主配置文件httpd.conf
(1)AddType application/x-httpd-php  .php
(2)DirectoryIndex index.html index.htm  index.php
 
3、apache由nginx代理访问
修改discuz.conf,blog.conf,pma.conf ——》nginx的vhosts目录下
(1)
server 
{
     listen 80;
     server_name bbs.abc.com;
     .....
     root /data/bbs;
....
}
(2) location ~ .php$ {
               proxy_pass http://127.0.0.1:88;
               proxy_set_header Host $host;     
               proxy_set_header X-Real-IP      $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }     
  
4、nginx跑静态对象(图片,js,css)
vim discuz.conf
 
配置图片缓存 7 天, nginx图片防盗链,不记录图片等静态页的日志
location ~* ^.+.(gif|jpg|png|swf|flv|rar| zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ {
     expires 7d;
     valid_referers none blocked server_names *.abc.com *.a.com *.b.com *.baidu.com *.google.com *.google.cn *.soso.com;
     if ($invalid_referer) {
          return 403;
     }
     access_log off;   
}
 
5、nginx配置js,css缓存1天,不记录日志
location ~ .*.(js|css)?$
{
     expires 24h;     或者为1d
     access_log off;
}
 
6、nginx配置discuz的伪静态
        rewrite ^([^.]*)/topic-(.+).html$ $1/portal.php?mod=topic&topic=$2 last;
        rewrite ^([^.]*)/forum-(w+)-([0-9]+).html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
        rewrite ^([^.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
        rewrite ^([^.]*)/group-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
        rewrite ^([^.]*)/space-(username|uid)-(.+).html$ $1/home.php?mod=space&$2=$3 last;
        rewrite ^([^.]*)/(fid|tid)-([0-9]+).html$ $1/index.php?action=$2&value=$3 last;
 
7、nginx记录日志
     access_log    /home/logs/discuz.log     combined_realip;
注意:nginx.conf 在http模块中定义了log_format
技术分享
 
8、nginx配置日志切割
vim /usr/local/sbin/logrotate.sh
内容:
#! /bin/bash
d=`date -d "-1 day" +%Y%m%d`
/bin/mv  /home/logs/discuz.log /home/logs/discuz_$d.log
/etc/init.d/nginx reload >/dev/null 2>/dev/null
cd /home/logs
gzip discuz_$d.log
 
9、discuz和wordpress访问后台限制ip白名单
(1)discuz的后台: bbs.abc.com/admin.php
location ~ admin.php {
     allow 白名单;
     deny all;
     proxy_pass http://127.0.0.1:88;
     proxy_set_header Host $host;
   }
 
(2)wordpress的后台:   ls /data/blog/wp-admin/
location /wp-admin/ {
     allow 白名单
     deny all;
     location ~ .php$ {
               proxy_pass http://127.0.0.1:88;
               proxy_set_header Host $host;
     }
}
 
10、phpadmin整个站点需要配置用户认证
(1)vim pma.conf
location / { 
     auth_basic "Auth";
     auth_basic_user_file /usr/local/nginx/conf/htpasswd;
}
 
(2)/usr/local/apache2/bin/htpasswd -c /usr/local/nginx/conf/htpasswd ljy
(3)重新加载,并访问
curl -x127.0.0.1:80 pma.abc.com
curl -x127.0.0.1:80  -uljy:123456  pma.abc.com
401:代表需要输入用户名和密码
 
11和12都在db机器上操作
11、写一个mysql备份的脚本,每天5点执行,需要远程拷贝到web机器上
(1)脚本 scriptname 内容
/usr/local/mysql/bin/mysqldump -uroot db1 > /home/db1.sql
/usr/local/mysql/bin/mysqldump  -uroot db2 > /home/db2.sql
rsync /home/*.sql  远程web机器ip/data/mysqlbak/
 
(2)加入到任务列表  
* 5 * * *  /bin/bash  scriptname
 
12、mysql服务器开启慢查询日志
my.cnf 的 mysqld 模块中添加
超过1秒就记录慢查询日志:long_query_time = 1 
定义日志路径:                log_slow_queries = /data/mysql/slow.log
 
 
13、把除了百度、google外的其他常见搜索引擎蜘蛛封掉,比如(bingbot/2.0、Sogou web spider/4.0、360Spider、YisouSpider、YandexBot/3.0)(nginx)
   
     if ($http_user_agent ~‘bingbot/2.0|MJ12bot/v1.4.2|Spider/3.0|YoudaoBot|Tomato|Gecko/20100315‘) {
          return 403;
    }
 
 

nginx动静分离配置(代码片段)

Nginx动静分离一、动静分离介绍动静分离,通过中间件将动态请求和静态请求进行分离通过中间件将动态请求和静态请求分离,可以减少不必要的请求消耗,同时能减少请求的延时。通过中间件将动态请求和静态请求... 查看详情

部署lamp动静分离(代码片段)

...式。所谓LAMP?LAMP架构是目前最成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境。与之并肩的还有LNMP、LTMP等,LAMP说白了就是Linux操作系统上安装Apache网站服... 查看详情

nginx动静分离工作原理

参考技术Anginx动静分离的本质其实还是location规则的匹配,例如我下面这个示例:当url匹配到/static时,就请求静态文件,匹配不上就正常解析。 查看详情

nginx---动静分离(代码片段)

Nginx---动静分离Nginx与Tomcat部署环境准备(Tomcat)环境准备(Nginx)动静分离需求分析动静分离实现步骤Nginx实现Tomcat集群搭建Nginx与Tomcat部署我们都知道了Nginx在高并发场景和处理静态资源是非常高性能的,但是在实际项目中除了静... 查看详情

动静分离

动静分离文件的目录写成绝对路径搭lnmp至少需要两个location过滤静态与动态,那么把root放在location外面,代表location共享(那么就比location大一级那么相当于每个location都可以共享这个root)创建www目录./configure--prefix=/usr/local/php5.3.... 查看详情

nginx动静分离

    nginx动静分离实验环境:服务器端nginx:192.168.9.63  xuegod63.cnweb服务器 httpd:192.168.9.64:80      xuegod64.cn     静态服务器st 查看详情

动静分离

1.案例背景通过Nginx实现动静分离,即通过Nginx反向代理配置规则实现让动态资源和静态资源及其他业务分别由不同的服务器解析,以解决网站性能、安全、用户体验等重要问题。 2.需求分析当用户请求www.xindaichina.cn/upload/xx地... 查看详情

nginx实现动静分离案例(代码片段)

1、什么是动静分离? Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面ÿ... 查看详情

nginx实现动静分离(代码片段)

nginx实现动静分离在生产环境中,nginx的图片相关的静态信息是存放在专用的存储服务器上,然后通过挂载让nginx来读取文件。serverIPnginx172.20.27.10http1172.20.27.20http2172.20.27.21nfs172.20.27.22nginx服务器做为反向代理来实现动静分离nginx服... 查看详情

聊一聊nginx负载均衡+正/反向代理+动静分离

聊一聊nginx负载均衡+正/反向代理+动静分离 查看详情

nginx实现动静分离负载均衡(代码片段)

nginx实现动静分离负载均衡文章目录nginx实现动静分离负载均衡ip环境和作用192.168.207.131lnmp实际提供web服务192.168.207.137nginx负责任务的分配192.168.207.136httpd实际提供web服务[root@nginx]#cd/usr/local/nginx/conf[root@nginxconf]#vimnginx.confh 查看详情

centos7.3部署lamp架构动静分离(代码片段)

...式。所谓LAMP?LAMP架构是目前最成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境。与之并肩的还有LNMP、LTMP等,LAMP说白了就是Linux操作系统上安装Apache网站服... 查看详情

haproxyacl及动静分离

一、haproxyACL说明二、haproxy动静分离一、haproxyACL说明1.1.ACL作用使用访问控制列表(ACL)提供了灵活的解决方案来执行内容切换,并且通常基于从请求中提取的内容,响应或任何环境状态来做出决定。也就是,ACL能分析请求的内... 查看详情

haproxy实现动静分离

环境背景:CentOS7.2实验拓扑图:650)this.width=650;"src="http://s3.51cto.com/wyfs02/M01/8A/58/wKiom1gtoY-B_OGRAAD8ZpLHDyg556.jpg"title="HAProxy动静分离.jpg"alt="wKiom1gtoY-B_OGRAAD8ZpLHDyg556.jpg"/>实验配置:静态服务器Nginx主机配 查看详情

haproxy动静分离

...器,如果是动态的请求就转发给静态服务器,haproxy实现动静分离是通过acl匹配规则来实现这一目的。650)this.width=650;"src="https://s3.51cto.com/wyfs02/M00/9C/7 查看详情

企业级应用服务动静分离(代码片段)

此处只贴出实现代码背景:通过Nginx实现7层动静分离,即通过Nginx反向代理配置规则实现让动态资源和静态资源及其他业务分别由不同的服务器解析。测试机器准备工作7层动静分离案例负载均衡lb01[[email protected]~]#cat/application... 查看详情

动静分离,提高网页访问速度

...了,怎么地,打我呀。。。。哈哈     动静分离,那么什么动态的,什么是静态的呢?     访问网页的时候,我们总会发现浏览器会加载各种各 查看详情

haproxy+lamp动静分离

实验目的:为了减轻后端服务器的承载量,使用HAProxy做动静分离,将动态资源放在动态web组中,静态资源放在static组中,图片放在imageserver中,数据库单独用一台服务器。网络拓扑图配置HAProxy服务器~]# yum -y install ... 查看详情