• Nginx动静分离


    为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。 在动静分离的tomcat的时候比较明显,因为tomcat解析静态很慢,其实这些原理的话都很好理解,简单来说,就是使用正则表达式匹配过滤,然后交个不同的服务器。

    动静分离

    实质 :使用正则表达式,匹配过滤,交给不同的服务器

    优点 :把动态页面和静态页面分别由不同的服务器来解析,加快解析速度,降低单个服务器的压力

    环境准备

    静态资源配置(10.36.192.169)

    yum安装nginx

    1. 访问nginx的网站,nginx.org 进去找到nginx的yum源
    2. 在命令行输入
    3. echo '
    4. [nginx-stable]
    5. name=nginx stable repo
    6. baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    7. gpgcheck=1
    8. enabled=1
    9. gpgkey=https://nginx.org/keys/nginx_signing.key
    10. module_hotfixes=true
    11. [nginx-mainline]
    12. name=nginx mainline repo
    13. baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    14. gpgcheck=1
    15. enabled=0
    16. gpgkey=https://nginx.org/keys/nginx_signing.key
    17. module_hotfixes=true ' > /etc/yum.repos.d/nginx.repo
    1. 清理缓存,生成自己缓存,列出yum仓库
    2. yum clean all
    3. yum makecache
    4. yum repolist
    1. yum install yum-utils
    2. yum -y install nginx
    修改配置文件
    1. vim /etc/nginx/conf.d/default.conf
    2. server {
    3. listen 80;
    4. server_name localhost;
    5. location ~ \.(html|jpg|png|js|css|gif|bmp|jpeg) {
    6. root /usr/share/nginx/html;
    7. }
    8. }
    重启nginx
    1. nginx -t #检查配置的语法有无问题
    2. nginx -s reload #重载配置

    动态资源配置(192.168.20.135)

    yum安装php
    1. rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
    2. rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    3. yum install php71w-xsl php71w php71w-ldap php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath php71w-mcrypt -y
    4. yum install -y php71w-fpm
    5. systemctl start php-fpm
    6. systemctl enable php-fpm

    yum 安装nginx方法如上

    修改nginx配置文件
    1. vim /etc/nginx/conf.d/default.conf
    2. server {
    3. listen 80;
    4. server_name localhost;
    5. location ~ \.php$ {
    6. root /usr/local/nginx/html; #指定网站目录
    7. fastcgi_pass 127.0.0.1:9000; #指定访问地址
    8. fastcgi_index index.php; #指定默认文件
    9. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #站点根目录,取决于root配置项
    10. include fastcgi_params; #包含nginx常量定义
    11. }
    12. }
    重启nginx
    1. nginx -t
    2. nginx -s reload

    nginx代理机配置(192.168.20.134)

    修改nginx子自配置文件
    1. vim /etc/nginx/conf.d/default.conf
    2. upstream static {
    3. server 10.36.192.169 weight=1 max_fails=2 fail_timeout=2s;
    4. }
    5. upstream php {
    6. server 192.168.20.135 weight=2 max_fails=2 fail_timeout=2s;
    7. }
    8. server {
    9. listen 80;
    10. server_name localhost;
    11. location ~ \.php$ {
    12. proxy_pass http://php;
    13. proxy_set_header Host $host:$server_port;
    14. proxy_set_header X-Real-IP $remote_addr;
    15. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    16. }
    17. location ~ .*\.(html|gif|jpg|png|bmp|swf|css|js)$ {
    18. proxy_pass http://static;
    19. proxy_set_header Host $host:$server_port;
    20. proxy_set_header X-Real-IP $remote_addr;
    21. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    22. }
    23. }
    重启nginx
    1. nginx -t
    2. nginx -s reload

    客户端访问

       当访问静态页面的时候location 匹配到 (html|jpg|png|js|css|gif|bmp|jpeg) 通过转发到静态服务器,静态服务通过location的正则匹配来处理请求。
       当访问动态页面时location匹配到 .php 结尾的文件转发到后端php服务处理请求。

  • 相关阅读:
    构建一个WIFI室内定位系统
    Mock笔记
    JavaScript常用事件
    Mysql 索引
    使用beef劫持用户浏览器
    UG旋钮盖模具设计与加工
    yolov5 筛选正样本流程 代码多图详解
    远程访问及控制
    计算机常见I/O操作介绍、I/O操作优化提升程序性能方法(异步I/O、多线程和多进程、非阻塞I/O、I/O多路复用)
    Prometheus PromQL及传统部署 Alertmanager 发送告警
  • 原文地址:https://blog.csdn.net/m0_59933574/article/details/134043714