使用Nginx部署Spring Boot應用,提升網站性能和流量增長

隨着Web應用程序的數量和大小的不斷增加,使用高端的Web服務器變得越來越必要。Nginx是一款輕量級且高性能的Web服務器,它的性能優於標準的Apache服務器,尤其是在高流量的環境下,會有更好的表現。本文將介紹如何使用Nginx部署Spring Boot應用,以提高您的網站的性能和流量增長。

一、安裝和設置Nginx服務器

在開始使用Nginx之前,需要先安裝並設置Nginx服務器。以下是安裝和設置Nginx服務器的步驟:

1、安裝Nginx

sudo apt-get update
sudo apt-get install nginx

2、啟動Nginx

sudo systemctl start nginx

3、驗證Nginx是否正在運行

sudo systemctl status nginx

此時,Nginx服務器已經成功安裝和啟動,可以通過訪問服務器的IP地址來查看Nginx默認頁面。

二、將Spring Boot應用程序部署到Nginx服務器

現在,我們已經成功安裝和設置了Nginx服務器。接下來,我們需要將Spring Boot應用程序部署到Nginx服務器。

1、將應用程序打包成可執行的Jar文件

./mvnw clean package

2、將可執行文件拷貝到服務器上

scp target/[your-app-name].jar [user]@[server-ip]:/home/[user]

3、運行Spring Boot Jar文件

java -jar [your-app-name].jar

現在,您可以通過輸入「http://[server-ip]:8080」來訪問應用程序。8080是Spring Boot應用程序的默認端口號。

三、使用Nginx作為反向代理服務器

Nginx可以作為反向代理服務器,將客戶端的請求轉發給Spring Boot應用程序。它可以緩存服務器響應,減少應用程序的負載,提高響應速度。

1、創建Nginx虛擬主機

修改Nginx默認配置,創建新的虛擬主機。例如:

sudo nano /etc/nginx/sites-available/my-app

添加以下內容:

server {
   listen 80;
   server_name [server-ip];

  location / {
      proxy_pass http://localhost:8080;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
    }
}

2、將虛擬主機啟用

sudo ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled/

3、檢查Nginx配置

sudo nginx -t

如果配置正確,將輸出以下內容:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

4、重啟Nginx

sudo systemctl restart nginx

現在您可以通過輸入「http://[server-ip]」來訪問Spring Boot應用程序。

四、Nginx緩存

使用Nginx緩存可以有效地提高網站的性能。在高流量的情況下,請求經常被重複發送。Nginx緩存可以緩存處理過的響應,減少服務器負載,提高響應速度。

1、在Nginx中啟用緩存功能

修改Nginx默認配置,啟用Nginx緩存。例如:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;

server {
   listen 80;
   server_name [server-ip];

   location / {
      proxy_cache my_cache;
      proxy_cache_valid 200 60m;
      proxy_cache_valid 404 1m;
      proxy_cache_key "$host$request_uri";
      proxy_pass http://localhost:8080;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
   }
}

2、配置緩存清除和更新

您可以將以下代碼添加到Nginx配置文件中,以清除緩存或在時間到期後更新緩存:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;

server {
   listen 80;
   server_name [server-ip];

   location / {
      proxy_cache my_cache;
      proxy_cache_valid 200 60m;
      proxy_cache_valid 404 1m;
      proxy_cache_key "$host$request_uri";
      proxy_pass http://localhost:8080;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
   }

   location /clear-cache {
      proxy_cache_purge my_cache $uri$is_args$args;
   }

   location /refresh-cache {
      proxy_cache_bypass $http_purge_cache;
   }
}

3、清除緩存或更新緩存

您可以通過以下方式清除緩存或更新緩存:

清除:http://[server-ip]/clear-cache

更新:http://[server-ip]/refresh-cache

五、SSL安全配置

SSL(Secure Socket Layer)是一種在Internet上保護信息安全的協議。它通過使用安全連接(HTTPS)來加密所有數據傳輸,以確保用戶的隱私和安全。以下是如何在Nginx上配置SSL安全的步驟:

1、安裝SSL證書

您可以從SSL提供商處獲得SSL證書,然後將其安裝到Nginx服務器。例如:

sudo apt-get install certbot
sudo certbot certonly --standalone -d [domain-name]

2、配置SSL證書

將以下代碼添加到Nginx配置文件中,以配置SSL證書:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;

server {
   listen 80;
   server_name [server-ip];
   return 301 https://$server_name$request_uri;
}

server {
   listen 443 ssl http2;
   server_name [server-ip];

   ssl_certificate /etc/letsencrypt/live/[domain-name]/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/[domain-name]/privkey.pem;

   location / {
      proxy_cache my_cache;
      proxy_cache_valid 200 60m;
      proxy_cache_valid 404 1m;
      proxy_cache_key "$host$request_uri";
      proxy_pass http://localhost:8080;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
   }

   location /clear-cache {
      proxy_cache_purge my_cache $uri$is_args$args;
   }

   location /refresh-cache {
      proxy_cache_bypass $http_purge_cache;
   }
}

3、重啟Nginx

sudo systemctl restart nginx

現在,您可以通過HTTPS訪問您的Spring Boot應用程序。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/196050.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-03 09:52
下一篇 2024-12-03 09:52

相關推薦

  • Python爬蟲可以爬哪些網站

    Python是被廣泛運用於數據處理和分析領域的編程語言之一。它具有易用性、靈活性和成本效益高等特點,因此越來越多的人開始使用它進行網站爬取。本文將從多個方面詳細闡述,Python爬…

    編程 2025-04-29
  • 網站為什麼會被黑客攻擊?

    黑客攻擊是指利用計算機技術手段,入侵或者破壞計算機信息系統的一種行為。網站被黑客攻擊是常見的安全隱患之一,那麼,為什麼網站會被黑客攻擊呢?本文將從不同角度分析這個問題,並且提出相應…

    編程 2025-04-29
  • 如何優化 Git 性能和重構

    本文將提供一些有用的提示和技巧來優化 Git 性能並重構代碼。Git 是一個非常流行的版本控制系統,但是在處理大型代碼倉庫時可能會有一些性能問題。如果你正在處理這樣的問題,本文將會…

    編程 2025-04-29
  • 如何用Python訪問網站

    本文將從以下幾個方面介紹如何使用Python訪問網站:網絡請求、POST請求、用戶代理、Cookie、代理IP、API請求。 一、網絡請求 Python有三種主流的網絡請求庫:ur…

    編程 2025-04-29
  • 如何將Python開發的網站變成APP

    要將Python開發的網站變成APP,可以通過Python的Web框架或者APP框架,將網站封裝為APP的形式。常見的方法有: 一、使用Python的Web框架Django Dja…

    編程 2025-04-28
  • 如何在服務器上運行網站

    想要在服務器上運行網站,需要按照以下步驟進行配置和部署。 一、選擇服務器和域名 想要在服務器上運行網站,首先需要選擇一台雲服務器或者自己搭建的服務器。雲服務器會提供更好的穩定性和可…

    編程 2025-04-28
  • 使用@Transactional和分表優化數據交易系統的性能和可靠性

    本文將詳細介紹如何使用@Transactional和分表技術來優化數據交易系統的性能和可靠性。 一、@Transactional的作用 @Transactional是Spring框…

    編程 2025-04-28
  • Python網站源碼解析

    本文將從多個方面對Python網站源碼進行詳細解析,包括搭建網站、數據處理、安全性等內容。 一、搭建網站 Python是一種高級編程語言,適用於多種領域。它也可以用於搭建網站。最常…

    編程 2025-04-28
  • Python性能優化方案

    本文將從多個方面介紹Python性能優化方案,並提供相應的示例代碼。 一、使用Cython擴展 Cython是一個Python編譯器,可以將Python代碼轉化為C代碼,可顯著提高…

    編程 2025-04-28
  • Python AUC:模型性能評估的重要指標

    Python AUC是一種用於評估建立機器學習模型性能的重要指標。通過計算ROC曲線下的面積,AUC可以很好地衡量模型對正負樣本的區分能力,從而指導模型的調參和選擇。 一、AUC的…

    編程 2025-04-28

發表回復

登錄後才能評論