有時(shí)候你想在一臺服務(wù)器上為不同的域名運(yùn)行不同的站點(diǎn)。比如www.siteA.com作為博客,www.siteB.com作為論壇。你可以把兩個域名的IP都解析到你的服務(wù)器上,但是沒法在Nginx的根目錄里同時(shí)運(yùn)行兩個不同的網(wǎng)站。這時(shí)候,你就需要使用虛擬目錄了。假設(shè)你把博客放在”/home/user/www/blog”下,論壇放在”/home/user/www/forum”下。下面我們就開始配置了:
在Nginx配置目錄下,創(chuàng)建一個”vhost”目錄。本例假設(shè)Nginx是默認(rèn)安裝,配置目錄在”/etc/nginx”
$ sudo mkdir /etc/nginx/vhost
創(chuàng)建siteA的配置文件
$ sudo vi /etc/nginx/vhost/vhost_siteA.conf
輸入以下配置信息
server {
listen 80; # 監(jiān)聽端口
server_name www.siteA.com siteA.com; # 站點(diǎn)域名
root /home/user/www/blog; # 站點(diǎn)根目錄
index index.html index.htm index.php; # 默認(rèn)導(dǎo)航頁
location / {
# WordPress固定鏈接URL重寫
if (!-e $request_filename) {
rewrite (.*) /index.php;
}
}
# PHP配置
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
同siteA一樣創(chuàng)建siteB的配置文件,兩者僅有的不同是”server_name”和”root”目錄
$ sudo vi /etc/nginx/vhost/vhost_siteB.conf
server {
...
server_name www.siteB.com siteB.com; # 站點(diǎn)域名
root /home/user/www/forum; # 站點(diǎn)根目錄
...
}
打開nginx.conf文件
sudo vi /etc/nginx/nginx.conf
將虛擬目錄的配置文件加入到”http {}”部分的末尾
http {
...
include /etc/nginx/vhost/*.conf;
}
重啟Nginx服務(wù)
$ sudo service nginx restart
現(xiàn)在訪問www.siteA.com和www.siteB.com,你將發(fā)現(xiàn)瀏覽器會打開不同的站點(diǎn)
禁止訪問小技巧
假如你的Nginx根目錄設(shè)在”/home/user/www”,你想阻止別人通過”http://IP地址/blog”或”http://IP地址/forum”來訪問你的站點(diǎn),最簡單的方法就是禁止IP地址訪問。方法如下:
1.打開Nginx網(wǎng)站默認(rèn)配置文件,記得先備份
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_bak
$ sudo vi /etc/nginx/sites-available/default
2.將所有內(nèi)容刪除,只留以下配置
server {
listen 80 default_server;
server_name _;
return 404;
}
3.重啟Nginx后,別人將無法通過IP地址訪問網(wǎng)站了
如果你不想禁止IP地址訪問整個目錄,只是要防止別人通過IP訪問你的博客和論壇。那就需要禁止”/blog”和”/forum”的目錄訪問。
1.打開Nginx網(wǎng)站默認(rèn)配置文件,同上面一樣,記得先備份
2.在”server { }”部分加上以下配置
location ^~ /blog/ {
deny all;
}
location ^~ /forum/ {
deny all;
}
3.重啟Nginx即可
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。