虚拟主机
每一个server{}块就是一个虚拟主机
一个Nginx可以有多个虚拟主机
虚拟主机可以写在
nginx.conf文件中,也可以写在独立的配置文件目录中,通过include指令引入。在生产环境中一般倾向后者,因为可以避免将所有配置都写在一个文件中,造成混乱。
简易配置并测试
自定义虚拟主机配置文件:
$ vim /usr/local/nginx/conf/vhosts/lwz.com.conf server { listen 80; server_name lwz1.com; root /data/www/lwz; index index.html index.htm; }$ nginx -s reload
创建测试文件
$ mkdir -p /data/www/lwz $ echo "lwz.com test!" > /data/www/lwz/index.html
本地hosts解析
$ vim /etc/hosts 127.0.0.1 lwz1.com
测试
$ curl lwz1.com lwz.com test!
配置默认虚拟主机
只要是nginx中没有定义的域名解析进来,都会被指向到默认虚拟主机中。如果没有定义默认虚拟主机,那么配置文件里的第一个server{}块就是默认虚拟主机。
可通过nginx -T查看第一个server{}块。
将lwz.com设置为默认虚拟主机:
server
{
listen 80 default_server; # 加上default_server,就是默认虚拟主机了
server_name lwz1.com;
root /data/www/lwz;
index index.html index.htm;
deny all; # 增加安全性,禁止所有人访问。
}
连接php的虚拟主机
监听9000端口:
server {
listen 80;
server_name lwz.123.com;
root /data/wwwroot/blog.123.com;
index index.html index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
监听sock文件:
server {
listen 80;
server_name lwz.123.com;
root /data/wwwroot/blog.123.com;
index index.html index.php;
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
如果不确定php用的什么监听方式,可以查看
php-fpm.conf文件或者php-fpm.d目录下的文件中的listen参数查看。
创建测试文件index.php
<?php
echo "hello world";
?>
hosts文件增加本地解析
sudo vim /etc/hosts
127.0.0.1 lwz.123.com