nginx 核心功能

目錄

一、基于授權的訪問控制

1. 使用 htpasswd 生成用戶認證文件

2. 修改 Nginx 主配置文件

二、基于客戶端的訪問控制

三、Nginx 虛擬主機

1. 基于域名的虛擬主機

2. 基于 IP 的虛擬主機

3. 基于端口的虛擬主機

四、LNMP 架構部署及應用

1. 安裝 MariaDB

2. 安裝并配置 PHP


一、基于授權的訪問控制

1. 使用 htpasswd 生成用戶認證文件

htpasswd可用于創建和管理用于基本認證的用戶密碼文件。執行以下命令來創建一個名為htpasswd.users的文件,并添加一個名為testuser的用戶:

htpasswd -c /etc/nginx/htpasswd.users testuser

執行該命令后,會提示你輸入testuser的密碼。

2. 修改 Nginx 主配置文件

要在 Nginx 中啟用基于授權的訪問控制,需要在配置文件里添加相關配置。以下是示例配置,假設要保護/protected路徑:

server {listen 80;server_name example.com;location /protected {auth_basic "Restricted Access";auth_basic_user_file /etc/nginx/htpasswd.users;}
}

輸入用戶名及密碼進行訪問

二、基于客戶端的訪問控制

可以通過allowdeny指令對特定 IP 地址或 IP 地址段進行訪問控制。以下是示例配置

server {listen 80;server_name example.com;# 只允許特定 IP 地址訪問allow 192.168.1.0/24;deny all;location / {# 其他配置}
}

三、Nginx 虛擬主機

Nginx 也可以配置多種類型的虛擬主機,分別是基于 IP 的虛擬主機、基于域名的虛擬主機、基于端口的虛擬主機。
使用 Nginx 搭建虛擬主機服務器時,每個虛擬 web 站點擁有獨立的“server{}”配置段,各自監聽的 IP 地址、端口號可以單獨指定,當然網站名稱也是不同的

1. 基于域名的虛擬主機

設置客戶端域名解析并準備網站

在客戶端的/etc/hosts文件中添加域名解析記錄:

127.0.0.1  site1.example.com
127.0.0.1  site2.example.com

在 Nginx 的網站根目錄下創建兩個不同的網站目錄和文件:

mkdir -p /var/www/site1
mkdir -p /var/www/site2
echo "This is site 1" > /var/www/site1/index.html
echo "This is site 2" > /var/www/site2/index.html

修改配置文件

server {listen 80;server_name site1.example.com;root /var/www/site1;index index.html;
}server {listen 80;server_name site2.example.com;root /var/www/site2;index index.html;
}

在瀏覽器中訪問http://site1.example.comhttp://site2.example.com,分別查看不同的網站內容。

2. 基于 IP 的虛擬主機

一臺主機如果有多個 IP 地址,可以設置每一個 IP 對應一個站點。主機安裝多個網卡可以有多個 IP,這里采用虛擬 IP 的方式使主機有多個 IP。

假設你要為服務器添加兩個額外的 IP 地址192.168.1.101192.168.1.102,可編輯網絡配置文件。

修改 Nginx 配置文件

server {listen 192.168.1.101:80;root /var/www/ip_site1;index index.html;
}server {listen 192.168.1.102:80;root /var/www/ip_site2;index index.html;
}

重新加載 Nginx 配置后,通過不同的 IP 地址訪問對應的網站。

3. 基于端口的虛擬主機

server {listen 8080;root /var/www/port_site;index index.html;
}

客戶端驗證時,在瀏覽器中訪問http://example.com:8080來查看網站內容。

四、LNMP 架構部署及應用

LNMP 平臺是目前應用最為廣泛的網站服務器架構,

  • L:linux系統
  • N:nginx服務
  • M:mysql服務
  • P:php認證

1. 安裝 MariaDB

使用聯網的方式快速安裝 MariaDB:

sudo apt update
sudo apt install mariadb-server

2. 安裝并配置 PHP

編譯安裝的基本信息

sudo apt install php-fpm php-mysql

安裝后的調整

編輯/etc/php/7.4/fpm/pool.d/www.conf(根據實際 PHP 版本調整),確保listen配置正確:

listen = /run/php/php7.4-fpm.sock

為 PHP 添加 Zend 優化模塊

安裝opcache

sudo apt install php-opcache

編輯/etc/php/7.4/fpm/php.ini(根據實際 PHP 版本調整),啟用opcache

zend_extension=opcache.so
opcache.enable=1

配置 Nginx 支持 PHP 環境

server {listen 80;server_name example.com;root /var/www/html;index index.php index.html;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {fastcgi_pass unix:/run/php/php7.4-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}

準備 PHP 頁面代碼

/var/www/html目錄下創建一個info.php文件:

<?php
phpinfo();
?>

在瀏覽器中訪問http://example.com/info.php,查看 PHP 信息頁面。

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

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

相關文章

mongoose插入文檔,字段類型, 字段驗證, 刪除文檔,更新文檔,讀取文檔,查詢文檔的條件控制 ,字段篩選,數據排序,數據截取

、Mongoose 中與 文檔操作&#xff08;插入、查詢、更新、刪除&#xff09;及其相關功能&#xff08;字段類型、驗證、條件篩選、排序、分頁等&#xff09;相關示例&#xff1a; &#x1f4cb; 一、字段類型定義&#xff08;Schema Types&#xff09; const mongoose require…

類和對象 (拷貝構造函數和運算符重載)上

類和對象 (拷貝構造函數和運算符重載)上 拷貝構造函數存在的原因及解決的 C 語言問題 1. 淺拷貝帶來的問題 在 C 語言里&#xff0c;當對結構體或者數組進行拷貝操作時&#xff0c;執行的是淺拷貝。所謂淺拷貝&#xff0c;就是單純地把一個對象的所有成員變量的值復制到另一…

Python深度挖掘:openpyxl和pandas的使用詳細

文章目錄 一、Excel處理在數據分析中的重要性二、openpyxl基礎與核心功能2.1 openpyxl簡介與安裝2.2 工作簿與工作表的基本操作創建新工作簿打開已有工作簿工作表操作 2.3 單元格操作詳解基本單元格操作批量操作單元格特殊單元格操作 2.4 樣式與格式設置字體樣式對齊方式邊框設…

Android Q允許低內存啟用系統彈窗

如果SYSTEM_ALERT_WINDOW權限可用&#xff0c;則返回true。 *從Q開始&#xff0c;在低ram手機上禁用SYSTEM_ALERT_WINDOW。 vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/Utils.java public static boolean isSystemAlertWindowEnabled(Co…

taro小程序如何實現大文件(視頻、圖片)后臺下載功能?

一、需求背景 1、需要實現小程序下載最大500M視頻 2、同時需支持圖片下載 3、退到其他頁面再次回到當前頁面時&#xff0c;下載進度也需要展示 二、實現步驟 1、在app.ts文件定義一個全局變量globalDownLoadData 2、寫一個獨立的下載hooks&#xff0c;代碼如下&#xff08;…

BUUCTF——Online Tool

BUUCTF——Online Tool 進入靶場 <?phpif (isset($_SERVER[HTTP_X_FORWARDED_FOR])) {$_SERVER[REMOTE_ADDR] $_SERVER[HTTP_X_FORWARDED_FOR]; }if(!isset($_GET[host])) {highlight_file(__FILE__); } else {$host $_GET[host];$host escapeshellarg($host);$host e…

《解鎖CSS Flex布局:重塑現代網頁布局的底層邏輯》

網頁布局作為用戶體驗的基石&#xff0c;其重要性不言而喻。從早期簡單的表格布局&#xff0c;到后來基于浮動與定位的復雜嘗試&#xff0c;網頁布局技術始終在不斷演進。而CSS Flex布局的出現&#xff0c;宛如一顆璀璨的新星&#xff0c;徹底革新了網頁布局的設計理念與實踐方…

4.28-4.29 Vue

基于數據渲染出用戶看到的頁面。 常用指令&#xff1a; click單擊事件。 axios&#xff1a; 發出請求后&#xff0c;不會等待請求結束&#xff0c;而是繼續進行下面的代碼。

每日算法-250429

每日 LeetCode 題解 (2025-04-29) 大家好&#xff01;這是今天的 LeetCode 刷題記錄&#xff0c;主要涉及幾道可以使用貪心策略解決的問題。 2037. 使每位學生都有座位的最少移動次數 題目描述: 思路 貪心 解題過程 要使總移動次數最少&#xff0c;直觀的想法是讓每個學生…

yolov8+kalman 實現目標跟蹤統計人流量

簡述 最近接了畢業生的畢業設計題&#xff0c;想著幫幫忙&#xff0c;要使用機器視覺識別&#xff0c;追蹤和邏輯統計的方式來統計人流&#xff0c;要求是滿足下面特性 高精度&#xff1a;YOLOv8 提供高質量檢測&#xff0c;卡爾曼濾波平滑跟蹤。高效率&#xff1a;兩者結合滿…

Shopify網上商店GraphQL Admin接口查詢實戰

目錄 一、Shopify網上商店 二、個人商店配置接口權限 三、PostMan調用接口測試 四、通過Java服務調用接口 一、Shopify網上商店 Shopify是由Tobi Ltke創辦的加拿大電子商務軟件開發商&#xff0c;總部位于加拿大首都渥太華&#xff0c;已從一家在咖啡店辦公的 5人團隊&…

【Tips】高效文獻管理:Zotero 導入參考文獻的多種方式詳解

高效文獻管理&#xff1a;Zotero 導入參考文獻的多種方式詳解 在學術研究中&#xff0c;高效管理參考文獻是提升效率的關鍵。Zotero 作為一款強大的文獻管理工具&#xff0c;提供了多種便捷的文獻導入方式。以下結合文獻題錄完整性對比分析&#xff0c;為大家詳細介紹 Zotero …

[AI]browser-use + web-ui 大模型實現自動操作瀏覽器

[AI]browser-use web-ui 大模型實現自動操作瀏覽器 介紹 官方地址&#xff1a;https://github.com/browser-use/web-ui browser-use主要作用是將 AI Agent 與瀏覽器鏈接起來從而實現由 AI 驅動的瀏覽器自動化。今天會給大家介紹如何通過browser-use web-ui來搭建并操作browse…

Springboot請求靜態資源時,request.getServletPath() 返回error

大家好&#xff0c;我是 程序員碼遞夫。 SpringBoot請求靜態資源時&#xff0c;request.getServletPath() 返回error&#xff0c; 明明我的目錄文件是存在的怎么就報錯了呢&#xff1f; 如我請求 http://127.0.0.1:9090/Hanfu/upload/1647161536390.png 通常是因為請求的資…

在開發板上如何處理curl: (60) SSL certificate problem

目錄 引言 問題解析 解決方法 跳過證書驗證 采用證書認證 結語 引言 最近一直推薦學生們在課程實驗中使用curl及其libcurl。curl 是一個強大的命令行工具&#xff0c;用于在命令行中進行數據傳輸。它支持多種協議&#xff0c;如 HTTP、HTTPS、FTP、FTPS、SCP、SFTP 等。…

CSRF請求偽造

該漏洞主要是關乎于用戶&#xff0c;告誡用戶不可亂點擊鏈接&#xff0c;提升自我防范&#xff0c;才能不落入Hacker布置的陷阱&#xff01; 1. cookie與session 簡單理解一下兩者作用 1.1. &#x1f36a; Cookie&#xff1a;就像超市的會員卡 存儲位置&#xff1a;你錢包里…

Python循環與遍歷詳解:從入門到進階

在Python編程中&#xff0c;循環和遍歷是最基礎但極其重要的知識點。理解并掌握這部分內容&#xff0c;是編寫高效、清晰代碼的前提。本文將從for循環和while循環的基本語法出發&#xff0c;逐步深入探討range、enumerate、zip、列表推導式、字典遍歷等Python中常見的遍歷技巧&…

Python-MCPServer開發

Python-MCPServer開發 使用FastMCP開發【SSE模式的MCPServer】&#xff0c;熟悉【McpServer編碼過程】【McpServer調試方法】 1-核心知識點 1-熟悉【SSE模式的MCPServer】開發2-熟悉【stdio模式的MCPServer】開發3-熟悉【啟動MCPServer】的三種方式 3.1-直接啟動:python mcp_s…

高級項目管理

在信息系統項目管理工作中&#xff0c;組織管理者和項目管理者&#xff0c;有時還會面臨多項目的管理&#xff0c;或組織級的項目管理、項目的量化管理等課題。 其中&#xff0c;項目集管理、項目組合管理和組織級項目管理&#xff0c;為多項目管理和組織級管理提供有效指導&a…

tarjan縮點+強聯通分量

【模板】縮點https://www.luogu.com.cn/problem/P3387 首先我們要理解這道題為什么要用縮點 題目說的是有向圖&#xff0c;如果無環的話就可以用DP來解決了 由于可以走重復的點&#xff0c;所以一個環上的點可以看成是一個點&#xff0c;它的點權就等于該環上所有點的點權之…