LANMP实现动静态分离以及负载均衡

10 篇文章 0 订阅
4 篇文章 0 订阅

环境:VWmare上配置的 ubuntu19.04 + mysql5.7.25 + php7.2 + nginx1.15.9 +apache2.4.38

目的:1、动静态分离:nginx处理css、js、jpg、png、html等静态资源,apache处理php动态文件

          2、负载均衡:将客户端的请求分发到不同的服务器上处理请求

一、安装环境:

root@ubuntu:~# apt-get install nginx
root@ubuntu:~# apt-get install php
root@ubuntu:~# apt-get install mysql
root@ubuntu:~# apt-get install apache

二、安装php扩展(按需安装,以下仅为部分)

root@ubuntu:~# apt-get install php7.2-gd
root@ubuntu:~# apt-get install php7.2-mysql
root@ubuntu:~# apt-get install php7.2-xml
root@ubuntu:~# apt-get install php7.2-redis
root@ubuntu:~# apt-get install php7.2-fpm

默认的nginx配置文件路径 /etc/nginx/nginx.conf

默认的nginx网站配置文件路径 /etc/nginx/sites-available/default

默认的nginx访问日志目录 /var/log/nginx/access.log

默认的 apache配置文件路径 /etc/apache/apache.conf

默认的apache网站配置文件路径 /etc/apache2/sites-available/000-default.conf

默认的apache访问日志目录 /var/log/apache/access.log

默认的mysql配置路径 /etc/mysql/mysql.conf.d/mysqld.cnf

默认的网站根目录 /var/www/html

三、部署网站。

(1)在网站之家上随便下载了一个企业站,解压后扔到网站目录 

root@ubuntu:~# cd /var/www/html
root@ubuntu:/var/www/html# mkdir test.locals.com
root@ubuntu:/var/www/html/test.locals.com# cd test.locals.com
root@ubuntu:/var/www/html/test.locals.com#wget http://tj.mycodes.net/201904/PHPOK5.2.060.zip
root@ubuntu:/var/www/html/test.locals.com#unzip PHPOK5.2.060.zip
root@ubuntu:/var/www/html/test.locals.com#cd ../
root@ubuntu:/var/www/html#chown -R www-data:www-data test.locals.com
root@ubuntu:/var/www/html#chmod -R 755 test.locals.com/

(2)创建并编辑nginx网站配置文件:nginx监听80端口

root@ubuntu:~# cd /etc/nginx/sites-available/
root@ubuntu:/etc/nginx/sites-available#cp default test.locals.com
root@ubuntu:/etc/nginx/sites-available#vim test.locals.com

#负载均衡start

upstream test_lanmp{
        server test.locals.com:8080 weight=1 max_fails=2 fail_timeout=30s;

        #server ........  #这里可设置多个目标地址
}

#负载均衡end
server {
        listen 80;
        listen [::]:80;

        root /var/www/html/test.locals.com;
        index index.html index.php;

        server_name test.locals.com;

        location / {
                try_files $uri $uri/ =404;
        }
        location ~ \.php$ {

                ip_hash;#没有做负载均衡的状态下注释此行

                #动静态分离start
                proxy_set_header Host $host:$server_port; #设置请求的头部中主机名为请求的主机名,而不是代理的nginx的主机名

                proxy_set_header X-Real-IP      $remote_addr;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://test_lanmp;                

                #proxy_pass http://test.locals.com:8080;#没有做负载均衡的状态下直接指定代理的url,如果没有做负载均衡,注释掉上一行,放行此行

                #动静态分离end
        }
}

(3)创建并编辑nginx网站配置文件:apache监听8080端口 

root@ubuntu:~# cd /etc/apache/sites-available/
root@ubuntu:~# cd /etc/apache/sites-available/
root@ubuntu:/etc/apache/sites-available# cp 000-default.conf test.local.com.conf
root@ubuntu:/etc/apache/sites-available# vim test.local.com.conf

<VirtualHost *:8080>
    ServerName test.locals.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/test.locals.com

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
 

(4)编辑hosts文件

root@ubuntu:~# vim /etc/hosts

 27.0.0.1    localhost
127.0.1.1    ubuntu
127.0.0.1    test.locals.com
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

四、重启服务。

root@ubuntu:~# nginx -t
root@ubuntu:~# service nginx restart
root@ubuntu:~# service apache restart

 五、查看结果。

在浏览器输入http://test.locals.com/和http://test.locals.com:8080,需要同时都可以访问才可以,否则请检查自己的网站配置

查看apache访问日志

root@ubuntu:~# cat /var/log/apache/access.log

127.0.0.1 - - [25/Apr/2019:02:44:50 -0700] "GET /index.php HTTP/1.0" 200 4648 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:51 -0700] "GET /index.php?c=js&ext=jquery.artdialog HTTP/1.0" 200 80204 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /api.php?c=cart&f=total&_=1556185491493 HTTP/1.0" 200 398 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:53 -0700] "GET /api.php?c=task&_=1556185491494 HTTP/1.0" 200 437 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"

 

查看nginx访问日志

root@ubuntu:~# cat /var/log/nginx/access.log

127.0.0.1 - - [25/Apr/2019:02:44:50 -0700] "GET / HTTP/1.1" 200 4177 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:51 -0700] "GET /css/artdialog.css HTTP/1.1" 200 3828 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:51 -0700] "GET /tpl/www/css/style.css HTTP/1.1" 200 11403 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:51 -0700] "GET /tpl/www/js/global.js HTTP/1.1" 200 5156 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:51 -0700] "GET /index.php?c=js&ext=jquery.artdialog HTTP/1.1" 200 79896 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:51 -0700] "GET /images/blank.gif HTTP/1.1" 200 43 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /res/201810/12/7eb2d67e0d6f4e4e.png HTTP/1.1" 200 21891 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /res/201811/16/c9a45ef2651293bb.png HTTP/1.1" 200 5613 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /res/_cache/thumb/10/1027.jpg HTTP/1.1" 200 11406 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /res/_cache/thumb/10/1021.jpg HTTP/1.1" 200 8170 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /res/_cache/thumb/10/1018.jpg HTTP/1.1" 200 15564 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /res/_cache/thumb/10/1015.jpg HTTP/1.1" 200 12138 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /res/_cache/thumb/10/1013.jpg HTTP/1.1" 200 11252 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /tpl/www/images/weixin.png HTTP/1.1" 200 6110 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /res/201812/03/a71542aeec072ffd.jpg HTTP/1.1" 200 66263 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /tpl/www/images/qq.png HTTP/1.1" 200 4208 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /tpl/www/images/to-top.png HTTP/1.1" 200 1333 "http://test.locals.com/tpl/www/css/style.css" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /api.php?c=cart&f=total&_=1556185491493 HTTP/1.1" 200 24 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:52 -0700] "GET /res/201603/22/572864921e9b72f0.jpg HTTP/1.1" 200 36248 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:53 -0700] "GET /api.php?c=task&_=1556185491494 HTTP/1.1" 200 15 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:53 -0700] "GET /res/201810/22/1d9863126a21fac2.png HTTP/1.1" 200 1289 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:54 -0700] "GET /images/loading.gif HTTP/1.1" 200 381 "http://test.locals.com/css/artdialog.css" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
127.0.0.1 - - [25/Apr/2019:02:44:55 -0700] "GET /res/201603/22/5c94d5a5d4729ee2.jpg HTTP/1.1" 200 126162 "http://test.locals.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"
 

由上可以看出来,nginx请求的是静态文件,而apache只处理后端。

关于负载均衡的请看另一篇文章ubuntu16.04 配置 nginx 简单负载均衡

至此,动静态分离和负载均衡配置完成。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值