Nginx配置伪静态
2021/12/13 7:22:02
本文主要是介绍Nginx配置伪静态,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 一.简介
- 二.配置
- 三.整体流程
- 四.更多
- 交给反向代理
- A机器没有的图片从B机器获得
一.简介
try_file用于伪静态。
正常的静态文件是一个xx.html文件,他是真实存在于服务器某个文件夹中的。动态网页是从数据库里查询,返回给浏览器的,实际上并没有这个文件,另外路径也很长。
伪静态优点:
缩短URL路径,更美观
URL路径短,容易被SEO收录,搜索排名靠前
隐藏了真实的访问路径,更安全
伪静态缺点:
与原生的url比较在性能上,不如原生的url,简单的说伪静态就是在服务器上又进行了一层url解析,消耗服务器资源。当然了这点消耗与优点相比,我们还是可以接受的。
下面是博客园中的一篇博客,地址是xx.html,让人看起来是一个html文件
这个是微信的一个文章的地址,后面的参数是文章在数据库中的位置,还有一些其它信息
二.配置
server { listen 80; server_name xxx.baidu.com; index index.html index.php; root /data/html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } }
try_files $uri $uri/ /index.php?$query_string
当访问http://www.baidu.com/3434.html 时,$uri就是3434.html,它会去本地的/data/html下面找3434.html。
如果没找到3434.html,就匹配$uri/,nginx会去/data/html找有没有这个目录。
如果还找不到就会匹配最后一个选项,/index.php?$query_string。发起一个内部 “子请求”,也就是相当于 nginx 发起一个 HTTP 请求http://www.baidu.com/3434.php 这个请求会被后面的location ~ .php$ 来匹配,当php程序解析完后,再返回给浏览器。
而具体的 URI 及参数是在 REQUEST_URI 中传递给 FastCGI 和 PHP 程序的,因此不受 URI 变化的影响。
三.整体流程
你在百度搜索一篇文章,右键复制链接地址,粘贴到笔记上,会发现链接非常的长。
https://www.baidu.com/link.php?wd=&eqid=e307e4f6000029fa000000035b864c15
当点击后,这篇文章所在的服务器,会try_files $uri $uri/ /index.php?$query_string;
,首先匹配是否是xx.html,明显不是,但也不是文件夹,那就交给fastcgi,转而交给php-fpn去操作。
php看到里面写的是去数据库查询一个id号为e307e4f6000029fa000000035b864c15的文章,就将文章提取后发给浏览器,并取名叫3434.html,这个只是显示,并不存在。
四.更多
交给反向代理
如果后端不是php而是反向代理则:
location / { #直接匹配最后面的,不去寻找了 try_files /_not_exists_ @backend; } location @backend { proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; #后端程序地址 proxy_pass http://127.0.0.1:8181; }
A机器没有的图片从B机器获得
server { #访问图片文件,这里做解析 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ { root /img; #指定图片所在目录 try_files $uri $uri/ @backend; #当图片不存在,会尝试交给@backend来获取图片 } location @backend { #反向代理给图片服务器 proxy_pass http://192.168.2.166; #图片服务器可以获取图片 } }
这篇关于Nginx配置伪静态的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享