摘要:關于如何快速調教的幾點總結關于的好與壞,我覺得沒有必要去介紹了,在這里主要分享一下我在實際的項目部署中是如何快速的調教的。
關于如何快速調教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://(1+)(: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配置中設置remoteIpHeader、protocolHeader和protocolHeaderHttpsValue這三個屬性的值,詳細配置如下:
...... ... ...
以上就是Nginx+tomcat的組合方式開啟https請求的調教過程。
結束語本文是我在實際項目開發過程中認為比較常用其重要的幾個調教點技巧,希望本次分享能夠幫到你。此次文章主要分享關于Nginx小而精的一些常用配置技巧,更多的配置如分布式下一服多實例的配置我會多帶帶些一篇文章進行分享,今天的內容就到這里結束了;再次感謝你的拜讀,拜拜~~
原文:關于如何快速調教Nginx的幾點總結
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40583.html
摘要:在他的重學前端課程中提到到現在為止,前端工程師已經成為研發體系中的重要崗位之一。大部分前端工程師的知識,其實都是來自于實踐和工作中零散的學習。一基礎前端工程師吃飯的家伙,深度廣度一樣都不能差。 開篇 前端開發是一個非常特殊的行業,它的歷史實際上不是很長,但是知識之繁雜,技術迭代速度之快是其他技術所不能比擬的。 winter在他的《重學前端》課程中提到: 到現在為止,前端工程師已經成為研...
摘要:在他的重學前端課程中提到到現在為止,前端工程師已經成為研發體系中的重要崗位之一。大部分前端工程師的知識,其實都是來自于實踐和工作中零散的學習。一基礎前端工程師吃飯的家伙,深度廣度一樣都不能差。開篇 前端開發是一個非常特殊的行業,它的歷史實際上不是很長,但是知識之繁雜,技術迭代速度之快是其他技術所不能比擬的。 winter在他的《重學前端》課程中提到: 到現在為止,前端工程師已經成為研發體系...
閱讀 2060·2023-04-25 21:11
閱讀 2962·2021-09-30 09:47
閱讀 2270·2021-09-24 09:48
閱讀 4427·2021-08-23 09:43
閱讀 895·2019-08-30 15:54
閱讀 558·2019-08-28 18:01
閱讀 1396·2019-08-27 10:55
閱讀 588·2019-08-27 10:55