Nginx动态、静态分离,Nginx配置中做适配
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配置中做适配相关推荐
- nginx动态php转发,Nginx 动态 upstreams 实现,nginxupstreams_PHP教程
服务器名,端口以及传递的URI也可以使用变量被指定: proxy_pass http://$host$uri; 甚至像这样: proxy_pass $request; 在这个案例中,服务器名会在所描述 ...
- nginx搭建静态文件服务器,Nginx 静态文件服务器搭建及autoindex模块解析
导读 文章重点讲述nginx静态服务器搭建 ngx_http_autoindex_module ngx_http_autoindex_module模块处理以斜杠字符('/')结尾的请求,并生成目录列表 ...
- Nginx以及通过Nginx实现tomcat集群配置与负载均衡
Nginx简介 启动,停止,和重新加载配置文件命令 Nginx功能 正向代理和反向代理的区别 反向代理 负载均衡 1.RR(默认) 2.权重 3.ip_hash 4.fair(第三方) 5.url_h ...
- nginx的动静分离
nginx的动静分离 nginx动静分离的原理 nginx的动静分离,指的是由nginx服务器对用户的请求进行分类转发,静态资源(html,css,js,images)由静态资源服务器处理(nginx ...
- 为什么用Nginx处理静态资源
从饭店说为什么用Nginx处理静态资源 什么是静态资源 什么是动态资源 开饭店的几个阶段 小饭店,单打独斗 客人变多,招服务员 一个大厨忙不过来,招大厨(乱入超纲) Nginx对静态资源的处理 大半夜 ...
- nginx代理静态资源
项目需求:网页响应过慢,需要nginx代理静态资源 安装nginx 参考了这篇博客进行安装:ubuntu上nginx详细安装部署教程 - 敲代码的椰子 - 博客园 但是他使用的安装包有些已经旧了,可以 ...
- 如何让 Nginx 动态负载均衡
一.什么是动态负载均衡 传统的 Nginx 负载均衡,是在 Nginx config 配置文件中,对 upstream 进行修改(扩展新服务器)进行,进行负载均衡,此时就需要让 Nginx 重启加载 ...
- 【网络编程】利用Nginx实现动静分离--分离动态请求和静态请求(Nginx+Tomcat)
文章目录 一.什么是动静分离 1.1 动静分离原理 1.2 Nginx实现动静分离的优势 二.动静分离的实现 2.1 先了解一下location语法 2.1.1 nginx模块 2.1.2 Nginx ...
- 前后端分离项目nginx搭建静态页面服务器cors做后台跨域接收前台请求
自己在闲暇时间里,无聊的我试着做了一个前后台分离的入门demo.在编写代码前通过查询百度,csdn,博学谷等做了一些准备工作,具体还只是做到前台发送的请求能顺利的发送到后端,时间仓促做的也有不足之处, ...
最新文章
- python学习day24 继承 派生
- memcache---mongodb---redis比较
- Oracle 的检查点队列 (checkpoint queue)
- ReentrantLock重入锁
- Lua语言学习-错误处理和调试
- vista下,怎么为一个程序设置UAC的例外?
- 移动硬盘在服务器上读不出来怎么办,移动硬盘无法识别的usb设备怎么办
- linux查看scsi设备id号,scsi_id查询
- 股市风起云涌,我用Python分析周期之道
- axi_ddr_top
- 未转变者3.x局域网服务器,未转变者局域网怎么创建服务器
- 进程调度时间计算方式
- nuScenes 数据集(CVPR 2020)
- 红米笔记本linux系统版本,一招让你的手机拥有三系统甚至四系统: WINDOWS+安卓+Linux...
- 美丽的汤 xlsx格式 csv 格式
- 基于深度学习的图像识别模型发展
- WebDAV之葫芦儿•派盘+麻雀记
- 千月影视v21 2023年新版 前端+后端+h5 无授权运营级 仅供学习研究使用
- linux运行wordcount,hadoop运行第一个实例wordcount
- 弘辽科技:淘宝店铺装修多少钱一个月?总共要多少钱?