網站首頁 編程語言 正文
一、nginx 作用
★ 靜態HTTP服務器
★ HTTP服務器(動靜分離)
★ 反向代理
★ 負載均衡
二、nginx 靜態HTTP服務器配置
Nginx本身也是一個靜態資源的服務器
,當只有靜態資源的時候,就可以使用Nginx來做服務器,同時現在也很流行動靜分離,就可以通過Nginx來實現。
# nginx 靜態資源配置--靜態服務器(也是最簡單的配置) server { listen 80; # 監聽端口號 server_name localhost; # 主機名 index index.html index.htm; # 默認頁名稱 root html; # 靜態資源存放目錄 location / { # 匹配路徑 root html; # 文件根目錄 index index.html index.htm; # 默認頁名稱 } error_page 500 502 503 504 /50x.html; # 報錯編碼對應頁面 location = /50x.html { root html; } }
● url 和 uri:
網址是url,url=主機:端口+uri
uri 是資源,是location后面的匹配規則,即 location uri
● location uri,當規則匹配上了就到root目錄找頁面
location / { #匹配路徑 root html; #文件根目錄 index index.html index.htm; #默認頁名稱 }
● location 配置方法
location 配置可以有兩種配置方法
① 前綴 + uri(字符串/正則表達式)
② @ + name
前綴含義
= :精確匹配(必須全部相等):大小寫敏感
~* :忽略大小寫
^~ :只需匹配uri部分
@ :內部服務跳轉
三、nginx HTTP服務器(動靜分離--nginx+tomcat實現動靜分離)
靜態資源:數據不變,請求不需要后臺處理;動態資源:模板,jsp、templates等,數據需要后臺處理后渲染到網頁,動態網頁。
Nginx可以根據一定規則把不變的資源和經常變的資源區分開,對動靜資源進行拆分,實現對靜態資源的做緩存,從而提高資源響應的速度。這就是網站靜態化處理的核心思路。
upstream tomcat{ server localhost:8080; } server { listen 80; server_name localhost; location / { root html; index index.html; } # 所有靜態請求都由nginx處理,存放目錄為html location ~* \.(gif|jpg|jpeg|png|bmp|swf|css|js)$ { root html; } # 所有動態請求都轉發給tomcat處理 location ~ *jsp$ { proxy_pass http://tomcat; # 代理轉發 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
四、 反向代理----使用proxy_pass
server { listen 80; server_name blog.yilele.site; index index.html; location / { root /shan/blog/; index index.html; } location ~* \.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$ { root /shan/blog/; index index.html; add_header Access-Control-Allow-Origin *; } # 反向代理 location /api { proxy_pass http://ip地址或域名:端口號; } }
? nginx 配置springboot+vue 前后端分離項目
1、思路:nginx 結合自身特性,本身一個靜態資源的服務器
,
(1) 通過nginx實現域名的方式訪問網站,以及把對數據的請求通過nginx反向代理轉發給后端容器(后端服務),避免了接口暴露的不安全
① 訪問網站,首先習慣上訪問網站的首頁,通常訪問路徑是/ [location /],然后默認頁面是首頁;
location / { root /shan/blog/; index index.html; }
② 默認頁面,首頁需要像css、js、圖片等靜態資源,才能顯示出樣式、動態效果等,需要通過匹配規則[location ~*.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$],指定root 到那個目錄下獲取這些靜態資源。
location ~* \.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$ { root /shan/blog/; index index.html; add_header Access-Control-Allow-Origin *; }
③ 默認首頁,需要有數據
在vue中首頁實際上編寫了很多個接口在請求數據,這些動態數據是來自 springboot項目(api 服務),需要咱通過定義一個匹配接口路徑的規則[location /api],然后進行請求轉發到 springboot項目(api 服務)
2、通過dockerCompose+nginx配置實現部署spirngboot+vue前后端分離項目
(1) dockerCompose 主要內容:
version: "3" services: api: image: api container_name: api expose: - "8888" nginx: image: nginx container_name: nginx ports: - 80:80 - 443:443 volumes: - /mnt/docker/nginx/:/etc/nginx/ - /mnt/shan/blog:/shan/blog links: - api depends_on: - api
(2) nginx 主要配置:
upstream apistream{ server api:8888;# 通過dockerCompose編排,服務名相當于域名 } server { listen 80; server_name blog.yilele.site; index index.html; location / { root /shan/blog/; index index.html; } location ~* \.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$ { root /shan/blog/; index index.html; add_header Access-Control-Allow-Origin *; } location /api {# 請求https://blog.yilele.site/api 會代理轉發到 api:8888 proxy_pass http://apistream; } }
原文鏈接:https://www.cnblogs.com/shan333/p/16431672.html
相關推薦
- 2023-10-16 向前端傳遞Long類型數據時發生精度缺失解決辦法
- 2022-11-30 C#?WinForm自動更新程序之文件上傳操作詳解_C#教程
- 2022-10-19 react-redux多個組件數據共享的方法_React
- 2022-06-12 超詳細分析C語言動態內存管理問題_C 語言
- 2023-11-23 cmake: command not found
- 2022-10-22 React拖拽調整大小的組件_React
- 2022-11-21 C++實現TCP客戶端及服務器Recv數據篩選處理詳解_C 語言
- 2022-09-09 使用Dockerfile腳本定制鏡像的方法_docker
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支