nginx配置虛擬主機
準備站點目錄:
我們站點統一放到/data/site下,每個站點根目錄名稱都和域名相同,具體如下。
新建a.deng.com站點根目錄:
# mkdir -pv /data/site/a.deng.com
新建站點a.deng.com主頁
# echo "this is a.deng.com" >> /data/site/a.deng.com/index.html
新建b.deng.com站點根目錄:
# mkdir -pv /data/site/b.deng.com
新建站點b.deng.com主頁
# echo "this is b.deng.com" >> /data/site/b.deng.com/index.html
新建統一日誌目錄
我們統一講日誌存放到/data/logs下,這邊是存放nginx日誌,所以nginx日誌保持在當前的nginx目錄下.日誌統一存放相對來說比較規範
# mkdir -p /data/logs/nginx
創建虛擬主機配置文件:
# mkdir -p /usr/local/nginx/conf/vhosts
在nginx.conf的http{}中增加:
include /usr/local/nginx/conf/vhosts/*.conf;
配置虛擬主機:
增加nginx.conf的配置---配置日誌格式,去掉#註釋符
#log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
# ‘$status $body_bytes_sent "$http_referer" ‘
# ‘"$http_user_agent" "$http_x_forwarded_for"‘;
配置nginx的虛擬主機文件:
# vim /usr/local/nginx/conf/vhosts/a.deng.conf
server {
listen 80;
server_name a.deng.com;
root /data/site/a.deng.com;
index index.php index.htm index.html;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
access_log /data/logs/nginx/a.deng.com-access.log main;
}
# vim /usr/local/nginx/conf/vhosts/b.deng.conf
server {
listen 80;
server_name b.deng.com;
root /data/site/b.deng.com;
index index.php index.htm index.html;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
access_log /data/logs/nginx/b.deng.com-access.log main;
}
配置講解
server{}:配置虛擬主機必須有這個段。
server_name:虛擬主機的域名,可以寫多個域名,類似於別名,比如說你可以配置成
server_name b.deng.com c.deng.com d.deng.com,這樣的話,訪問任何一個域名,內容都是一樣的
listen 80,監聽ip和端口,這邊僅僅只有端口,表示當前服務器所有ip的80端口,如果只想監聽127.0.0.1的80,寫法如下:
listen 127.0.0.1:80
root /data/site/b.deng.com:站點根目錄,你網站文件存放的地方。註:站點目錄和域名盡量一樣,養成一個好習慣
access_log /data/logs/nginx/b.deng.com-access.log main:訪問日誌
重啟並打開站點
nginx -t 檢查nginx配置是否ok,命令如下:
# /usr/lcoal/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
如果看到以上兩行ok和successful就表示配置問題,那接下來我們啟動nginx
啟動nginx
# /usr/local/nginx/sbin/nginx
使用curl進行訪問網站,先在linux下綁定hosts,進行DNS解析:
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.139 a.deng.com b.deng.com
[[email protected] vhosts]# curl a.deng.com
this is a.deng.com
[[email protected] vhosts]# curl b.deng.com
this is b.deng.com
nginx配置虛擬主機