关于如何快速调教Nginx的几点总结

关于Nginx的好与坏,我觉得没有必要去介绍了,在这里主要分享一下我在实际的项目部署中是如何快速的调教Nginx的。其中分享的源码大家可以作为模板代码,根据自身项目的实际情况,酌情使用。

这里简单的说一说我为什么要写这篇文章,网上有很多大而全的文章在介绍Nginx是什么,如何入门等等,玩了很多的文字游戏,反正我接触Nginx的时候,去查阅文档给我的是这种感觉,大而全,但是很乱。这里我要讲的不是Nginx的理论知识,而是一些能够快速的应用到项目中的实际技巧。废话就说这么多,开始本次分享的主体。

调教一:开启GZIP,提高页面加载速度

http:{ ...  gzip on; gzip_min_length 10; gzip_comp_level 4; gzip_disable "MSIE [1-10] ."; gzip_types text/plain appliaton/x-javascript text/css application/xml image/jpeg image/gif image/png image/svg+xml;  ...}

gzip on开启gzip压缩功能gzip_min_lenght 10压缩临界值,大于10KB的文件才压缩gzip_com_level 4设置压缩级别[0-10],数字越大,压缩比越好,但消耗的时间越长gzip_desable "MSIE [1-10]."对IE浏览器不采用压缩,[1-10]表示浏览器版本范围gzip_types需要进行文件压缩的类型,根据自身情况酌情添加

一般情况下,关于gzip的配置,设置以上几个参数就可以了

调教二:无www的域名跳转到带www的域名

server{ listen 80; server_name http://youdomain.com; return 301 http://www.youdomain.com$request_uri;}

针对自己的域名,配置一个全局的server,对裸域名的请求进行转发,注意要加上“$request_uri”

网上有关这个问题提供了另外一种解决办法,代码如下:

server{ listen 80; server_name www.youdomain.com; if ( $host !='www.youdomain.com'){ rewrite ^/(.*)$ http://www.youdomain.com/$1 permanent; } rewrite ^/(.*)$ http://$host$1 permanent;}

我在自己的项目中使用第二种方式进行配置,貌似没有生效,所以改为了第一种配置方式

调教三:配置https

关于如何配置server(http)这里不再介绍,网上相关文档很多,这里主要分享如何在Nginx中配置HTTPS,配置代码如下:

server{ listen 443 ssl; server_name www.youdomain.com; access_log logs/com_youdomain_logs.log;  ssl_certificate c:/sslfile/cert.crt; ssl_certificate_key c:/sslfile/cert.key;  ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m;  location /{ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-real-IP $remote_addr; proxy_set_header X-Forwarded-proto $scheme;  proxy_connect_timeout 240; proxy_send_timeout 240; proxy_read_timeout 240; proxy_pass http://localhost:8080; proxy_redirect ~^http://([^:]+)(:d+)?(.*)$ https://$1$3;  }}

这里需要注意几个地方:

  • 监听的端口由原来的80或者其他(通常是80端口)改为 443 ssl 。
  • ssl_certificate配置HTTPS证书放置的路径,ssl_certificate_key 放置HTTPS证书的秘钥路径。
  • ssl_session_cache配置HTTPS的缓存,ssl_session_timeout配置HTTPS缓存的生命周期。
  • 在location配置中,proxy_set_header部分的代码是一个固定用法,不进行介绍。
  • proxy_connect_timeout,proxy_send_timeout和proxy_read_timeout主要配置在HTTPS下建立请求连接、发送数据和读取数据的时间上线(超时处理)
  • proxy_pass设置Nginx需要代理的请求对象,如http://localhost:8080 ,这里需要web容器配置,在接下来会单独介绍
  • proxy_redirect设置代理后的请求转发重定向:~^http://([^:]+)(:d+)?(.*)$ https://$1$3; 将http请求重定向到https上。

要实现https加密请求,还需要web容器的配合,在这里以Apache Tomcat配置为例进行介绍。

调教三:开启tomcat对https请求的支持

在上一小节中,我们对server的代理做了如下的配置:

server{ ... location /{ ... proxy_pass http://localhost:8080; ... } ...}

首先,我们需要将tomcat的连接器(Connector)的端口设置为8080,将转发重定向的端口(redirectPort)和代理端口(proxyPort)设置为443。具体的配置代码如下:

......

然后,需要在Host配置中设置remoteIpHeaderprotocolHeaderprotocolHeaderHttpsValue这三个属性的值,详细配置如下:

...... ... ...

以上就是就是Nginx+tomcat的组合方式开启https请求的调教过程。

作者:谭朝红

lsdyna如何设置set中的node_list_关于如何快速调教NGINX的几点总结相关推荐

  1. lsdyna如何设置set中的node_list_详解MySQL数据库如何实现类似Oracle的序列?

    概述 众所周知,Oracle一般使用序列(Sequence)来处理主键字段,而MySQL则提供了自增长(increment)来实现类似的目的. 不过小编在实际使用过程中发现,MySQL的自增长有诸多的 ...

  2. lsdyna如何设置set中的node_list_如何为3CX配置Gigaset N670 N870 IP PRO

    支持的型号:Gigaset DECT系列和无绳话机 Gigaset DECT系列 Gigaset N670 IP PRO-最低固件版本2.16.2 Gigaset N870 IP PRO-最低固件版本 ...

  3. lsdyna如何设置set中的node_list_为 Windows PowerShell 设置 User Alias (命令别名)

    本文章转自个人博客 https://blog.vvzero.com, 转载请注明出处. 直接看步骤的话,在最下方. 背景 Windows Terminal 虽然还处于预览阶段,但是也出来很长一段时间了 ...

  4. lsdyna如何设置set中的node_list_如何理解vue的双向绑定

    vue前端框架,已经越来越多的在各大小型公司被使用,其相对于其他两大框架的优点是上手容易,数据交互友好,不担心dom操作,渐进式框架适合开发者自己的需求.对于vue来说,最重要的概念无非是数据的双向绑 ...

  5. lsdyna如何设置set中的node_list_如何快速掌握es6+新特性及核心语法?

    国庆刚刚结束,我们开始一波新的学习进程吧. ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.作为前端必备技能,我们来快速开始吧 接 ...

  6. lsdyna如何设置set中的node_list_如何使用定速巡航功能 图文解说一看就会!

    定速巡航系统可以对车辆进行设置,使车辆以设定的车速恒速行驶.特别是在高速路上长距离行驶时,可以解放驾驶员的右脚,降低驾驶员的疲劳感.同时,由于车辆以恒定的车速行驶,减少了车速的变化,可以有效的提升燃油 ...

  7. lsdyna如何设置set中的node_list_如何安装使用最帅Linux系统监控工具

    作者:Linux迷 链接:https://www.linuxmi.com/netdata-ubuntu.html Netdata是一个免费的开源实时监视和故障排除工具,用于云服务器,容器,应用程序和本 ...

  8. lsdyna如何设置set中的node_list_技术成长日记-Vim-3.Vim中重要的概念

    3.1 配置文件.vimrc或_vimrc .vimrc文件是个人定制Vim的脚本文件,该文件中的每一行都会被当作Ex命令在Vim进行初始化的时候执行.一般在类Unix系统中把该文件存放在$HOME/ ...

  9. lsdyna如何设置set中的node_list_如何使用Python处理HDF格式数据

    HDF也是一种自描述格式文件,主要用于存储和分发科学数据.气象领域中卫星数据经常使用此格式,比如MODIS,OMI,LIS/OTD等卫星产品.对HDF格式细节感兴趣的可以Google了解一下. 这一次 ...

最新文章

  1. CS研究笔记-缓存 (转)
  2. 3D目标检测多模态融合算法综述
  3. 大脑奖获得者Peter Dayan:生物决策机制为生存铺路,预编程是本能!
  4. 《迷人的8051单片机》----3.4 程序
  5. .sh文件是什么语言_shell命令在C语言程序中的调用
  6. Centos5.5安装使用Xen
  7. python-random种子
  8. python应用实例论文_浅谈Python在科学计算中的应用
  9. 翻译自 RedHat 文章:What is middleware? (什么是中间件?)
  10. 中国体声波器件市场趋势报告、技术动态创新及市场预测
  11. android google snake
  12. jpa oracle 传参int类型判空_SQL查询:Oracle、mysql、HQL查询语句差异
  13. SQL基础语句汇总-学习
  14. Java判断合数或素数
  15. Android 多语言切换
  16. 台式计算机主机内置喇叭不响,台式机扬声器没声音怎么样解决
  17. java爬网页图片到本地
  18. c语言数组中逗号的作用,c语言练习(4)--逗号分割字符串形成二维数组
  19. 电商o2o系统开发原理和解决方案你get了吗?
  20. 【Unity】游戏打包

热门文章

  1. 原生H5实现网易云轮播图
  2. hp计算机指纹功能用法,惠普笔记本电脑指纹登录教程(图文)
  3. html怎么设置视频不能快进,【浏览器插件】Video Speed Controller – 网页视频倍速、快进、回放功能0.07~16 倍...
  4. 2023年上半年软考报考指南~
  5. Android中级控件介绍(五)
  6. Word教程-给10以上的数字加个圈圈!
  7. 首个可用于深度学习的ToF相关数据集!基于置信度的立体相机以及ToF相机深度图融合框架...
  8. 中通快递关键业务和复杂架构挑战下的 Kubernetes 集群服务暴露实践
  9. 大数据学习之Hive
  10. Elemet-UI 中利用穿梭框对表格列进行动态设置