最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ubuntu中Nginx虛擬主機設(shè)置的項目實踐

 更新時間:2025年03月16日 10:53:02   作者:The_SkyUzi  
通過配置虛擬主機,可以在同一臺服務(wù)器上運行多個獨立的網(wǎng)站,本文主要介紹了Ubuntu中Nginx虛擬主機設(shè)置的項目實踐,具有一定的參考價值,感興趣的可以了解一下

簡介

Nginx 是一個高性能的 HTTP 和反向代理服務(wù)器,廣泛用于托管多個網(wǎng)站或應(yīng)用。通過配置虛擬主機(Virtual Hosts),可以在同一臺服務(wù)器上運行多個獨立的網(wǎng)站。本文將指導(dǎo)你如何在 Nginx 中設(shè)置虛擬主機。

安裝 Nginx

確保你的服務(wù)器已經(jīng)安裝了 Nginx。如果沒有,可以使用以下命令進行安裝:

sudo apt update
sudo apt install nginx

安裝完成后,可以通過以下命令啟動并啟用 Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

創(chuàng)建虛擬主機

1. 創(chuàng)建網(wǎng)站目錄

為每個虛擬主機創(chuàng)建一個單獨的目錄來存放網(wǎng)站文件。例如,為 example.com 創(chuàng)建目錄:

sudo mkdir -p /var/www/example.com/html
sudo chmod -R 755 /var/www/example.com

2. 創(chuàng)建默認(rèn)索引文件

在網(wǎng)站目錄中創(chuàng)建一個簡單的 index.html 文件:

echo "<html><body><h1>Welcome to example.com!</h1></body></html>" | sudo tee /var/www/example.com/html/index.html

3. 配置 Nginx

編輯或創(chuàng)建一個新的虛擬主機配置文件。通常,這些文件位于 /etc/nginx/sites-available/ 目錄下。例如,創(chuàng)建 example.com 的配置文件:

sudo nano /etc/nginx/sites-available/example.com

添加以下內(nèi)容到配置文件中:

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

    root /var/www/example.com/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    # 可選:啟用目錄列表
    # location / {
    #     autoindex on;
    #     try_files $uri $uri/ =404;
    # }
}

保存并關(guān)閉文件。

4. 啟用虛擬主機

創(chuàng)建一個符號鏈接,將配置文件鏈接到 /etc/nginx/sites-enabled/ 目錄,以啟用該虛擬主機:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

禁用默認(rèn)的 Nginx 配置(如果不需要):

sudo rm /etc/nginx/sites-enabled/default

配置文件結(jié)構(gòu)

Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf,而虛擬主機的配置文件通常位于 /etc/nginx/sites-available/。你可以通過創(chuàng)建符號鏈接到 /etc/nginx/sites-enabled/ 來啟用這些配置文件。

示例配置文件

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

    root /var/www/example.com/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    # 訪問日志和錯誤日志
    access_log /var/log/nginx/example.com.access.log combined;
    error_log /var/log/nginx/example.com.error.log warn;
}

設(shè)置訪問日志和錯誤日志

為了更好地監(jiān)控和調(diào)試,建議為每個虛擬主機設(shè)置獨立的訪問日志和錯誤日志。你可以在 server 塊中添加以下指令:

access_log /var/log/nginx/example.com.access.log combined;
error_log /var/log/nginx/example.com.error.log warn;

這將為 example.com 創(chuàng)建獨立的日志文件,分別記錄訪問請求和錯誤信息。

處理 403 Forbidden 錯誤

如果你遇到 403 Forbidden 錯誤,可能是由于以下原因:

沒有設(shè)置 index 文件

確保網(wǎng)站目錄中存在一個默認(rèn)的索引文件(如 index.html 或 index.htm)。

在 server 塊中添加 index 指令,指定要使用的索引文件。

禁用了目錄列表

如果你希望用戶能夠訪問目錄內(nèi)容,但不想提供默認(rèn)的索引文件,可以在 location 塊中添加 autoindex on;

文件和目錄權(quán)限問題

確保 Nginx 運行的用戶(通常是 www-data)有權(quán)限讀取網(wǎng)站目錄及其文件。

使用以下命令設(shè)置正確的權(quán)限:

sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 755 /var/www/example.com

SELinux 或 AppArmor 設(shè)置

如果系統(tǒng)啟用了 SELinux 或 AppArmor,這些安全模塊可能會限制 Nginx 訪問文件。你可以通過以下命令查看狀態(tài):

sudo aa-status
sudo sestatus

測試和重啟 Nginx

在對配置文件進行任何更改后,記得測試 Nginx 配置是否正確,并重新加載或重啟 Nginx 服務(wù):

sudo nginx -t
sudo systemctl reload nginx
# 或者
sudo service nginx reload

Nginx 目錄重要文件和目錄

主要目錄和文件

  • /etc/nginx/nginx.conf: Nginx 的主配置文件。
  • /etc/nginx/sites-available/: 存放虛擬主機配置文件的目錄。
  • /etc/nginx/sites-enabled/: 存放已啟用的虛擬主機配置文件的目錄。
  • /var/log/nginx/: 存放 Nginx 日志文件的目錄。
  • /var/www/: 存放網(wǎng)站文件的目錄。

圖片中的文件和目錄

根據(jù)提供的圖片,以下是重要的文件和目錄:

  • conf.d: 存放額外配置文件的目錄。
  • modules-available: 存放可用模塊的目錄。
  • modules-enabled: 存放已啟用模塊的目錄。
  • sites-available: 存放虛擬主機配置文件的目錄。
  • sites-enabled: 存放已啟用虛擬主機配置文件的目錄。

server_name 指令詳解

server_name 指令用于指定 Nginx 應(yīng)響應(yīng)哪些域名的請求。它是一個非常重要的指令,特別是在配置虛擬主機時。以下是 server_name 的詳細(xì)說明和常見用法:

語法

server_name domain.tld [domain2.tld ...];

常見用法

單個域名
如果你只有一個域名,可以直接在 server_name 后面寫上該域名:

server {
    listen 80;
    server_name example.com;

    # 其他配置...
}

多個域名
如果你有多個域名指向同一個網(wǎng)站,可以在 server_name 后面列出所有域名,用空格分隔:

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

    # 其他配置...
}

帶通配符的域名
如果你有一組子域名,可以使用通配符來匹配這些子域名。例如,*.example.com 可以匹配所有 example.com 的子域名:

server {
    listen 80;
    server_name *.example.com;

    # 其他配置...
}

IP 地址
你也可以使用 IP 地址作為 server_name,這在測試環(huán)境中特別有用:

server {
    listen 80;
    server_name 192.168.1.100;

    # 其他配置...
}

默認(rèn)服務(wù)器
如果你不指定 server_name 或者希望 Nginx 響應(yīng)所有未匹配到其他 server_name 的請求,可以使用下劃線 _ 作為 server_name,或者省略 server_name 并使用 default_server 參數(shù):

server {
    listen 80 default_server;
    # 或者
    server_name _;

    # 其他配置...
}

特殊情況

精確匹配
你可以使用 = 來進行精確匹配,只有當(dāng)請求的域名完全匹配時才會生效:

server {
    listen 80;
    server_name = example.com;

    # 其他配置...
}

正則表達式
你可以使用正則表達式來匹配復(fù)雜的域名模式。正則表達式需要以 ~ 開頭:

server {
    listen 80;
    server_name ~^(www\.)?(?<domain>.+)$;

    # 其他配置...
}

在這個例子中,www.example.com 和 example.com 都會匹配,并且你可以通過 $domain 變量獲取去掉 www. 后的域名。

注意事項

  • DNS 解析:確保你的域名已經(jīng)正確解析到服務(wù)器的 IP 地址。你可以通過 ping 或 nslookup 命令檢查域名解析是否正確。
  • SSL/TLS 配置:如果你使用 HTTPS,還需要配置 SSL 證書和密鑰,并將 listen 指令改為 listen 443 ssl;。
  • 防火墻設(shè)置:確保服務(wù)器的防火墻允許 HTTP (80) 和 HTTPS (443) 端口的流量。

示例:完整的虛擬主機配置

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

    root /var/www/example.com/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    # 訪問日志和錯誤日志
    access_log /var/log/nginx/example.com.access.log combined;
    error_log /var/log/nginx/example.com.error.log warn;
}

參考資源

總結(jié)

通過以上步驟,你應(yīng)該能夠在 Nginx 中成功設(shè)置虛擬主機。server_name 指令是配置虛擬主機的關(guān)鍵部分,確保你正確設(shè)置了域名、通配符或其他匹配規(guī)則。如果有任何問題,請檢查 Nginx 的錯誤日志,尋找更多線索。希望這篇筆記能幫助你順利配置 Nginx 虛擬主機!

到此這篇關(guān)于Ubuntu中Nginx虛擬主機設(shè)置的項目實踐的文章就介紹到這了,更多相關(guān)Nginx虛擬主機設(shè)置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx中報錯:Permission denied與Connection refused的解決

    Nginx中報錯:Permission denied與Connection refused的解決

    這篇文章主要給大家介紹了在Nginx中報錯:13: Permission denied與111: Connection refused的解決方法,文中介紹的非常詳細(xì),相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • nginx之從main函數(shù)開始了解配置文件處理及配置信息的讀入過程

    nginx之從main函數(shù)開始了解配置文件處理及配置信息的讀入過程

    這篇文章主要介紹了nginx之從main函數(shù)開始了解配置文件處理及配置信息的讀入過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • 使用?nginx?搭建代理服務(wù)器(正向代理?https?網(wǎng)站)的詳細(xì)步驟

    使用?nginx?搭建代理服務(wù)器(正向代理?https?網(wǎng)站)的詳細(xì)步驟

    這篇文章主要介紹了使用?nginx?搭建代理服務(wù)器(正向代理?https?網(wǎng)站)指南的相關(guān)操作,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • nginx上部署react項目的實例方法

    nginx上部署react項目的實例方法

    今天小編就為大家分享一篇關(guān)于nginx上部署react項目的實例方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 配置nginx 重定向到系統(tǒng)維護頁面

    配置nginx 重定向到系統(tǒng)維護頁面

    今天抽時間給大家普及nginx 重定向到系統(tǒng)維護頁面的配置內(nèi)容,nginx重定向問題說起來也很簡單,因為重定向后直接跳轉(zhuǎn)到靜態(tài)頁面,不需要后續(xù)操作和記錄,所以直接301永久重定向。今天簡單給大家介紹配置方法,一起看看吧
    2021-06-06
  • Nginx?413修改上傳文件大小限制的方法詳解

    Nginx?413修改上傳文件大小限制的方法詳解

    在使用?Nginx?作為?Web?服務(wù)器時,有時會遇到客戶端嘗試上傳大文件時返回???413?Request?Entity?Too?Large???的錯誤,本文將介紹如何通過配置?Nginx?來解決這個問題,有需要的可以參考下
    2025-05-05
  • nginx的location的優(yōu)先級和匹配方式

    nginx的location的優(yōu)先級和匹配方式

    location是Nginx中的塊級指令,本文主要介紹了nginx的location的優(yōu)先級和匹配方式,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Nginx在MAC上的安裝、啟動、重啟和關(guān)閉

    Nginx在MAC上的安裝、啟動、重啟和關(guān)閉

    這篇文章主要介紹了Nginx在MAC上的安裝、啟動、重啟和關(guān)閉的相關(guān)資料,需要的朋友可以參考下
    2018-03-03
  • Keepalived搭建nginx高可用的實現(xiàn)

    Keepalived搭建nginx高可用的實現(xiàn)

    這篇文章主要介紹了Keepalived搭建nginx高可用的實現(xiàn),通過VIP實現(xiàn)主備切換,檢測進程狀態(tài)確保服務(wù)可用,具有一定的參考價值,感興趣的可以了解一下
    2025-05-05
  • nginx?openresty?快速入門指南

    nginx?openresty?快速入門指南

    OpenResty是基于Nginx與Lua?的高性能Web平臺,其**內(nèi)部集成了大量精良的?Lua?庫、第三方模塊以及大多數(shù)的依賴項,**用于方便地搭建能夠處理超高并發(fā)、擴展性極高的動態(tài)?Web?應(yīng)用、Web?服務(wù)和動態(tài)網(wǎng)關(guān),這篇文章主要介紹了nginx?openresty?快速入門指南,需要的朋友可以參考下
    2024-02-02

最新評論

东乡| 屯昌县| 神池县| 道孚县| 六盘水市| 江达县| 揭东县| 庆云县| 广德县| 麻城市| 岳普湖县| 台中县| 余江县| 漠河县| 洪雅县| 平江县| 体育| 湖北省| 义乌市| 兰州市| 牡丹江市| 三穗县| 牟定县| 丰原市| 晋宁县| 抚州市| 英山县| 冀州市| 平阳县| 安庆市| 德惠市| 中超| 英德市| 商水县| 正宁县| 南溪县| 夏津县| 疏附县| 金塔县| 邵东县| 山丹县|