Apache 可以通過配置sites-enabled配置虛擬主機(jī),同樣,nginx也支持該配置方法.
先來了解一下nginx的配置文件.
通常,nginx配置文件在/etc/nginx目錄下有一個(gè)nginx.conf,這就是nginx的配置文件了,打開該配置文件,有時(shí)候會(huì)看到 這樣的語句
include /etc/nginx/conf.d/*.conf;
也就是說 /etc/nginx/conf.d/下的conf文件也是nginx配置文件.
下面就來看怎樣使用nginx配置多個(gè)域名多個(gè)站的虛擬主機(jī)
首先, 先把nginx.conf備份,可以進(jìn)入/etc/nginx在linux命令行輸入
cp nginx.conf nginx.conf.bak
然后創(chuàng)建兩個(gè)文件夾sites-available和sites-enabled
mkdir sites-available sites-enabled
再把conf.d下的配置文件,比如default.conf 拷貝到sites-available下,分別重命名為site1.example1.com和site2.example2.com
cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/site1.example1.com; cp conf.d/default.conf /etc/nginx/sites-available/site2.example2.com
然后,打開site1.example1.com并編輯,對(duì)site2.example2.com做同樣操作:
- 在server代碼塊中,將server_name改為站點(diǎn)1的域名site1.example1.com,
server {
listen 80;
server_name site1.example1.com;
- 在server代碼塊的location代碼塊中,將root改為服務(wù)器將要放置site1的目錄
location / {
root /usr/share/nginx/html/site1/;
index index.html index.htm index.php;
}
- 如果配置支持php,則php的root也需要改為服務(wù)器將要放置site1的目錄
location ~ \.php$ {
root /usr/share/nginx/html/site1/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
保存并退出,相應(yīng)對(duì)site2.example2.com做類似操作
接著,為兩個(gè)配置文件創(chuàng)建link
ln -sf /etc/nginx/sites-available/* /etc/nginx/sites-enabled
可以看一下是否成功
ls -l
然后,打開并修改/etc/nginx下的nginx.conf
找到語句include /etc/nginx/conf.d/*.conf;添加注釋,并且再新增一行
# include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
保存并退出后,重啟nginx服務(wù),在命令行輸入
service nginx restart
最后,別忘了將兩個(gè)域名解析至服務(wù)器,為了測(cè)試配置是否成功,可以在
/usr/share/nginx/html/site1/ /usr/share/nginx/html/site2/ 兩個(gè)目錄下分別新建不同內(nèi)容的網(wǎng)頁,看訪問兩個(gè)域名的時(shí)候是否可以訪問到新建的文件.