nginx實用入門

李嘉图呀發表於2024-05-14

下載並啟動

下載地址:http://nginx.org/en/download.html

image

雙擊即可啟動

測試啟動:http://localhost/

image

部署網站

新增該條配置即可

server {

listen 8088;

server_name 名字;

location / {

root 檔案目錄;

index index.html index.htm;

}

}

關閉、開始、重啟

在cmd下操作,進入目錄路徑


nginx -s stop; // 停止

nginx -s quit // 有序停止

nginx -s reload // 重啟

Vue404重定向配置

server {
  listen  80;
  server_name  www.xxx.com;

  location / {
    index  /data/dist/index.html;
    try_files $uri $uri/ /index.html;
  }
}

配置域名轉發

location /api/ {
	proxy_pass http://backend-api-server/;  //配置轉發地址,這個地址也可以是本地部署的網站
	proxy_set_header Host $host;  // 配置轉發請求頭
	proxy_set_header X-Real-IP $remote_addr;  // 配置轉發請求頭
}

配置二級域名轉發

重點語法
http://backend-api-server/

location / {
	proxy_pass http://127.0.0.1:8001;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
}

示例:

server {
        listen 80;
        server_name a.baidu.cn;

        location / {
            proxy_pass http://127.0.0.1:8001;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root html;
        }
    }

     server {
        listen 80;
        server_name b.baidu.cn;
        location / {
            proxy_pass http://127.0.0.1:8002;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root html;
        }
    }
    server {
        listen 8001;
        server_name  a.baidu.cn;
        location / {
            root C:/nginx-web/three.js-158/examples/;
            index index.html;
        }
    }
    server {
        listen 8002;
        server_name  b.baidu.cn;
        location / {
            root C:/nginx-web/Cesium-1.111/;
            index index.html;
        }
    }

原理
每個服務都需要佔用一個埠號來啟動服務,監聽對應的二級域名server_name,然後使用轉發即可

location / {
	server_name a.baidu.com;
	proxy_pass http://127.0.0.1:8002;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
}

啟用gzip

Gzip 是一種通用的檔案壓縮演算法,用於減小檔案大小以提高網路傳輸效率。在 Web 開發中,Gzip 壓縮常用於減小靜態檔案(如 HTML、CSS、JavaScript 等)的大小,從而加快頁面載入速度。

http {
  gzip on;
  gzip_comp_level 5;
  gzip_types text/plain text/html text/css application/javascript image/svg+xml;
}
  1. gzip on 啟用 Gzip 壓縮功能。
  2. gzip_comp_level 設定壓縮級別,範圍從 1 到 9,數字越大壓縮比越高,但同時也消耗更多的 CPU 資源。
  3. gzip_types 設定需要進行壓縮的 MIME 型別。

負載均衡

  1. 定義伺服器列表,用的upstream進行定義,upstream 是一個用於定義一組後端伺服器的指令。它通常用於配置反向代理和負載均衡。upstream 指令允許你列出多個伺服器,併為每個伺服器指定其地址和埠。這些伺服器可以是本地伺服器,也可以是遠端伺服器。
upstream backend {
	server backend1.example.com:8080;
	server backend2.example.com:8080;
	server backend3.example.com:8080;
}
  1. 配置負載均衡演算法
upstream backend {
	least_conn;
	server backend1.example.com:8080;
	server backend2.example.com:8080;
	server backend3.example.com:8080;
}

least_conn 參數列示使用最少連線演算法,將請求轉發給連線數最少的伺服器。

問題

  1. 轉換字串,windows下路徑字串是\,要轉換成/,否則會被轉義出錯
  2. 每條語句都要加上;來結尾,否則會報錯;

相關文章