Nginx的安裝配置使用

等你下课啊發表於2024-04-12

Nginx的安裝配置使用

安裝

Nginx 在預設的 Ubuntu 源倉庫中可用。想要安裝它,執行下面的命令

sudo apt update

sudo apt install nginx

一旦安裝完成,Nginx 將會自動被啟動。你可以執行下面的命令來驗證它:

sudo systemctl status nginx.service

想要測試你的新 Nginx 安裝,在你的瀏覽器中開啟http://YOUR_IP,你應該可以看到預設的 Nginx 載入頁面

Nginx 配置檔案結構以及最佳實踐

  • 所有的 Nginx 配置檔案都在/etc/nginx/目錄下。
  • 主要的 Nginx 配置檔案是/etc/nginx/nginx.conf。
  • 為每個域名建立一個獨立的配置檔案,便於維護伺服器。你可以按照需要定義任意多的 block 檔案。
  • Nginx 伺服器配置檔案被儲存在/etc/nginx/sites-available目錄下。在/etc/nginx/sites-enabled目錄下的配置檔案都將被 Nginx 使用。
  • 最佳推薦是使用標準的命名方式。例如,如果你的域名是mydomain.com,那麼配置檔案應該被命名為/etc/nginx/sites-available/mydomain.com.conf,
    然後再/etc/nginx/sites-enabled下建立軟連結 ln -s /etc/nginx/sites-available/mydomain.com.conf 以便被 Nginx 使用

操作配置檔案

  • /etc/nginx/sites-available/default是虛擬站點的配置模板,在/etc/nginx/sites-available目錄下存放站點配置檔案。
  • 必須先在/etc/nginx/sites-available目錄下生成站點配置檔案,然後在/etc/nginx/sites-enabled目錄下建立軟連線
cd /etc/nginx/sites-available

sudo cp /etc/nginx/sites-available/default mydomain.com.conf

vim mydomain.com.conf # 參考Nginx檔案如何配置

cd /etc/nginx/sites-enabled

sudo ln -s /etc/nginx/sites-available/mydomain.com.conf

nginx -t -c /etc/nginx/sites-available/mydomain.com.conf # nginx 檢查配置檔案語法錯誤

nginx -s reload # nginx 重新載入配置檔案

sudo systemctl status nginx.service # 檢視 nginx 狀態 | 使用 sudo systemctl start nginx 啟動 nginx 服務

Nginx 埠轉發

將域名轉發到本地埠

首先介紹最常用的,將域名轉發到本地另一個埠上

server{
  listen 80;
  server_name  mydomain.com;
  index  index.php index.html index.htm;

  location / {
    proxy_pass  http://127.0.0.1:8080; # 轉發規則
    proxy_set_header Host $proxy_host; # 修改轉發請求頭,讓8080埠的應用可以收到真實的請求
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

這樣訪問 mydomain.com 時就會轉發到本地的 8080 埠

將域名轉發到另一個域名

server{
  listen 80;
  server_name  mydomain.com;
  index  index.php index.html index.htm;

  location / {
    proxy_pass  http://www.baidu.com;
    proxy_set_header Host $proxy_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

這樣訪問 mydomain.com 時就會轉發到 www.baidu.com

本地一個埠轉發到另一個埠或另一個域名

server{
  listen 80;
  server_name 127.0.0.1; # 公網ip
  index  index.php index.html index.htm;

  location / {
    proxy_pass  http://127.0.0.1:8080; # 或 http://www.baidu.com
    proxy_set_header Host $proxy_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

這樣訪問 127.0.0.1 時就會轉發到本地的 8080 埠或 http://www.baidu.com

加 / 與不加 /

相關文章