Nginx配置以及域名轉發

工程中的nginx配置

#user  nobody;
worker_processes  24;
error_log   /home/xxx/opt/nginx/logs/error.log;
pid         /home/xxx/opt/nginx/run/nginx.pid;events {use epoll;worker_connections  102400;
}http {include /home/xxx/opt/nginx/conf.d/mime.types;default_type  application/octet-stream;log_format main  '$upstream_response_time $request_time $remote_addr - $remote_user [$time_local] [$http_true_client_ip] ''$upstream_addr $http_host $request $request_body "$status" $body_bytes_sent "$http_referer" ''"$http_accept_language" "$http_user_agent" "$http_x_forwarded_for" ';log_format json '{ "@timestamp": "$time_iso8601", ''"response_time": "$upstream_response_time", ''"request_time": $request_time, ''"remote_addr": "$remote_addr", ''"remote_user": "$remote_user", ''"upstream_addr": "$upstream_addr", ''"http_host": "$http_host", ''"request": "$request", ''"status": $status, ''"body_bytes_sent": $body_bytes_sent, ''"http_referer": "$http_referer", ''"verb": "$request_method", ''"url":"$request_uri", ''"http_accept_language": "$http_accept_language", ''"x_forwarded_for": "$http_x_forwarded_for", ''"agent": "$http_user_agent" }';access_log  /home/xxx/opt/nginx/logs/access.log  main;fastcgi_intercept_errors on;charset utf-8;server_names_hash_bucket_size 128;fastcgi_buffers 8 128k;server_tokens off;client_header_buffer_size 4k;large_client_header_buffers 4 32k;client_max_body_size 300m;sendfile on;tcp_nopush on;keepalive_timeout 60;tcp_nodelay on;client_body_buffer_size 512k;proxy_connect_timeout 5;proxy_read_timeout 60;proxy_send_timeout 5;proxy_ignore_client_abort on;proxy_buffer_size 16k;proxy_buffers 4 64k;proxy_busy_buffers_size 128k;proxy_temp_file_write_size 128k;gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.1;gzip_comp_level 2;gzip_types text/plain application/x-javascript application/javascript text/css application/xml;gzip_vary on;limit_conn_zone $binary_remote_addr zone=addr:10m;limit_req_zone $binary_remote_addr zone=hbhs:10m rate=1r/s;#cache beginproxy_buffering on;proxy_cache_valid 200 304 301 302 10d;proxy_cache_path /home/xxx/data/nginx/cache levels=1:2 keys_zone=mycache:8m max_size=1000m inactive=600m;proxy_temp_path /home/xxx/data/nginx/temp;#cache end#add_header X-Frame-Options SAMEORIGIN;include /home/xxx/opt/nginx/conf.d/*.conf;max_ranges 1;
}

  nginx配置詳解參考:Nginx配置文件(nginx.conf)配置詳解

  ?include /home/xxx/opt/nginx/conf.d/mime.types;

MIME-type和Content-Type的關系:
當web服務器收到靜態的資源文件請求時,依據請求文件的后綴名在服務器的MIME配置文件中找到對應的MIME Type,再根據MIME Type設置HTTP Response的Content-Type,然后瀏覽器根據Content-Type的值處理文件。types {Content-Type                          文件名后綴    text/html                             html htm shtml;text/css                              css;text/xml                              xml;image/gif                             gif;image/jpeg                            jpeg jpg;application/javascript                js;application/atom+xml                  atom;application/rss+xml                   rss;text/mathml                           mml;text/plain                            txt;text/vnd.sun.j2me.app-descriptor      jad;text/vnd.wap.wml                      wml;text/x-component                      htc;image/png                             png;image/tiff                            tif tiff;image/vnd.wap.wbmp                    wbmp;image/x-icon                          ico;image/x-jng                           jng;image/x-ms-bmp                        bmp;image/svg+xml                         svg svgz;image/webp                            webp;application/font-woff                 woff;application/java-archive              jar war ear;application/json                      json;application/mac-binhex40              hqx;application/msword                    doc;application/pdf                       pdf;application/postscript                ps eps ai;application/rtf                       rtf;application/vnd.apple.mpegurl         m3u8;application/vnd.ms-excel              xls;application/vnd.ms-fontobject         eot;application/vnd.ms-powerpoint         ppt;application/vnd.wap.wmlc              wmlc;application/vnd.google-earth.kml+xml  kml;application/vnd.google-earth.kmz      kmz;application/x-7z-compressed           7z;application/x-cocoa                   cco;application/x-java-archive-diff       jardiff;application/x-java-jnlp-file          jnlp;application/x-makeself                run;application/x-perl                    pl pm;application/x-pilot                   prc pdb;application/x-rar-compressed          rar;application/x-redhat-package-manager  rpm;application/x-sea                     sea;application/x-shockwave-flash         swf;application/x-stuffit                 sit;application/x-tcl                     tcl tk;application/x-x509-ca-cert            der pem crt;application/x-xpinstall               xpi;application/xhtml+xml                 xhtml;application/xspf+xml                  xspf;application/zip                       zip;application/octet-stream              bin exe dll;application/octet-stream              deb;application/octet-stream              dmg;application/octet-stream              iso img;application/octet-stream              msi msp msm;application/vnd.openxmlformats-officedocument.wordprocessingml.document    docx;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet          xlsx;application/vnd.openxmlformats-officedocument.presentationml.presentation  pptx;audio/midi                            mid midi kar;audio/mpeg                            mp3;audio/ogg                             ogg;audio/x-m4a                           m4a;audio/x-realaudio                     ra;video/3gpp                            3gpp 3gp;video/mp2t                            ts;video/mp4                             mp4;video/mpeg                            mpeg mpg;video/quicktime                       mov;video/webm                            webm;video/x-flv                           flv;video/x-m4v                           m4v;video/x-mng                           mng;video/x-ms-asf                        asx asf;video/x-ms-wmv                        wmv;video/x-msvideo                       avi;
}

  

  參考:nginx proxy_pass和rewrite的區別? ? ??Nginx之proxy_redirect詳解  

location基本配置

 location /A/B{proxy_pass  http://XXX.com/A/B;#請求轉向定義的服務器列表
          #proxy_redirect off;proxy_set_header Host XXX.com;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;client_max_body_size 10m;    #允許客戶端請求的最大單文件字節數client_body_buffer_size 128k;  #緩沖區代理緩沖用戶端請求的最大字節數,proxy_connect_timeout 180;  #nginx跟后端服務器連接超時時間(代理連接超時)proxy_send_timeout 180;        #后端服務器數據回傳時間(代理發送超時)proxy_read_timeout 180;         #連接成功后,后端服務器響應時間(代理接收超時)proxy_buffer_size 128k;             #設置代理服務器(nginx)保存用戶頭信息的緩沖區大小proxy_buffers 4 256k;               #proxy_buffers緩沖區,網頁平均在32k以下的話,這樣設置proxy_busy_buffers_size 512k;    #高負荷下緩沖大小(proxy_buffers*2)proxy_temp_file_write_size 512k;  #設定緩存文件夾大小,大于這個值,將從upstream服務器傳}
參考:微信網頁授權流程?

nginx配置域名轉發

場景:有兩個微信公眾號A、B,微信公眾號管理平臺配置的回調url分別是 http://A.com、http://B.com。微信公眾號B如果需要獲取微信公眾號A的用戶信息,對應的授權URL如下。
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx43a850f87498127d&redirect_uri=http%3A%2F%2FA.com%2F&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
這樣就會面臨一個問題,微信公眾號B就無法獲取到code信息了。
騰訊返回的授權碼URL:    http://A.com/?code=001Rk8ue1Ntnxz0udwue1kbUte1Rk8uU&state=STATE
所以需要微信公眾號A對應的Nginx做一下域名轉發,如下。
微信公眾號A對應的Nginx配置(實現域名轉發,將微信公眾號A對應的域名轉發成微信公眾號B對應的域名)location /微信公眾號B標識/XXX {rewrite ^/微信公眾號B標識/(.*) http://B.com/$1 permanent;
                proxy_set_header Host B.com;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;client_max_body_size 20m;client_body_buffer_size 128k;proxy_connect_timeout 90;proxy_send_timeout 90;proxy_read_timeout 90;proxy_buffer_size 4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64K;proxy_temp_file_write_size 64k;}

  上面的方案是基于永久重定向,瀏覽器的URL會發生變化。

  另一種方案是基于nginx代理的,但是需要公眾號A、B使用同一個域名。這種方案也支持自定義鏈接分享【如果兩個公眾號使用不同的域名,自定義鏈接分享必然出現無效的簽名這種問題】。

location /微信公眾號B標識/XXX {proxy_pass  http://B.com/微信公眾號B標識/XXX/YYY;
     proxy_redirect off;proxy_set_header Host B.com;proxy_ignore_client_abort on;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;client_max_body_size 10m;client_body_buffer_size 128k;proxy_connect_timeout 8;proxy_send_timeout 1800;proxy_read_timeout 1800;proxy_buffer_size 128k;proxy_buffers 4 256k;proxy_busy_buffers_size 512k;proxy_temp_file_write_size 512k;
}

?

轉載于:https://www.cnblogs.com/hujunzheng/p/10118905.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531208.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531208.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531208.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java接口簽名(Signature)實現方案續

一、前言 由于之前寫過的一片文章 (java接口簽名(Signature)實現方案 )收獲了很多好評,此次來說一下另一種簡單粗暴的簽名方案。相對于之前的簽名方案,對body、paramenter、path variable的獲取都做了簡化的處理。也就是說這種方式…

支付寶敏感信息解密

支付寶官方解密文檔&#xff1a;https://docs.alipay.com/mini/introduce/aes String response "小程序前端提交的";//1. 獲取驗簽和解密所需要的參數 Map<String, String> openapiResult JSON.parseObject(response,new TypeReference<Map<String, St…

HashMap 源碼閱讀

前言 之前讀過一些類的源碼&#xff0c;近來發現都忘了&#xff0c;再讀一遍整理記錄一下。這次讀的是 JDK 11 的代碼&#xff0c;貼上來的源碼會去掉大部分的注釋, 也會加上一些自己的理解。 Map 接口 這里提一下 Map 接口與1.8相比 Map接口又新增了幾個方法&#xff1a;   …

SpringMvc接口中轉設計(策略+模板方法)

一、前言 最近帶著兩個兄弟做支付寶小程序后端相關的開發&#xff0c;小程序首頁涉及到很多查詢的服務。小程序后端服務在我司屬于互聯網域&#xff0c;相關的查詢服務已經在核心域存在了&#xff0c;查詢這塊所要做的工作就是做接口中轉。參考了微信小程序的代碼&#xff0c;發…

SpringSecurity整合JWT

一、前言 最近負責支付寶小程序后端項目設計&#xff0c;這里主要分享一下用戶會話、接口鑒權的設計。參考過微信小程序后端的設計&#xff0c;會話需要依靠redis。相關的開發人員和我說依靠Redis并不是很靠譜&#xff0c;redis在業務高峰期不穩定&#xff0c;容易出現問題&…

Springboot定時任務原理及如何動態創建定時任務

一、前言 上周工作遇到了一個需求&#xff0c;同步多個省份銷號數據&#xff0c;解綁微信粉絲。分省定時將銷號數據放到SFTP服務器上&#xff0c;我需要開發定時任務去解析文件。因為是多省份&#xff0c;服務器、文件名規則、數據規則都不一定&#xff0c;所以要做成可配置是有…

轉載:ThreadPoolExecutor 源碼閱讀

前言 之前研究了一下如何使用ScheduledThreadPoolExecutor動態創建定時任務(Springboot定時任務原理及如何動態創建定時任務)&#xff0c;簡單了解了ScheduledThreadPoolExecutor相關源碼。今天看了同學寫的ThreadPoolExecutor 的源碼解讀&#xff0c;甚是NB&#xff0c;必須轉…

Spring BPP中優雅的創建動態代理Bean

一、前言 本文章所講并沒有基于Aspectj&#xff0c;而是直接通過Cglib以及ProxyFactoryBean去創建代理Bean。通過下面的例子&#xff0c;可以看出Cglib方式創建的代理Bean和ProxyFactoryBean創建的代理Bean的區別。 二、基本測試代碼 測試實體類&#xff0c;在BPP中創建BppTest…

使用pdfBox實現pdf轉圖片,解決中文方塊亂碼等問題

一、引入依賴 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.13</version> </dependency> <dependency><groupId>org.apache.pdfbox</groupId><artif…

Spring異步調用原理及SpringAop攔截器鏈原理

一、Spring異步調用底層原理 開啟異步調用只需一個注解EnableAsync Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) Documented Import(AsyncConfigurationSelector.class) public interface EnableAsync {/*** Indicate the async annotation type to be detec…

線程池優化之充分利用線程池資源

一、前言 最近做了電子發票的需求&#xff0c;分省開票接口和發票下載接口都有一定的延遲。為了完成開票后自動將發票插入用戶微信卡包&#xff0c;目前的解決方案是利用線程池&#xff0c;將開票后插入卡包的任務&#xff08;輪詢分省發票接口&#xff0c;直到獲取到發票相關信…

Spring MVC源碼——Root WebApplicationContext

Spring MVC源碼——Root WebApplicationContext 打算開始讀一些框架的源碼,先拿 Spring MVC 練練手,歡迎點擊這里訪問我的源碼注釋, SpringMVC官方文檔一開始就給出了這樣的兩段示例: WebApplicationInitializer示例: public class MyWebApplicationInitializer implements Web…

Spring MVC源碼——Servlet WebApplicationContext

上一篇筆記(Spring MVC源碼——Root WebApplicationContext)中記錄了下 Root WebApplicationContext 的初始化代碼.這一篇來看 Servlet WebApplicationContext 的初始化代碼 DispatcherServlet 是另一個需要在 web.xml 中配置的類, Servlet WebApplicationContext 就由它來創建…

Springboot源碼——應用程序上下文分析

前兩篇(Spring MVC源碼——Root WebApplicationContext 和 Spring MVC源碼——Servlet WebApplicationContext)講述了springmvc項目創建上下文的過程&#xff0c;這一篇帶大家了解一下springboot項目創建上下文的過程。 SpringApplication引導類 SpringApplication類用于啟動或…

基于zookeeper實現分布式配置中心(一)

最近在學習zookeeper&#xff0c;發現zk真的是一個優秀的中間件。在分布式環境下&#xff0c;可以高效解決數據管理問題。在學習的過程中&#xff0c;要深入zk的工作原理&#xff0c;并根據其特性做一些簡單的分布式環境下數據管理工具。本文首先對zk的工作原理和相關概念做一下…

基于zookeeper實現分布式配置中心(二)

上一篇&#xff08;基于zookeeper實現分布式配置中心&#xff08;一&#xff09;&#xff09;講述了zookeeper相關概念和工作原理。接下來根據zookeeper的特性&#xff0c;簡單實現一個分布式配置中心。 配置中心的優勢 1、各環境配置集中管理。 2、配置更改&#xff0c;實時推…

Redis分布式鎖實戰

背景 目前開發過程中&#xff0c;按照公司規范&#xff0c;需要依賴框架中的緩存組件。不得不說&#xff0c;做組件的大牛對CRUD操作的封裝&#xff0c;連接池、緩存路由、緩存安全性的管控都處理的無可挑剔。但是有一個小問題&#xff0c;該組件沒有對分布式鎖做實現&#xff…

基于RobotFramework實現自動化測試

Java robotframework seleniumlibrary 使用Robot Framework Maven Plugin&#xff08;http://robotframework.org/MavenPlugin/&#xff09;執行自動化測試chromedriver下載&#xff1a; http://chromedriver.storage.googleapis.com/index.htmlchromedriver和chrome版本對應…

Springboot國際化信息(i18n)解析

國際化信息理解 國際化信息也稱為本地化信息 。 Java 通過 java.util.Locale 類來表示本地化對象&#xff0c;它通過 “語言類型” 和 “國家/地區” 來創建一個確定的本地化對象 。舉個例子吧&#xff0c;比如在發送一個具體的請求的時候&#xff0c;在header中設置一個鍵值對…

看了就知道為什么別人C語言學習效率那么高了

談及C語言&#xff0c;我想C語言功能強大都應該知道、應用廣泛&#xff0c;一旦掌握了后&#xff0c;你就可以理直氣壯地對他人說“我是電腦高手&#xff01;”&#xff0c;而且以后若是再自學其他語言就顯得輕而易舉了。憂慮的是&#xff0c;C語言般博大精深&#xff0c;太難學…