Ngixn动静分离详细配置方法

Ngixn动静分离详细配置方法目录前言:准备工作一.静态主机配置二.动态主机配置三.动静分离配置四.配置文件目录结构五.测试前言:  为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。在动静分离的tomcat的时候比较明显,因为tomcat解析静态很慢,其实这些原理的话都很好理解,简单来说,使用正则表达式匹配过滤,然后交给不同的服务器。  静态页面一般直接由Nginx来处理,动态页面则是通过反向代理,代理到后端的Tomcat,然后在做负载均衡,是选择本地静态页面,还是后

大家好,又见面了,我是你们的朋友全栈君。

前言:

  为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。 在动静分离的tomcat的时候比较明显,因为tomcat解析静态很慢,其实这些原理的话都很好理解,简单来说,使用正则表达式匹配过滤,然后交给不同的服务器。
  静态页面一般直接由Nginx来处理,动态页面则是通过反向代理,代理到后端的Tomcat,然后在做负载均衡,是选择本地静态页面,还是后端Tomcat,这由负载均衡配置决定。
  动静分离是在负载均衡后做的,例如静态wbe有多台,动态web有多台,先动静分离,然后在各自集群里做负载均衡、权重等。
在这里插入图片描述


准备工作

系统:Centos7
Nginx版本: 1.18.0
地址:10.8.161.75
测试机系统:win10
地址:10.8.161.61(同一局域网)
Nginx代理主机端口:80
静态主机端口:91、92、93、94、95
动态主机端口:96、97


一.静态主机配置

  1. server1配置如下 , 其他四台配置类似
vim /etc/nginx/conf.d/server1.conf  # 在子配置文件中创建第一台配置
### 配置如下 ###
server { 
   
        listen       91;     #定义端口为 91 端口,其他四台静态主机更换端口
        server_name  10.8.161.75;
        location / { 
   
                  root   /var/www/nginx/server1;   # 指定网页目录,其他四台静态主机自定义更换
                  index  index.html index.htm;     # 指定访问的网页,其他四台静态主机自定义更换
                  limit_rate  2k;                                                                                                       
                 }
     }

  1. 创建server1网页 , 其他四台配置类似
   vim /var/www/nginx/server1/index.html   # 配置文件中指定的目录
   
   ### 内容如下 ###
   111111111111
   

二.动态主机配置

  1. 安装PHP7.1
### 添加PHP 7.1 yum源 ###
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
### 添加PHP 升级源 ###
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
### yum安装PHP和运行的环境 ###
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

  1. 启动php服务,并设置开机自启
systemctl start php-fpm
systemctl enable php-fpm
  1. 创建动态主机配置,已php1为例,另一台配置类似
    ①主机配置文件
vim  /etc/nginx/conf.d/php.conf
server { 
   
        listen      96;
        server_name     localhost;
        location ~ \.php$ { 
   
                    root          /var/www/nginx/php;  #指定动态网站目录
                    fastcgi_pass   127.0.0.1:9000;    #指定访问地址
                    fastcgi_index  index.php;       #指定默认文件
                    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  #站点根目录,取决于root配置项
                    include        fastcgi_params;  #包含nginx常量定义
                        }
}

②创建php1网页 , 另外一台配置类似

 vim /var/www/nginx/php/index.php   #根据动态主机1指定的配置文件指定的目录和主页创建
### 内容如下 ### 
phphphphphphphp

三.动静分离配置

upstream jing { 
                       #设置静态主机池
    # ip_hash; #负载均衡算法,不添加默认是轮询状态
        server 10.8.161.75:91;     #指定静态主机
        server 10.8.161.75:92;    
        server 10.8.161.75:93;
        server 10.8.161.75:94;
        server 10.8.161.75:95;
}
 
upstream dong { 
                     #设置动态主机池
    # ip_hash; #负载均衡算法,不添加默认是轮询状态 
        server 10.8.161.75:96;   #指定动态主机
        server 10.8.161.75:97;
}

server { 
                            #代理主机配置
        listen 80;               #开启80端口 ,检查其他80端口,不要与其冲突
        server_name localhost;   #指定本机
        #动态主机 
        location ~ \.(php|jsp)$ { 
                                        # 使用正则匹配网页后缀,如果是动态页面,跳转到动态主机池下去寻找主机 
               proxy_pass  http://dong;                               # 指定动态主机池
             # proxy_set_header Host $http_host; # 真实服务器的地址,可以是ip也可以是域名和url地址
             # proxy_set_header X-Real-IP $remote_addr; # 启用客户端真实地址(否则日志中显示的是代理在访问网站)
             # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 记录代理地址
             # proxy_connect_timeout 30; # 后端服务器连接的超时时间发起三次握手等候响应超时时间
             # proxy_send_timeout 60; # 后端服务器数据回传时间,就是在规定时间之内后端服务器必须传完所有的数据
             # proxy_read_timeout 60; # nginx接收upstream(上游/真实) server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭。像长连接
                }
        #静态主机
          location  ~ .*\.(html|gif|jpg|png|bmp|swf|css|js)$  { 
          # 使用正则匹配网页后缀,如果是静态页面,跳转到静态主机池下去寻找主机 
               proxy_pass  http://jing;                               # 指定静态主机池
             # proxy_set_header Host $http_host; # 真实服务器的地址,可以是ip也可以是域名和url地址
             # proxy_set_header X-Real-IP $remote_addr; # 启用客户端真实地址(否则日志中显示的是代理在访问网站)
             # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 记录代理地址
             # proxy_connect_timeout 30; # 后端服务器连接的超时时间发起三次握手等候响应超时时间
             # proxy_send_timeout 60; # 后端服务器数据回传时间,就是在规定时间之内后端服务器必须传完所有的数据
             # proxy_read_timeout 60; # nginx接收upstream(上游/真实) server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭。像长连接
        }
}



四.配置文件目录结构

  1. 所有配置文件目录结构
    在这里插入图片描述

  2. 所有网页目录结构
    在这里插入图片描述


五.测试

  1. 当访问静态页面时
    在这里插入图片描述

  2. 当访问动态页面时
    在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136874.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstorm激活码2022linux【最新永久激活】2022.02.22

    (phpstorm激活码2022linux)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月1日
    1.9K
  • linux route源码,traceroute[通俗易懂]

    linux route源码,traceroute[通俗易懂]traceroute……….\traceroute-1.4a12……….\……………..\aclocal.m4……….\……………..\CHANGES……….\……………..\config.guess……….\……………..\config.sub……….

    2022年6月30日
    29
  • Mac基础操作教程:Mac电脑如何在录屏时录入声音?「建议收藏」

    Mac基础操作教程:Mac电脑如何在录屏时录入声音?「建议收藏」我们经常因为工作需要而对Mac电脑进行录屏操作,但有些新手用户录屏后发现,屏幕里没有声音,这是因为你没有打开麦克风,下面分享Mac电脑在录屏时录入声音教程。1、点击“启动台”,2、打开启动台里“其他”文件夹中的“截屏”,3、在屏幕下方,点击录制屏幕的图标;4、然后点击“选项”,在下拉菜单中选择“麦克风”;5、最后,点击“录制”按钮即可完成。以上就是小编给您带来的Mac基础操作教程:Mac电脑如何在录屏时录入声音,还有哪些关于Mac电脑的操作问题,欢迎来交流。Mac软件资源下载站http

    2022年4月30日
    86
  • pytest fixtures_pytest conftest.py文件

    pytest fixtures_pytest conftest.py文件fixture的优势Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:命名方式灵活,不局限于setup和teardown这几个命名conf

    2022年7月31日
    10
  • 加密原理详解:对称式加密 VS 非对称式加密[通俗易懂]

    加密原理详解:对称式加密 VS 非对称式加密[通俗易懂]一、前言在了解加密原理前,我们来看看这样一个故事。小红和小明是情侣,一天,小红给小明发短信说:“亲爱的,我银行卡上没有钱了,你给我转1万块吧。”有过上当受骗经历的人都知道这有可能是小偷偷了小红手提包,然后拿手机发的短信。不过我们小明学过加密原理,于是他回复说:“你直接拿我的银行卡刷吧,密码加上我们第一次约会的日期就是663156。”很明显,只有小明和小红知道他们第一次约会是什么时候,假设是2008年4月1号,那么小红就可以根据计算663156-200841=462315得到银行卡密码,就可以消费了。这

    2022年5月6日
    43
  • python找出肇事者_犯交通肇事罪的量刑级

    python找出肇事者_犯交通肇事罪的量刑级抓交通肇事犯1.问题描述一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征。甲说:牌照的前两位数字是相同的:乙说:牌照的后两位数字是相同的,但与前两位

    2022年7月30日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号