通过Nginx访问静态页面

转载请标明出处^_^
原文首发于:www.zhangruibin.com
本文出自于:RebornChang的博客

nginx的用途

  1. 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲;
  2. 无缓存的反向代理加速,简单的负载均衡和容错;
  3. FastCGI,简单的负载均衡和容错;
  4. 模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 Fast CGI 或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待;
  5. 支持 SSL 和 TLSSNI。

nginx优点

轻量、高性能、并发能力强。用来部署静态页面也是相当便捷。

动静分离的好处

当我们访问一些系统的时候,往往是页面发起一个请求,这个请求指定到我们的项目,然后由项目去根据request进行路径的路由寻址。但是系统有时候会有很多的静态资源需要访问,如果都通过项目去路由寻址有几点坏处:
1.静态资源堆积,增加了项目包大小;
2.造成大量线程开销。
etc
所以,通用的解决办法是把静态资源单独放置,使用nginx做代理,这样就可以直接对静态资源进行访问而不需要通过系统,大大的减少了系统的负载。
那有没有坏处?有。
1.任何人都可以根据资源路径进行访问,容易受到恶意攻击;
2.容易造成静态资源泄露。

linux上准备nginx环境

具体的准备nginx环境这里不再重复说了,可以参考链接 :
连接

准备静态资源

将静态资源长传至服务器,博主是将一个静态页面及静态页面所需要用的js以及css和图片,上传到了nginx的安装目录下 路径为/usr/local/nginx/template,然后就可以配置nginx.conf文件了。
上传后静态资源目录树如下所示:

[root@zhrb template]# tree ka
ka
├── css
│   ├── index.css
│   └── reset.css
├── images
│   ├── 1.png
│   ├── 2.png
│   ├── 3.png
│   ├── 4.png
│   ├── background.png
│   ├── banner.png
│   ├── w-1-1.png
│   ├── w-1-2.png
│   ├── w-2-1.png
│   ├── w-2-2.png
│   └── w.png
├── index.html
└── js3 directories, 14 files

配置nginx

最简单的配置


server {listen 80 ;# 监听本机所有 ip 上的 80 端口server_name _  ;# 域名:www.example.com 这里 "_" 代表获取匹配所有root /usr/local/nginx/template;# 站点根目录index index.html;
}

其他类型配置1

server {listen 80;        # 监听本机所有 ip 上的 80 端口server_name _;      # 域名:www.example.com 这里 "_" 代表获取匹配所有#server_name temp.zhangruibin.com www.temp.zhangruibin.com;在域名解析处增加一个二级子域名解析,可以使用域名直接访问静态资源,效果如下图所示;root /usr/local/nginx/template;  # 站点根目录location =/temp {       # 可有多个 location 用于配置路由地址try_files index.html =404;}
}

这里的 root 字段最好写在 location 字段的外边,防止出现无法加载 css、js 的情况。因为 css、js 的加载并不是自动的,nginx 无法执行,需要额外的配置来返回资源。

此时直接访问服务器IP就可以访问到静态页面了。

其他类型配置2

server {  listen    80;#端口号  server_name localhost;#本机  charset utf-8;  #access_log logs/host.access.log main;  location ~ .*\.(gif|jpg|jpeg|png)$ {  expires 24h;  root /usr/local/nginx/template/images/;#指定图片存放路径  access_log /usr/local/images.log;#日志存放路径  proxy_store on;  proxy_store_access user:rw group:rw all:rw;  proxy_temp_path     /local/images/;#图片访问路径  proxy_redirect     off;  proxy_set_header    Host 127.0.0.1;  client_max_body_size  10m;  client_body_buffer_size 1280k;  proxy_connect_timeout  900;  proxy_send_timeout   900;  proxy_read_timeout   900;  proxy_buffer_size    40k;  proxy_buffers      40 320k;  proxy_busy_buffers_size 640k;  proxy_temp_file_write_size 640k;  if ( !-e $request_filename)  {  proxy_pass http://127.0.0.1;#默认80端口  }  }   location / {  root  /usr/local/nginx/template; #html访问路径 index index.html ; #html文件名称 }}

重载nginx配置文件

nginx安装目录下,sbin目录里面执行:

./nginx -s reload

nginx常用命令

1. 启动 Nginxpoechant@ubuntu:sudo ./sbin/nginx2. 停止 Nginxpoechant@ubuntu:sudo ./sbin/nginx -s stop
poechant@ubuntu:sudo ./sbin/nginx -s quit-s都是采用向 Nginx 发送信号的方式。3. Nginx 重载配置sudo ./sbin/nginx -s reload`上述是采用向 Nginx 发送信号的方式,或者使用:service nginx reload4. 指定配置文件sudo ./sbin/nginx -c /usr/local/nginx/conf/nginx.conf-c表示configuration,指定配置文件。5. 查看 Nginx 版本
有两种可以查看 Nginx 的版本信息的参数。第一种如下:/usr/local/nginx$ ./sbin/nginx -v
nginx: nginx version: nginx/1.0.0另一种显示的是详细的版本信息:poechant@ubuntu:/usr/local/nginx$ ./sbin/nginx -V
nginx: nginx version: nginx/1.0.0 nginx: built by gcc 4.3.3 (Ubuntu 4.3.3-5ubuntu4)
nginx: TLS SNI support enabled
nginx: configure arguments: --with-http_ssl_module --with-openssl=/home/luming/openssl-1.0.0d/6. 检查配置文件是否正确/usr/local/nginx$ ./sbin/nginx -t
nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied)
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok 2012/01/09 16:45:09 [emerg] 23898#0: open() "/usr/local/nginx/logs/nginx.pid" failed (13: Permission denied)
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed如果出现如上的提示信息,表示没有访问错误日志文件和进程,可以sudo(super user do)一下:poerchant@ubuntu:/usr/local/nginx$ sudo ./sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful如果显示如上,则表示配置文件正确。否则,会有相关提示。7. 显示帮助信息poechant@ubuntu:/user/local/nginx$ ./sbin/nginx -h或者:poechant@ubuntu:/user/local/nginx$ ./sbin/nginx -?

(如侵删)
亲,博主的微信公众号

‘程序员小圈圈’开始持续更新了哟~~

长按图片识别二维码或者微信扫描二维码或者直接搜索名字 ‘CXYXQQ’ 即可关注本公众号哟~~

不只是有技术哟~~

还可以学下教育知识以及消遣娱乐哟~~

求关注哟~~

通过Nginx访问静态页面相关推荐

  1. nginx访问静态文件不下载

    1.什么是MIME-TYPE? MIME--Multipurpose Internet Mail Extension(多用途因特网邮件扩展)最初是为了满足电子邮件支持多字符集及附件而出现的.MIME ...

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

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

  3. nginx访问静态文件

    1. 访问一个文件 server {listen 80;server_name file.one.cn;access_log /Users/xiaoming/Documents/nginxlog/fi ...

  4. nginx访问静态资源

    nginx访问静态资源 打开nginx配置文件 1 打开 nginx.conf 文件 2 修改 nginx.conf 内容 只需修改成或者添加一个location,就可以访问 html路径下所有文件了 ...

  5. Spring Boot 访问静态页面!

    SpringBoot访问静态页面 一.静态页面放在templates下面(多个页面可以添加相应的文件夹,方便管理): 二.配置Controller 这里有两点值得注意: 其一:类注解不能用RestCo ...

  6. Nginx设置静态页面压缩和缓存过期时间的方法 (转)

    使用nginx服务器的朋友可能都知道需要设置html静态页面缓存与页面压缩与过期时间的设置了,下面我来给各位同学介绍一下配置方法,包括对ico,gif,bmp,jpg,jpeg,swf,js,css, ...

  7. docker 安装git_docker随手笔记第十二节 jenkins+docker+nginx+纯静态页面配置

    docker随手笔记第一节 docker概念及安装 docker随手笔记第二节 docker常用命令解析 docker随手笔记第三节 docker构建java镜像 docker随手笔记第四节 dock ...

  8. docker nginx配置_docker随手笔记第十二节 jenkins+docker+nginx+纯静态页面配置

    docker随手笔记第一节 docker概念及安装 docker随手笔记第二节 docker常用命令解析 docker随手笔记第三节 docker构建java镜像 docker随手笔记第四节 dock ...

  9. SpringMVC访问静态页面

    Spring MVC显示静态页面 在前面搭建spring MVC环境时,我们设置了spring-mvc配置,通过tomcat来访问了index.jsp  页面,但是当我将页面换成.thml的静态面之后 ...

最新文章

  1. 第一课.深度学习简介
  2. SQL备份与恢复之备份类型和选项
  3. 小师妹学JavaIO之:用Selector来发好人卡
  4. jays+android耳机,android – 响应多按钮有线耳机
  5. linux的基础知识——捕捉SIGCHLD、信号传参,中断系统调用
  6. js 的正则表达式 部分展示test()方法的验证功能
  7. (8)Verilog include 头文件使用路径(FPGA不积跬步101)
  8. 本年度读书计划-看几本必须好好琢磨的书
  9. rx590 黑苹果 无货_黑苹果配置挑选,教你组装一台苹果机
  10. idea2021设置代码字体大小
  11. 微信公众号-百度通用翻译API接入文档
  12. 如何将三维模型移动到真实位置
  13. Python web框架之tornado(龙卷风)
  14. python 做深度学习时偶遇的 (0xC0000409)错误
  15. 学写网页 #05# CSS Mastery 笔记 1~3
  16. Linux之端口映射
  17. 队列 front rear
  18. 个人计算机也可称为,个人计算机简称为PC机,这种计算机属于什么?
  19. dell 服务器面板显示屏,Dell服务器面板错误码详解
  20. 孪生素数问题——素数(质数)指的是不能被分解的数,除了1和它本身之外没有其他数能够整除。如果两个素数之差为2,则这两个素数就是孪生素数,例如3和5为孪生素数,。找出1-100之间的所有孪生素数。

热门文章

  1. ASP.NET2.0数据操作之母板页和站点导航
  2. 一键将手机投屏到电脑上玩,这下摸鱼更方便了
  3. iOS开发——BAT网易笔试面试题参考答案
  4. 笔记本win10正在更新怎么关闭计算机,教你win10如何关闭自动更新
  5. 微信自定义分享的那些坑!
  6. 英文文献翻译成中文,推荐哪个软件?
  7. 微信小程序Swiper组件轮播图片尺寸填坑
  8. Win7下eclipse ADT调试cocos2dx-lua工程
  9. SHA与MD5算法的区别
  10. DiskGenius清除分区空闲空间后硬盘满了