基于三臺主機搭建 Web 服務環境:Nginx、NFS 與 DNS 配置全流程

基于三臺主機搭建 Web 服務環境:Nginx、NFS 與 DNS 配置全流程

一、引言

在當今數字化的時代,搭建一個穩定、高效的 Web 服務環境是許多開發者和運維人員的常見需求。本文將詳細介紹如何利用三臺主機搭建一個包含 Nginx、NFS 和 DNS 服務的 Web 環境,包括各服務的配置步驟以及最后的測試環節,希望能對大家有所幫助。

二、環境準備

本次搭建涉及三臺主機,各主機的信息如下:

主機角色IP 地址主機名
Web 端192.168.2.130web
DNS 端192.168.2.131dns
NFS 和防火墻端192.168.2.132nfs_firewall

三、NFS 和防火墻端(nfs_firewall)配置

1. 設置主機名并啟動防火墻

[root@nfs_firewall ~]# hostnamectl set-hostname nfs_firewall
[root@nfs_firewall ~]# systemctl start firewalld

2. 安裝 NFS 服務

[root@nfs_firewall ~]# yum install nfs-utils -y

3. 設置共享目錄權限

[root@nfs_firewall ~]# ls /
afs  boot  etc   lib    lost+found  mnt  proc  run   sczl  sys  usr
bin  dev   home  lib64  media       opt  root  sbin  srv   tmp  var
[root@nfs_firewall ~]# chmod -R 777 /sczl

4. 配置 NFS 共享

[root@nfs_firewall ~]# vim /etc/exports
/sczl   192.168.2.131/24(rw,sync,all_squash)

5. 啟動 NFS 相關服務

[root@nfs_firewall ~]# systemctl start rpcbind
[root@nfs_firewall ~]# systemctl start nfs-server

6. 配置防火墻規則

[root@nfs_firewall ~]# firewall-cmd --permanent --zone=public --add-service=http
success
[root@nfs_firewall ~]# firewall-cmd --permanent --zone=public --add-service=nfs
success
[root@nfs_firewall ~]# firewall-cmd --permanent --zone=public --add-service=rpc-bind
success
[root@nfs_firewall ~]# firewall-cmd --permanent --zone=public --add-service=mountd
success
[root@nfs_firewall ~]# firewall-cmd --permanent --zone=public --add-service=dns
success
[root@nfs_firewall ~]# firewall-cmd --reload
success

四、Nginx 端(web)配置

1. 安裝 Nginx 和 NFS 客戶端

[root@web ~]# yum install nginx -y
[root@web ~]# yum install nfs-utils -y

2. 配置 Nginx

[root@web ~]# vim /etc/nginx/nginx.conf

在配置文件中添加以下內容:

    server {listen       80;listen       [::]:80;server_name  _;root         /www;}

3. 創建掛載目錄并掛載 NFS 共享

[root@web ~]# mkdir /www
[root@web ~]# mount -t nfs 192.168.2.132:/sczl /www
[root@web ~]# cd /www
[root@web www]# ls
css  dingban.mp4  img  index.html  js  temp

4. 配置 DNS 并啟動 Nginx

[root@web ~]# nmcli c modify ens32 ipv4.dns 192.168.2.131
[root@web ~]# nmcli c reload
[root@web ~]# nmcli c up ens32
連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/2)
[root@web ~]# systemctl start nginx

五、DNS 端(dns)配置

1. 配置 named.conf

[root@dns ~]# vim /etc/named.conf 

在配置文件中添加以下內容:

options {listen-on port 53 { any; };listen-on-v6 port 53 { ::1; };directory       "/var/named";dump-file       "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";secroots-file   "/var/named/data/named.secroots";recursing-file  "/var/named/data/named.recursing";allow-query     { any; };
}

2. 配置 named.rfc1912.zones

[root@dns ~]# vim /etc/named.rfc1912.zones

添加以下內容:

zone "sczl.com" IN {type master;file "sczl.com.zone";allow-update { none; };
};

3. 創建并配置區域文件

[root@dns ~]# cd /var/named/
[root@dns named]# ls
data     named.ca     named.localhost  slaves
dynamic  named.empty  named.loopback
[root@dns named]# cp -a named.localhost sczl.com.zone
[root@dns named]# vim sczl.com.zone 

添加以下內容:

$TTL 1D
@       IN SOA  ns.sczl.com. andy.qq.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumIN      NS      ns.sczl.com.
ns.sczl.com.    IN      A       192.168.2.131
www.sczl.com.   IN      A       192.168.2.130

4. 啟動 DNS 服務

[root@dns named]# systemctl start named

六、測試

1. 使用 curl 測試 Web 服務

[root@web ~]# curl www.sczl.com
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>FullPage</title>

在這里插入圖片描述

2. 使用 nslookup 測試 DNS 解析

[root@web ~]# nslookup www.sczl.com
Server:		192.168.2.131
Address:	192.168.2.131#53Name:	www.sczl.com
Address: 192.168.2.130

在這里插入圖片描述

在 Windows 系統中修改 DNS 服務器地址

如果你想在 Windows 系統中使用 Linux 上搭建的 DNS 服務器(地址為 192.168.2.131),可以按照以下步驟操作:

  1. 打開網絡連接設置
    • 右鍵點擊任務欄上的網絡圖標,選擇 “打開網絡和 Internet 設置”。
    • 在設置窗口中,點擊 “更改適配器選項”。
  2. 選擇網絡連接
    • 找到你正在使用的網絡連接(如以太網或 Wi-Fi),右鍵點擊該連接,選擇 “屬性”。
  3. 配置 IPv4 DNS 服務器
    • 在 “網絡連接屬性” 窗口中,選中 “Internet 協議版本 4 (TCP/IPv4)”,然后點擊 “屬性” 按鈕。
    • 在彈出的 “Internet 協議版本 4 (TCP/IPv4) 屬性” 窗口中,選擇 “使用下面的 DNS 服務器地址”。
    • 在 “首選 DNS 服務器” 中輸入 Linux 上搭建的 DNS 服務器地址:192.168.2.131。

在這里插入圖片描述

七、總結

通過以上步驟,我們成功利用三臺主機搭建了一個包含 Nginx、NFS 和 DNS 服務的 Web 環境。在實際應用中,我們可以根據需要對各個服務進行進一步的優化和擴展。希望本文能為你提供一些幫助,讓你在搭建 Web 服務環境時更加得心應手

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916744.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916744.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916744.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL——MVCC

1.為什么需要MVCC在并發場景下&#xff0c;讀寫操作會面臨嚴重的沖突問題&#xff1a;1.讀操作如果遇到寫操作&#xff0c;要么“讀到未提交的臟數據”&#xff0c;要么“被寫操作阻塞&#xff08;等待鎖釋放&#xff09;”&#xff1b;2.寫操作如果遇到讀操作&#xff0c;要么…

數據結構第2問:什么是算法?

算法 算法是一組用于解決具體問題的、明確的、有序的步驟或規則&#xff0c;能夠在有限的時間內通過這些步驟得到問題的答案。 算法的5個重要特性&#xff1a; 有窮性&#xff1a;算法必須在有限的步驟內結束&#xff0c;不能無限循環&#xff0c;保證最終能夠得到結果。確定性…

12-大語言模型—Transformer 打地基,下游任務蓋出百樣房,指標來驗收|下游任務白話指南

目錄 1、核心邏輯&#xff1a;Transformer 的 “語言處理閉環” 2、轉導與感知 → 模型咋 “理解語言”&#xff1f; 2.1、 人類 vs 機器的 “語言理解邏輯” 2.2、 自注意力機制&#xff1a;模型 “理解語言” 的數學核心 2.2.1、通俗拆解 2.2.1.1、是什么&#xff1f; …

深入探索爬蟲與自動化腳本:釋放效率的利器

在當今信息爆炸的時代&#xff0c;高效獲取和處理數據已成為核心競爭力。爬蟲與自動化腳本正是解決這一痛點的關鍵技術——它們如同數字世界的勤勞助手&#xff0c;幫我們自動完成繁瑣重復的任務。下面我們來系統了解這兩項技術的核心要點、應用場景和最佳實踐。一、爬蟲與自動…

React函數組件的“生活管家“——useEffect Hook詳解

&#x1f3af; React函數組件的"生活管家"——useEffect Hook詳解 1. &#x1f31f; 開篇&#xff1a;從生活中的"副作用"說起 嘿&#xff0c;各位掘友們&#xff01;今天咱們來聊聊React函數組件里的一個“大管家”——useEffect Hook。你可能會問&#x…

python基礎:request請求Cookie保持登錄狀態、重定向與歷史請求、SSL證書校驗、超時和重試失敗、自動生成request請求代碼和案例實踐

Cookie保持登錄狀態cookie session鑒權機制 cookie是由web服務器保存在用戶瀏覽器&#xff08;客戶端&#xff09;上的小文本文件&#xff0c;他可以包含有關用戶的信息。無論何時用戶訪問到服務器&#xff0c;都會帶上該服務器的cookie信息&#xff0c;一般cookie都是有有效期…

Vulkan入門教程 | 第二部分:創建實例

前言&#xff1a;本教程為筆者依據教程https://docs.vulkan.net.cn/spec/latest/index.html#_about進行Vulkan學習并結合自己的理解整理的筆記&#xff0c;供大家學習和參考。 &#xff08;注意&#xff1a;代碼僅為片段&#xff0c;非完整程序&#xff09; 學習前提&#xff1…

PHP云原生架構:容器化、Kubernetes與Serverless實踐

引言 隨著云計算的普及,PHP應用也在向云原生架構演進。本文將深入探討PHP在云原生環境中的最佳實踐,包括容器化部署、Kubernetes編排、Serverless架構以及云原生監控與日志方案,幫助開發者構建現代化、可擴展的PHP應用。 容器化PHP應用 基礎Dockerfile優化 # 多階段構建…

【華為機試】5. 最長回文子串

文章目錄5. 最長回文子串描述示例 1示例 2示例 3示例 4提示解題思路方法一&#xff1a;中心擴展法&#xff08;推薦&#xff09;方法二&#xff1a;動態規劃方法三&#xff1a;Manacher算法方法四&#xff1a;暴力解法代碼實現復雜度分析測試用例完整題解代碼5. 最長回文子串 …

【圖像處理基石】如何對遙感圖像進行實例分割?

遙感圖像實例分割是指在遙感影像中&#xff0c;不僅要識別出不同類別的目標&#xff08;如建筑物、車輛、道路等&#xff09;&#xff0c;還要區分同一類別中的不同個體&#xff08;如建筑物1、建筑物2&#xff09;&#xff0c;并為每個實例生成精確的像素級掩碼。 一、遙感圖…

電子電氣架構 --- 軟件bug的管理模式

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 簡單,單純,喜歡獨處,獨來獨往,不易合同頻過著接地氣的生活,除了生存溫飽問題之外,沒有什么過多的欲望,表面看起來很高冷,內心熱情,如果你身…

【每日一錯】Oracle 19c CDB中如何啟動一個PDB

文章目錄題目擴展學習CDB與PDB的概念CDB&#xff0c;PDB結構優勢總結題目 擴展學習 CDB與PDB的概念 在Oracle 12c及以上版本&#xff0c;Oracle引入了多租戶架構&#xff0c;這種架構讓數據庫的管理和資源使用更加高效。它由兩種主要組成部分組成&#xff1a; CDB&#xff0…

Android studio自帶的Android模擬器都是x86架構的嗎,需要把arm架構的app翻譯成x86指令?

Android studio自帶的Android模擬器都是x86架構的嗎&#xff0c;需要把arm架構的app翻譯成x86指令&#xff1f; deepseek回答&#xff1a; Android Studio 自帶的官方模擬器&#xff08;Android Emulator&#xff09;主要提供基于 x86 架構的系統鏡像。當運行 ARM 架構的應用…

Deep Learning_ Foundations and Concepts-Springer (2024)【拜讀】20章3節

Diffusion Models 擴散模型 我們已經了解到&#xff0c;構建強大的生成模型的一種有效方法是&#xff1a;先引入一個關于潛在變量z的分布p(z)&#xff0c;然后使用深度神經網絡將z變換到數據空間x。由于神經網絡具有通用性&#xff0c;能夠將簡單固定的分布轉化為關于x的高度靈…

Arduino與STM32:初學者該如何選擇?

在電子愛好者和初學者的世界里&#xff0c;Arduino和STM32是兩個經常被提及的名字。它們各自具有獨特的優勢和特點&#xff0c;適合不同類型的項目和需求。對于初學者來說&#xff0c;選擇Arduino還是STM32&#xff0c;往往取決于個人的學習目標、項目需求以及預算。本文將詳細…

創建型設計模式-工廠方法模式和抽象工廠方法模式

1、工廠方法模式 創建型設計模式之一 UML類圖2、抽象工廠模式 也是創建型設計模式之一。雖然抽象工廠方法模式的類繁多&#xff0c;但是&#xff0c;主要分為4類。 AbstractFactory&#xff1a;抽象工廠角色&#xff0c;它聲明了一組用于創建一種產品的方法&#xff0c;每一個方…

Hyperchain安全與隱私機制詳解

一、核心安全機制1. 共識算法安全RBFT共識算法&#xff1a;改進型PBFT&#xff1a;基于PBFT算法優化&#xff0c;增加動態節點管理、失效數據恢復機制&#xff0c;提升系統容錯性與可用性。性能指標&#xff1a;吞吐量穩定達3000-10000 TPS&#xff0c;交易執行時間控制在300ms…

Oracle優化學習十六

反連接反連接&#xff08;Anti Join&#xff09;是一種特殊的連接類型&#xff0c;與內連接和外連接不同&#xff0c;Oracle數據庫里并沒有相關的 關鍵字可以在SQL文本中專門表示反連接&#xff0c;所以這里把它單獨拿出來說明。為了方便說明反連接的含義&#xff0c;我們用“t…

梳理一些 Docker 常用命令

以下是一些 Docker 常用命令&#xff0c;適用于日常開發、調試、部署等場景&#xff0c;分為幾個常用類別&#xff1a;&#x1f4e6; 一、鏡像&#xff08;Image&#xff09;相關命令命令說明docker images查看本地所有鏡像docker pull <image>拉取鏡像&#xff08;如 do…

C#_ArrayList動態數組

目錄 ArrayList的特點 ArrayList 與普通數組的區別 使用示例&#xff1a; 普通數組 動態數組 主要方法和屬性 屬性&#xff1a; Count 獲取動態數組的數據個數 讀取某個位置的數據 // 索引 方法&#xff1a; Add 向集合末尾添加元素 Insert 在指定位置插入元…