iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
Software Development

讓 C# 也可以很 Social - 在 .NET 6 用 C# 串接 LINE Services API 的取經之路系列 第 28

[Day 28] .NET 6 C# 與 Line Services API 開發 - 在 Centos 架設 web Server (nginx)

  • 分享至 

  • xImage
  •  
tags: .NET6 C#, LineBot, Line Messaging API, C#, dotnet core

[Day 28] 讓 C# 也可以很 Social - .NET 6 C# 與 Line Services API 開發 - 在 Centos 架設 web Server (nginx)

前言 -

上一篇我們完成的 後端 api 的 server 設定了,但要如何也將 Liff 會使用的網頁頁面也部署到 server 上呢?

我們這邊會使用到功能很齊全而且也是全球使用度最高的的 nginx 來當 web server(*備註一),接著我們就直接進入主題吧!

安裝 nginx

在 centos 上我們一樣透過 yum 就可以快速的安裝好 nginx 囉~

https://ithelp.ithome.com.tw/upload/images/20221007/20151616SB78iDmbsP.png

  • Step 2 : 執行安裝 => sudo yum install -y nginx
    https://ithelp.ithome.com.tw/upload/images/20221007/20151616UU923rJ4VU.png

  • Step 3 : 確認是否安裝成功 => nginx -v 出現下圖版本資訊就表示已經安裝成功囉
    https://ithelp.ithome.com.tw/upload/images/20221007/20151616tYmxRlZuow.png

配置 nginx

安裝完成之後,我們接著就可以開始設定 nginx 了,開始前我們可以先了解基本的指令

  1. systemctl start nginx => 啟動 nginx
  2. systemctl restart nginx => 重新啟動 nginx
  3. systemctl enable nginx => 設定開機自動啟動
  4. systemctl stop nginx => 停止 nginx
  5. systemctl status nginx => 查看狀態
  6. systemctl reload nginx => 重新載入 nginx 配置

PS. 到這邊有沒有發覺指令都很眼熟,因為 nginx 跟上一篇提到的 kestrel 一樣也可以透過 Linux service 統一管理,所以指令也會很統一喔~

  • Step 1 : 啟動 nginx
    sudo systemctl start nginx
    啟動後我們在就可以透過瀏覽器輸入 ip 連結到 server,但卻顯示下圖,連線被拒絕!
    https://ithelp.ithome.com.tw/upload/images/20221007/20151616qYIHMbL8s5.png

原因是我們的 server 需要開啟防火牆允許 http / https 的連線才可以從外部透過 http / https 連線,所以接著我們就先來開啟防火牆設定

  • Step 2 : 開放允許 http / https 防火牆連線,並且重新載入防火牆設定
    sudo firewall-cmd --zone=public --permanent --add-service=http
    sudo firewall-cmd --zone=public --permanent --add-service=https

  • Step 3 : 重新載入防火強設定
    sudo firewall-cmd --reload

  • Step 4 : 確認是否有成功加入防火牆
    sudo firewall-cmd --list-service

    https://ithelp.ithome.com.tw/upload/images/20221007/20151616AHP6kzws10.png

這時候我們可以直接再重新整理一下瀏覽器,出現下圖就表示我們的 nginx 已經初步設定完成囉~
https://ithelp.ithome.com.tw/upload/images/20221007/20151616Cfd1MrtELL.png

備註一 : [ Apache/Nginx 使用率 參考資料 ]https://ithelp.ithome.com.tw/upload/images/20221010/20151616xuuha4nO0N.png

備註二 : [nginx - HTTP 2 設定]

如果要讓 nginx 支援 HTTP2協定,需要在設定檔上稍微調整一下,步驟如下

  1. 找到 nginx.conf (通常會在這幾個路徑裏面 /usr/local/nginx/conf, /etc/nginx, /usr/local/etc/nginx)
  2. 在listen的內容加上 http2, 如下
listen              443 ssl http2;

**使用心得分享 : 如果圖片有很多圖片/或是需要對同一瀏覽器處理較多的HTTP Requests時,效果會比較明顯
如果只是一般小網站,request的數量不是很多的話,差異可能就不會太大。

另外 nginx 還支援很多好用的功能… 如 限定 IP 存取 <<<< 大推 !!!

server {
server blog.ooxx.com;
deny 1.2.3.4;
deny 2.3.4.5;
allow all;
}

甚至還可以對特定的網址,來進行不同的設定

location / {
deny 45.43.23.0/24;
}


上一篇
[Day 27] .NET 6 C# 與 Line Services API 開發 - 在 Centos 設定 Kestrel 服務 (systemd)
下一篇
[Day-29] .NET 6 C# 與 Line Services API 開發 - 在 Centos 設定 Nginx 與 Kestrel 對應 (proxy pass)
系列文
讓 C# 也可以很 Social - 在 .NET 6 用 C# 串接 LINE Services API 的取經之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言