关于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需要进行文件压缩的类型,根据自身情况酌情添加
调教二:无www的域名跳转到带www的域名 server{ listen 80; server_name http://; return 301 http://www.$request_uri;}
网上有关这个问题提供了另外一种解决办法,代码如下: server{ listen 80; server_name www.; if ( $host !='www.'){ rewrite ^/(.*)$ http://www./$1 permanent; } rewrite ^/(.*)$ http://$host$1 permanent;}
调教三:配置https 关于如何配置server(http)这里不再介绍,网上相关文档很多,这里主要分享如何在Nginx中配置HTTPS,配置代码如下: server{ listen 443 ssl; server_name www.; 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; }} 这里需要注意几个地方:
要实现https加密请求,还需要web容器的配合,在这里以Apache Tomcat配置为例进行介绍。 调教三:开启tomcat对https请求的支持 在上一小节中,我们对server的代理做了如下的配置: server{ ... location /{ ... proxy_pass http://localhost:8080; ... } ...} 首先,我们需要将tomcat的连接器(Connector)的端口设置为8080,将转发重定向的端口(redirectPort)和代理端口(proxyPort)设置为443。具体的配置代码如下: ...<Connector prot='8080' protocol='HTTP/1.1' connectionTimeout='20000' redirectPort='443' proxyPort='443'/>... 然后,需要在Host配置中设置remoteIpHeader、protocolHeader和protocolHeaderHttpsValue这三个属性的值,详细配置如下: ... <Host name='localhost' appBase='webapps' ....> <Value className='org.apache.catalina.values.RemoteIpValue' remoteIpHeader='X-Forwarded-For' protocolHeader='X-Forwarded-Proto' protocolHeaderHttpsValue='https'/> ... ... <Context docBase='' path='' reloadable='false'></Context> </Host>... 以上就是就是Nginx+tomcat的组合方式开启https请求的调教过程。 作者:谭朝红 原文地址:https://www./articles/nginx_quick_conf.html 结束语 以上就是我在实际项目开发过程中任务比较常用其重要的几个调教点,希望本次分享能够帮到你。此次文章主要分享关于Nginx小而精的一些常用配置技巧,更多的配置如分布式下一服多实例的配置我会单独些一篇文章进行分享,今天的内容就到这里结束了;再次感谢你的拜读,拜拜~~ |
|