LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

Nginx 常用命令操作啟動、停止、重啟、重載配置,以及CORS、反向代理跨域方案

admin
2025年6月28日 22:14 本文熱度 288

1 Nginx 核心

Nginx 是一個開源的高性能 HTTP 和反向代理服務器,以輕量級、高并發處理能力和低資源消耗著稱。除作為 Web 服務器外,還可充當郵件代理服務器和通用的 TCP/UDP 代理服務器,廣泛應用于現代 Web 架構中。

在 Windows 系統中使用 Nginx 時,命令行操作與類 Unix 系統存在差異,以下是基本操作:

1.1 環境準備

  1. 下載 Nginx for Windows 安裝包(需注意 Windows 版本僅支持穩定版,非主線開發版)。
  2. 解壓至指定目錄(如 C:\nginx),目錄結構包含 conf(配置文件)、html(靜態資源)等核心文件夾。

1.2 常用命令操作

1.2.1 啟動 Nginx

    # 切換到Nginx安裝目錄cd C:\nginx# 啟動Nginx服務start nginx

    1.2.2 停止 Nginx

      # 強制停止服務nginx -s stop# 優雅停止服務(處理完當前請求后停止)nginx -s quit

      1.2.3 重啟 Nginx

        # 先停止服務nginx -s stop# 再啟動服務start nginx

        1.2.4 重載配置

          # 當修改配置文件后,無需重啟服務即可使配置生效nginx -s reload

          2 Nginx 跨域方案

          2.1 CORS 跨域資源共享方案

          Nginx 可通過配置響應頭實現 CORS(Cross-Origin Resource Sharing),解決瀏覽器同源策略限制。

          2.1.1 add_header 指令配置

          在 Nginx 配置文件中(通常位于安裝目錄下的 conf\nginx.conf),可以使用 add_header指令添加跨域相關響應頭:

            server {    listen 8080;    server_name localhost;    location ~ \.json$ {        root   data;        # 安全建議:明確指定允許的域名而非使用通配符,*表示允許所有域名訪問        add_header 'Access-Control-Allow-Origin' 'http://yourdomain.com';        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';        add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';        # 預檢請求緩存時間(20天)        add_header 'Access-Control-Max-Age' 1728000;        # 允許瀏覽器在跨域請求中攜帶憑據(如cookies),需注意:此時Access-Control-Allow-Origin不可使用通配符        # add_header 'Access-Control-Allow-Credentials' 'true';        # 處理OPTIONS預檢請求        if ($request_method = 'OPTIONS') {            return 204;        }    }}

            2.1.2 前端請求示例 (users.html)

            下面是一個前端頁面示例,使用 Fetch API 請求 JSON 數據:

              <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Nginx跨域示例</title></head><body>    <script>        // 立即執行的異步函數        (async function () {            try {                // 發送GET請求到Nginx服務器                const response = await fetch('http://localhost:8080/users.json', {                    method'GET',                    headers: {                        'Accept''application/json'                    }                })                // 解析響應為JSON格式                const data = await response.json();                // 打印獲取到的數據                console.log('請求響應:', data);            } catch (error) {                // 錯誤處理                console.error('請求出錯:', error);            }        })();    </script></body></html>

              數據文件示例 (users.json) 如下:

                [{"id":1,"name":"張三"}]

                2.2 反向代理方案

                除了直接配置 CORS 響應頭,還可以通過 Nginx 反向代理來解決跨域問題,這種方法可將跨域請求轉為同域請求,規避瀏覽器同源策略,此方法在微服務架構中尤為常見。

                2.2.1 Nginx 代理配置

                在 Nginx 配置文件中添加以下代理規則:

                  server {    listen 8080;    server_name localhost;    # 匹配以/api開頭的URL路徑    location /api {        # 將請求代理到本地4000端口的服務(注意:proxy_pass末尾是否添加斜杠會影響路徑拼接)        proxy_pass http://localhost:4000;        # 常用代理配置項(傳遞客戶端真實信息)        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;    }}

                  2.2.2 后端服務示例 (serverb.js)

                  使用 Express 框架創建一個簡單的后端服務:

                    // serverb.jsconst express = require('express');const app = express();const users = [{id:1name:'張三'}];// 處理API請求(注意:接口路徑需與Nginx代理規則匹配)app.get('/api/users'(req, res) => {    res.json(users);});const port = 4000;app.listen(port, () => {    console.log(`后端服務運行在 http://localhost:${port}`);});

                    2.2.3 前端通過代理請求數據

                      <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Nginx代理跨域示例</title></head><body>    <script>        (async function () {            try {                // 通過Nginx代理訪問后端服務                const response = await fetch('http://localhost:8080/api/users', {                    method'GET',                    headers: {                        'Accept''application/json'                    }                })                const data = await response.json();                console.log('通過代理獲取的數據:', data);            } catch (error) {                console.error('代理請求出錯:', error);            }        })();    </script></body></html>

                      2.3 兩種跨域方案對比

                      維度CORS 方案反向代理方案
                      核心原理瀏覽器基于響應頭允許跨域將跨域請求轉為同域請求
                      配置位置Nginx 響應頭配置(add_headerNginx 代理規則配置(proxy_pass
                      適用場景前后端域名不同,需瀏覽器直接跨域前端與 Nginx 同域名,后端多服務部署
                      安全性需嚴格控制Allow-Origin,避免通配符前端無跨域風險,Nginx 可統一鑒權
                      性能影響存在預檢請求(OPTIONS)額外開銷無預檢開銷,性能更優
                      前端依賴需前端請求配合 CORS 規則(如憑據設置)前端無需特殊處理,按同域請求即可

                      本文系統介紹了 Nginx 在 Windows 環境下的基礎操作,以及兩種主流跨域解決方案:通過add_header配置 CORS 響應頭和基于反向代理的跨域處理機制。在實際開發中,可依據項目場景靈活選擇方案:

                      • 當前后端域名不同且需瀏覽器直接訪問跨域資源時,優先采用 CORS 方案,但需嚴格限定域名白名單,避免通配符濫用帶來的安全風險。
                      • 若項目采用微服務架構,或需要集中處理請求轉發、負載均衡及緩存策略,反向代理方案更為高效 —— 它通過將跨域請求轉換為同域請求,從根本上規避瀏覽器同源策略限制。

                      Nginx 憑借高性能與靈活配置特性,成為跨域問題的理想解決方案,同時在負載均衡、緩存優化等場景中也能發揮核心作用。實際使用時,建議養成定期備份配置文件的習慣,修改配置后通過nginx -t命令校驗語法正確性,再通過nginx -s reload平滑重載配置,確保服務穩定運行。通過 Nginx 處理跨域問題,既能發揮其高并發處理優勢,又能簡化前后端架構設計,是現代 Web 開發中不可或缺的基礎技術方案。


                      閱讀原文:原文鏈接


                      該文章在 2025/7/1 23:50:41 編輯過
                      關鍵字查詢
                      相關文章
                      正在查詢...
                      點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
                      點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
                      點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
                      點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
                      Copyright 2010-2025 ClickSun All Rights Reserved

                      黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
                      亚洲国产日本一区二区 | 亚洲一区精品自拍偷拍 | 中文字幕免费观看一区 | 午夜性色福利网 | 熟女少妇精品一区二区 | 亚洲欧美日韩另类久久 |