用Nginx配置代理,組織平滑環境,讓前端專注開發

Gauss@sz發表於2020-09-26

日常工作中經常遇到這樣的場景,後端是多個團隊協作的。開發、除錯、測試環境可能都不同,但是最後部署是一體的。

 

Nginx可以很好解決此類問題,並輔助前端開發過程中,實現mock到真實環境的無縫切換。下面一一個例項,為大家呈現下:

1、瞭解後端提供的各類介面,相關地址。收集到如下列表。

No服務開發團隊VPN域名協議路徑
1Account合作伙伴1YES10.1.1.1:8081http/account
2User已經系統NOdev.company.net:8080https/user/
3Order後端團隊NO172.2.16.8:8080http/order/
4Static前端團隊NO192.168.0.2http/htdocs/

2、明確最終部署時,所有服務都在一個域名下工作。但是這個域名並沒有確定下來。

先暫定此域名為 :  oss.cloud.net , 程式碼中不要出現絕對路徑

3、配置nginx,這裡涉及到https,估計後面都會使用https。為避免頁面跳轉,統一使用https配置nginx。指令碼如下:

server {
	
	listen 31008 ssl;
	#listen 443 ssl;
	
	ssl_certificate  server.pem;
	ssl_certificate_key  server.key;
	ssl_password_file  pwd.txt;
	 
	
	server_name cloud.company.net;

 
	location /htdocs/	{
                ssi on;
                ssi_silent_errors on;
                ssi_types text/shtml;

                # local debug no cache
                add_header Cache-Control no-cache;
                add_header Pragma no-cache;
                add_header Expires 0;


                root   /opt/htdocs/;
                index  index.html index.htm;
	}
	location /user/	{
		proxy_pass https://dev.company.net:8080/;
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

		#proxy_ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
		#proxy_ssl_ciphers             HIGH:!aNULL:!MD5;
		

		#proxy_ssl_verify        on;
		#proxy_ssl_verify_depth  2;
		#proxy_ssl_session_reuse on;
	}
	location /account/	{
		proxy_pass http://10.1.1.1:8081/account/;
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

		#proxy_ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
		#proxy_ssl_ciphers             HIGH:!aNULL:!MD5;
		

		#proxy_ssl_verify        on;
		#proxy_ssl_verify_depth  2;
		#proxy_ssl_session_reuse on;
	}
	location /order/	{
		proxy_pass http://172.2.16.8/order/;
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

		#proxy_ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
		#proxy_ssl_ciphers             HIGH:!aNULL:!MD5;
		

		#proxy_ssl_verify        on;
		#proxy_ssl_verify_depth  2;
		#proxy_ssl_session_reuse on;
	}
		 
}

4、使用vpn登入account要求的環境。即可愉快的開始除錯了。

 

以上就是完整的步驟。如果不知曉如何建立server.pem,server.key。  可參考https://blog.csdn.net/gycommunicate/article/details/2585179

 

相關文章