前端必須掌握的 nginx 技能(1)


概述

作為一個前端,我覺得必須要學會使用 nginx 干下面幾件事:

  1. 代理靜態資源
  2. 設置反向代理(添加https)
  3. 設置緩存
  4. 設置 log
  5. 部署 smtp 服務
  6. 設置 redis 緩存(選)

下面我按照這個節奏一一研究一遍,把心得記錄下來,供以后開發時參考,相信對其他人也有用。

參考資料:

nginx 基本入門

Beginner’s Guide

nginx 重要點

(nginx 的安裝我就不介紹了,自己按文檔安裝就行)

1.如果 nginx 已經開啟,那么可以使用如下命令控制 nginx

nginx -s signal

// 其中 signal 是如下命令:
// stop — 直接關閉 nginx
// quit — 會在處理完當前正在的請求后退出,也叫優雅關閉
// reload — 重新加載配置文件,相當於重啟
// reopen — 重新打開日志文件

2.nginx 配置文件的語法是有簡單指令和塊級指令構成的:

// 簡單指令由名字和參數組成,中間用空格分開,並以分好結尾,示例如下
root /data/www;

// 塊級指令也叫上下文,用 { 和 } 大括號包裹,末尾沒有分號,示例如下
// 其中注釋以 # 開頭
events {
  worker_connections  4096;  ## Default: 1024
}

注意:沒有放在任何上下文中的指令都是處在主上下文中。events 和 http 的指令是放在主上下文中,server 放在 http 中, location 放在 server 中。結構示例如下:

events {

}

http {
  server {
    location / {

    }
  }
}

3.檢測配置文件,查看配置文件的位置:

nginx -t

// 返回如下:
// nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
// nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

代理靜態資源

我們現在准備使用本機的 nginx 代理靜態資源。

1.隨便建立一個文件夾,在里面創建 index.html 和 nginx.conf。我們准備使用 nginx.conf 修改配置,然后代理 index.html。

2.在 index.html 里面寫入如下代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    hello world
</body>
</html>

3.在 nginx.conf 里面寫入如下代碼:

events {
    # worker_connections  1024;  ## Default: 1024
}

http {
    server {
        listen  8765;
        location / {
            root /Users/zhouyang/Documents/tencent/test/local-nginx;
        }
    }
}

需要注意如下3點:

  1. root 那里不能使用相對路徑,因為我們是改寫 /usr/local/etc/nginx/nginx.conf,所以相對路徑的相對位置並不是當前所在的文件夾,而是 /usr/local/etc/nginx/ 文件夾。獲取當前文件夾絕對路徑的方法是:直接把此文件夾拖到 bash 里面即可。

  2. 如果報錯:nginx: [emerg] "server" directive is not allowed here in xxxxxx,意思是說 server 位置有誤,它需要被放在 http 上下文里面!!

  3. 如果報錯:nginx: [emerg] no "events" section in configuration,意思是說沒有 events 上下文,這里配置文件中必須加上 events 上下文,即使里面什么指令也沒有。(就像上面我把 events 里面的內容注釋掉了一樣)

4.在 bash 里面使用如下命令修改 nginx 配置,然后重啟 nginx。

// 首先優雅退出 nginx
nginx -s quit

// 然后從選定的配置文件啟動 nginx
nginx -c /Users/zhouyang/Documents/tencent/test/local-nginx/nginx.conf

注意:第二步不能加 -t 參數寫成nginx -t -c /Users/zhouyang/Documents/tencent/test/local-nginx/nginx.conf,因為 -t 參數只是檢查配置,並且不啟動 nginx。

5.打開 localhost:8765,即可看到 hello world。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM