LNMP架構應用實戰——Nginx配置虛擬主機html
前面介紹了nginx服務的安裝與配置文件,今天介紹下它的另外一種實用配置——「虛擬主機」,每一個虛擬主機能夠是一個獨立的網站,能夠具備獨立的域名,同一臺服務器上的不一樣的虛擬主機之間是獨立的,用戶訪問不一樣虛擬主機如同訪問不一樣的服務器同樣,所以它不須要爲一個單獨的WEB站點提供單獨一個nginx服務器和一個單獨的nginx進程nginx
1、nginx虛擬主機簡單介紹web
同apache服務同樣,它也有三種不一樣的虛擬主機,基於域名的虛擬主機、基於IP的虛擬主機與基於端口的虛擬主機,至於其中的區別,請參考前面的 apache服務器的虛擬主機章節的相關介紹apache
2、nginx虛擬主機配置環境centos
系統環境瀏覽器
[root@centos6 scripts]# cat /etc/redhat-release 服務器
CentOS release 6.5 (Final)架構
[root@centos6 scripts]# uname -rapp
2.6.32-431.el6.x86_64運維
nginx服務的版本
[root@centos6 scripts]# /application/nginx/sbin/nginx -v
nginx version: nginx/1.10.1
3、nginx虛擬主機配置準備
生產環境的規範很重要,這是運維的重點,所以,配置前建立站點目錄
[root@centos6 ~]# mkdir /www/{www,bbs,blog} -p
[root@centos6 ~]# tree /www
/www
+-- bbs
+-- blog
+-- www
3 directories, 0 files
用於存放站點文件的目錄
---------------
受權目錄
--------------
[root@centos6 ~]# chown -R nginx.nginx /www
[root@centos6 ~]# ll /www/
total 12
drwxr-xr-x. 2 nginx nginx 4096 Dec 4 18:38 bbs
drwxr-xr-x. 2 nginx nginx 4096 Dec 4 18:38 blog
drwxr-xr-x. 2 nginx nginx 4096 Dec 4 18:38 www
------------------------------------------------------
接下來寫點東東進去吧,用於後面的測試
-----------------------------------------------------
[root@centos6 ~]# echo "welcont to mingongge's web stie" >/www/www/index.html
[root@centos6 ~]# echo "welcont to mingongge's bbs stie" >/www/bbs/index.html
[root@centos6 ~]# echo "welcont to mingongge's blog stie" >/www/blog/index.html
[root@centos6 ~]# cat /www/www/index.html
welcont to mingongge's web stie
[root@centos6 ~]# cat /www/bbs/index.html
welcont to mingongge's bbs stie
[root@centos6 ~]# cat /www/blog/index.html
welcont to mingongge's blog stie
生產環境檢查也一樣很重要,檢查、檢查 、檢查,重要的事情說三遍!!!!
四、nginx虛擬主機配置
配置nginx 虛擬主機有兩種方式,一種能夠像前面apache服務這種,單獨配置一個虛擬主機的配置文件,另外一種也能夠在主配置文件 nginx.conf中添加server標籤,接下來介紹的是第一種方式,經過在配置文件裏添加包含關係,單獨配置虛擬主機的配置文件目錄與配置文件,這樣實際生產環境中比較常見,服務多了,也容易維護。
--------------------
配置主配置文件
-------------------
只須要在主配置文件nginx.conf最後一行加下以下配置
include extra/vhosts/*.conf;
-----------------------------
建立虛擬主機配置目錄
----------------------------
[root@centos6 conf]# pwd
/application/nginx/conf
[root@centos6 conf]# mkdir -p extra/vhosts
-----------------------------
建立虛擬主機配置文件
----------------------------
[root@centos6 conf]# cd extra/vhosts/
[root@centos6 vhosts]# mkdir bbs www blog
[root@centos6 vhosts]# cp ../../nginx.conf www/www.conf
[root@centos6 vhosts]# cp ../../nginx.conf bbs/bbs.conf
[root@centos6 vhosts]# cp ../../nginx.conf blog/blog.conf
經過主配置文件來修改,其實只須要裏面的server標籤的內容,一樣也能夠作一個模板文件出來,經過cp命令更名後,再修改其內容,效果都同樣
-----------------------------
配置虛擬主機配置文件
----------------------------
WWW站點虛擬主機配置文件(比較簡單)
server {
listen 80;
server_name www.mingongge.com;
location / {
root /www/www;
index index.html index.htm;
}
}
基它的相同,只須要改下站點目錄路徑與域名信息
BBS站點虛擬主機配置文件
server {
listen 80;
server_name bbs.mingongge.com;
location / {
root /www/bbs;
index index.html index.htm;
}
}
BLOG站點虛擬主機配置文件
server {
listen 80;
server_name blog.mingongge.com;
location / {
root /www/blog;
index index.html index.htm;
}
}
5、重啓服務與測試訪問
[root@centos6 vhosts]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.10.1/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.10.1/conf/nginx.conf test is successful
[root@centos6 vhosts]# /application/nginx/sbin/nginx -s reload
[root@centos6 vhosts]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 2469 root 6u IPv4 15462 0t0 TCP *:http (LISTEN)
nginx 2519 nginx 6u IPv4 15462 0t0 TCP *:http (LISTEN)
[root@centos6 vhosts]# ps -ef|grep nginx
root 2469 1 0 18:47 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
nginx 2519 2469 0 19:14 ?00:00:00 nginx: worker process
打開瀏覽器測試訪問吧
本地DNS解析不要忘記了,不然沒法經過域名來訪問的
至此nginx 虛擬主機配置完成,基於兩種方式的虛擬主機配置,請參考apache服務的基於IP與基於端口的虛擬主機配置章節