Nginx[静态,动态]

页面是html,mp3,mp4,txt,doc,pdf
动态脚本语言:shell,PHP,java

一:       LNMP
(Linux+Nginx+MariaDB==mysql+PHP|Python)

在192.168.4.5
软件包列表:LNMP

实验1:部署LNMP环境

nginx[web服务,接收用户的请求]
php     [解释器]
yum -y localinstall php-fpm-5.4.16<tab> [服务]
mariadb                [数据库客户端]
mariadb-server [数据库服务器]
mariadb-devel  [依赖包]
php-mysql        [php连接mysql的扩展包]

启动所有服务:
nginx                                            启动[80]
systemctl start php-fpm        启动[9000]
systemctl start mariadb        启动[3306]

netstat -nutlp |grep 80 | 9000 |3306

实验2:Nginx动静分离

nginx[静态]
                    root html
                    nginx[动态]
                                        PHP:9000
    
判断,如果用户访问的是静态页面,则找到,直接返回
        如果用户访问的是动态页面,则转发给9000

location / {
                root html;
        }
        location ~ \.php$
            root  html;
            fastcgi_pass  127.0.0.1:9000;
            include fastcgi.conf;
    }

vim  /usr/local/nginx/html/test.php
<?php
phpinfo();
?>

常见问题:
1.出现下载页面 【配置文件中没有php转发】
2.File not found. 【转发设置不正确】[SELinux]
3.An error occurred.
    【转发给9000后,无响应,php未启动】

后台静态页面:

# vim /usr/local/nginx/conf/nginx.conf
server{#admin静态页面listen 80;server_name admin.abc.xxxxxx.com;access_log  logs/frontaccess.log  main;error_log   logs/fronterror.log;location ~ \.(html|js|css|png|jpg|gif|woff|woff2|ttf|apk|ipa)$ {root /usr/local/html/dist/;index index.html index.htm;}location ^~ /api/{proxy_pass http://127.0.0.1:10001/;}}

二 : 地址重写
     rewrite  正则   跳转后的URL [选项];

案例1:访问a.html跳转到b.html

vim /usr/local/nginx/conf/nginx.conf
... ...
    server {
            listen 80
            server_name localhost;
    location / {
            rewrite a.html /b.html  redirect;
    }
#echo "BB" > /usr/local/nginx/html/b.html
#nginx -s reload

案例2:访问192.168.4.5跳转到www.tmooc.cn
vim /usr/local/nginx/conf/nginx.conf
... ...
    server {
            listen 80
            server_name localhost;
    location / {
            rewrite ^/  http://www.tmooc.cn;
    }

附加:
访问旧的网站页面,跳转到新的网站相同页面
  rewrite ^/(.*)     http://www.jd.com/$1;
 保留和粘贴

案例2:不同浏览器访问相同页面返回结果不同

ie  http://192.168.4.5/test.html

firefox http://192.168.4.5/test.html

uc  http://192.168.4.5/test.html

nginx【内置变量】
vim /usr/local/nginx/conf/nginx.conf
  server {
        ... ...
    if ($http_user_agent ~* curl){                                          // 识别客户端curl浏览器
        rewrite ^/(.*)  /curl/$1;
    }   
#cd  /usr/local/nginx/html
#echo "1" >test.html
#mkdir curl
#echo "2" >curl/test.html
#nginx -s reload
firefox http://192.168.4.5/test.html
curl http://192.168.4.5/test.html

案例:如果用户访问的页面不存则转到首页
vim /usr/local/nginx/conf/nginx.conf
 server {
        ... ...
    if (!-e  $request_filename){
        rewrite ^/  http://192.168.4.5;
    }  
#nginx -s reload

rewrite 正则  URL [选项]
rewrite选项:
last        停止执行其他rewrite
break        停止执行其他rewrite,并结束请求
redirect    临时重定向
permament    永久重定向

三 : 生产环境中应用

PC端和手机端做适配:

# vim /usr/local/nginx/conf/nginx.conf
server{listen 80;server_name www.xxxxx.com;access_log  logs/indexaccess.log  main;error_log   logs/indexerror.log;location / {root /usr/local/html/dist/static/index/pc/;if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" ){root /usr/local/html/dist/static/index/mobile/;}index index.html index.htm;}}

四 :  Nginx 中做app 跳转下载

# vim /usr/local/nginx/conf/nginx.conf
server {listen       80;server_name  back.xxxxxx.com;access_log  logs/backaccess.log  main;error_log   logs/backerror.log;location / {proxy_http_version 1.1;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://127.0.0.1:10001;}}

Nginx动态、静态分离,Nginx配置中做适配相关推荐

  1. nginx动态php转发,Nginx 动态 upstreams 实现,nginxupstreams_PHP教程

    服务器名,端口以及传递的URI也可以使用变量被指定: proxy_pass http://$host$uri; 甚至像这样: proxy_pass $request; 在这个案例中,服务器名会在所描述 ...

  2. nginx搭建静态文件服务器,Nginx 静态文件服务器搭建及autoindex模块解析

    导读 文章重点讲述nginx静态服务器搭建 ngx_http_autoindex_module ngx_http_autoindex_module模块处理以斜杠字符('/')结尾的请求,并生成目录列表 ...

  3. Nginx以及通过Nginx实现tomcat集群配置与负载均衡

    Nginx简介 启动,停止,和重新加载配置文件命令 Nginx功能 正向代理和反向代理的区别 反向代理 负载均衡 1.RR(默认) 2.权重 3.ip_hash 4.fair(第三方) 5.url_h ...

  4. nginx的动静分离

    nginx的动静分离 nginx动静分离的原理 nginx的动静分离,指的是由nginx服务器对用户的请求进行分类转发,静态资源(html,css,js,images)由静态资源服务器处理(nginx ...

  5. 为什么用Nginx处理静态资源

    从饭店说为什么用Nginx处理静态资源 什么是静态资源 什么是动态资源 开饭店的几个阶段 小饭店,单打独斗 客人变多,招服务员 一个大厨忙不过来,招大厨(乱入超纲) Nginx对静态资源的处理 大半夜 ...

  6. nginx代理静态资源

    项目需求:网页响应过慢,需要nginx代理静态资源 安装nginx 参考了这篇博客进行安装:ubuntu上nginx详细安装部署教程 - 敲代码的椰子 - 博客园 但是他使用的安装包有些已经旧了,可以 ...

  7. 如何让 Nginx 动态负载均衡

    一.什么是动态负载均衡 传统的 Nginx 负载均衡,是在 Nginx config 配置文件中,对 upstream 进行修改(扩展新服务器)进行,进行负载均衡,此时就需要让 Nginx 重启加载 ...

  8. 【网络编程】利用Nginx实现动静分离--分离动态请求和静态请求(Nginx+Tomcat)

    文章目录 一.什么是动静分离 1.1 动静分离原理 1.2 Nginx实现动静分离的优势 二.动静分离的实现 2.1 先了解一下location语法 2.1.1 nginx模块 2.1.2 Nginx ...

  9. 前后端分离项目nginx搭建静态页面服务器cors做后台跨域接收前台请求

    自己在闲暇时间里,无聊的我试着做了一个前后台分离的入门demo.在编写代码前通过查询百度,csdn,博学谷等做了一些准备工作,具体还只是做到前台发送的请求能顺利的发送到后端,时间仓促做的也有不足之处, ...

最新文章

  1. python学习day24 继承 派生
  2. memcache---mongodb---redis比较
  3. Oracle 的检查点队列 (checkpoint queue)
  4. ReentrantLock重入锁
  5. Lua语言学习-错误处理和调试
  6. vista下,怎么为一个程序设置UAC的例外?
  7. 移动硬盘在服务器上读不出来怎么办,移动硬盘无法识别的usb设备怎么办
  8. linux查看scsi设备id号,scsi_id查询
  9. 股市风起云涌,我用Python分析周期之道
  10. axi_ddr_top
  11. 未转变者3.x局域网服务器,未转变者局域网怎么创建服务器
  12. 进程调度时间计算方式
  13. nuScenes 数据集(CVPR 2020)
  14. 红米笔记本linux系统版本,一招让你的手机拥有三系统甚至四系统: WINDOWS+安卓+Linux...
  15. 美丽的汤 xlsx格式 csv 格式
  16. 基于深度学习的图像识别模型发展
  17. WebDAV之葫芦儿•派盘+麻雀记
  18. 千月影视v21 2023年新版 前端+后端+h5 无授权运营级 仅供学习研究使用
  19. linux运行wordcount,hadoop运行第一个实例wordcount
  20. 弘辽科技:淘宝店铺装修多少钱一个月?总共要多少钱?

热门文章

  1. 安装acdsee 3.1后出错
  2. 物联网的发展之—Vecloud微云
  3. IEC104协议规约解析
  4. 基于BootstarbTable实现加载更多的方式
  5. java selenium验证元素是否存在
  6. TCP/IP协议三次握手流程
  7. WITH AS【原创】
  8. 山西DOT NET俱乐部
  9. 人脸识别入侵生活,但“刷脸”背后你的信息安全吗?
  10. 浏览器和搜索引擎的区别