Centos7.2下使用Nginx實作虛擬主機
一、前言
首先需要確保在你的Linux 系統中已經正確安裝Nginx ,當然如果沒有安裝Nginx 請參考
系統環境:
Linux 環境: centos-7.2
Nginx 環境: nginx-1.9.9
#二、關於Nginx
Nginx是一款高效能的http 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。由俄羅斯的程式設計師Igor Sysoev所開發,官方測試nginx能夠支撐5萬並發鏈接,並且cpu、內存等資源消耗卻非常低,運行非常穩定。開源、免費。
三、使用 Nginx 能做什麼?
1、http伺服器:Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態伺服器。
2、虛擬主機:可以實現在一台伺服器虛擬出多個網站。例如個人網站使用的虛擬主機。
3、反向代理/負載平衡:當網站的訪問量達到一定程度後,單一伺服器無法滿足使用者的請求時,需要用多台伺服器叢集可以使用nginx做反向代理。而多台伺服器可以平均分擔負載,不會因為某台伺服器負載高宕機而某台伺服器閒置的情況。
四、使用Nginx 實作虛擬主機
在這裡我們需要知道,為什麼需要建立虛擬主機,在實際生產環境中,我們的業務都是透過公網存取的,
我在搭建雲端伺服器時,一個雲端伺服器對應一個公網IP ,所以公網IP 對於一般的公司是非常稀缺的資源,
對於一些大型的公司,如:BAT,可能就無所謂了。
所以在這裡使用 Nginx 實現虛擬主機,可以實現在同一台服務運行多個網站,而且網站之間互相不干擾。
同一個伺服器可能有一個ip,網站需要使用80端口,但是網站的網域不同。
區分不同的網站有三種方式:
1、http服務
2、實作虛擬機器
1) 基於ip的虛擬機器
2) 基於連接埠的虛擬機器
3) 基於網域的虛擬機器
3、反向代理、負載平衡
五、IP區分虛擬主機
在一台伺服器上綁定多個IP 位址。
方法一:
使用標準的網路設定工具(例如ifconfig和route指令)加入lP別名,
輸入指令「 ifconfig 」 查看目前ip 設定狀況,如下圖:
在ens33 網路卡再綁定一個ip:192.168.78.142 ,命名該網路卡為ens33:1
/sbin/ifconfig ens33:1 192.168.78.142 broadcast 192.168.78.255 netmask 255.255.255.0 up /sbin/route add -host 192.168.78.142 dev ens33:1
虛擬網卡建立完成後,如下圖:
#方法二:
1、將/etc/sysconfig/network-scripts/ifcfg- ens33 檔案複製一份,
進入目錄,輸入指令「 cp ifcfg-ens33 ifcfg-ens33:1 -r 」 命名為ifcfg-ens33:1 ,如下圖:
2、修改設定文件,輸入指令「 vi ifcfg-ens33:1 」 ,修改如下內容,
NAME=ens33:1 DEVICE=ens33:1 IPADDR=192.168.78.142
其他項目不用修改,修改完成後,如下圖:
建立完成後,測試新的IP 是否綁定成功,在DOS 視窗中輸入指令「 ping 192.168.78.142 」 ,如下圖:
注意:使用方法一綁定的IP ,在系統重啟後,會自動解綁,需要重新綁定,方法二則是永久的,這個是實操的結論。
3、重新啟動系統,
輸入指令「 reboot 」 ,重新啟動系統再輸入指令「 ifconfig 」 就可以看到正常建立了一個新的網路卡,
如下圖:
#六、nginx 實作虛擬機器
1)、設定nginx基於ip位址的虛擬主機
準備兩個標識nginx 的HTML,用於在測試時,好區別:進入到/usr/local/nginx 目錄下,將html 分別複製兩份,
在修改下面index.html 的內容,這兒較簡單就不在寫了,如果不知道請留言或私信,如下圖:
修改nginx 的設定文件,輸入命令「vi conf/nginx.config 」
#方便讀者的複製,我在這裡把不需要的刪除了,內容如下:
server { listen 80; server_name 192.168.78.141; location / { root html-141; index index.html index.htm; } } server { listen 80; server_name 192.168.78.142; location / { root html-142; index index.html index.htm; } }
如下圖:
##
测试nginx 虚拟主机是否可以正常访问,
测试 192.168.78.141 虚拟主机,如下图:
测试 192.168.78.142 虚拟主机,如下图:
2)、配置 nginx 基于端口的虚拟主机
还是老规矩,准备两个标识 nginx 的 HTML,用于在测试时好区别:进入到 /usr/local/nginx 目录下,将 html 分别复制两份,
在修改下面 index.html 的内容,这儿较简单就不在写了,如果不知道请留言或私信,如下图:
修改 nginx 的配置文件,输入命令 “ vi conf/nginx.config ”
方便读者的复制,内容如下:
server { listen 81; server_name 192.168.78.141; location / { root html-81; index index.html index.htm; } } server { listen 82; server_name 192.168.78.141; location / { root html-82; index index.html index.htm; } }
如下图所示:
重启Nginx 后,测试nginx 虚拟主机是否可以正常访问,
测试 81端口的 虚拟主机,如下图:
测试 82端口的 虚拟主机,如下图:
3)、基于域名的虚拟主机
基于域名的虚拟主机是最有用的虚拟主机配置方式。
即一个域名只能绑定一个ip地址,一个ip地址可以被多个域名绑定。
实现基于域名的虚拟主机,在这儿还需要修改 Linux 的 HostName,当然还可以通过 这个工具进行修改 ,对于互联网开发的人来说,经常变更 host 必不可免。每次我们都一遍一遍的去修改hosts文件真是很累,如果能更快速的修改成不同hosts,这儿为大家推荐一个好用的软件 SwitchHosts ,轻松一键切换。
以管理员身份打开,然后就可以设置域名和ip的映射关系,新增一个本地解决方案,键入如下内容,
192.168.78.141 www.12345.com 192.168.78.141 register.12345.com 192.168.78.141 login.12345.com
如下图:
注:修改window的hosts文件:(C:\Windows\System32\drivers\etc)
基于 Nginx 域名的虚拟主机配置,修改内容如下图:
server { listen 80; server_name www.12345.com; location / { root html; index index.html index.htm; } } server { listen 80; server_name register.12345.com; location / { root html-81; index index.html index.htm; } } server { listen 80; server_name login.12345.com; location / { root html-82; index index.html index.htm; } }
如下图所示:
修改配置文件后,需要 nginx 重新加载配置文件。
测试 www.12345.com,如下图:
测试 register.12345.com,如下图:
测试 login.12345.com,如下图:
相关推荐:
win10 apache配置虚拟主机后localhost无法使用
以上是Centos7.2下使用Nginx實作虛擬主機的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

在 Linux 中,使用以下命令檢查 Nginx 是否已啟動:systemctl status nginx根據命令輸出進行判斷:如果顯示 "Active: active (running)",則 Nginx 已啟動。如果顯示 "Active: inactive (dead)",則 Nginx 已停止。

在 Linux 中啟動 Nginx 的步驟:檢查 Nginx 是否已安裝。使用 systemctl start nginx 啟動 Nginx 服務。使用 systemctl enable nginx 啟用在系統啟動時自動啟動 Nginx。使用 systemctl status nginx 驗證啟動是否成功。在 Web 瀏覽器中訪問 http://localhost 查看默認歡迎頁面。

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

啟動 Nginx 服務器需要按照不同操作系統採取不同的步驟:Linux/Unix 系統:安裝 Nginx 軟件包(例如使用 apt-get 或 yum)。使用 systemctl 啟動 Nginx 服務(例如 sudo systemctl start nginx)。 Windows 系統:下載並安裝 Windows 二進製文件。使用 nginx.exe 可執行文件啟動 Nginx(例如 nginx.exe -c conf\nginx.conf)。無論使用哪種操作系統,您都可以通過訪問服務器 IP

解決 Nginx 跨域問題有兩種方法:修改跨域響應頭:添加指令以允許跨域請求,指定允許的方法和頭,以及設置緩存時間。使用 CORS 模塊:啟用模塊並配置 CORS 規則,允許跨域請求、方法、頭和設置緩存時間。

如何解決 Nginx 403 Forbidden 錯誤?檢查文件或目錄權限;2. 檢查 .htaccess 文件;3. 檢查 Nginx 配置文件;4. 重啟 Nginx。其他可能原因還包括防火牆規則、SELinux 設置或應用程序問題。

要在 Nginx 中將訪問地址設置為服務器 IP,請:配置服務器塊,設置監聽地址(如:listen 192.168.1.10:80)設置服務器名稱(如:server_name example.com www.example.com),或將其留空以訪問服務器 IP保存並重新加載 Nginx 以應用更改
