学习了一下,Nginx 和 Apache 一样,可以配置基于 IP,域名和端口的虚拟主机,而且配置很简单,记录一下!

首先配置一个基于 IP 的虚拟主机,我们先添加一个 IP 别名,并在这个 IP 上虚拟一个主机出来:

$ifconfig eth0:1 192.168.241.101 broadcast 192.168.241.255 netmask 255.255.255.0 up
$route add -host 192.168.241.101 dev eth0:1

然后编辑 Nginx 的 配置文件:

$vim /usr/local/nginx/conf/nginx.conf

添加下面的 server 配置段:

server
{

#监听的IP和端口
listen 192.168.241.101:80;

#主机名
server_name 192.168.241.101;
index index.html index.htm index.php;
root /home/test;

location ~ .*\.(php|php5)?$
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}

location /status {
stub_status on;
access_log off;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

location ~ .*\.(js|css)?$
{
expires 12h;
}

access_log /home/wwwlogs/access.log access;
}

这样就可以了,root /home/test; 这个就是网站存放的目录,然后再建/home/test 目录,让如一个测试文件 index.php ,里面写一句 php 语句,检查一下 Nginx 配置文件是否有错:

$/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

如果没错的话,那平滑重启一下 Nginx:

$kill -HUP 12706

这样访问http://192.168.241.101/ 就可以访问到配置的虚拟主机的目录了。

基于域名的虚拟主机和基于 IP 的类似,实际运用中,配置好 DNS 服务器,蒋主机名映射到 IP 地址,配置 Nginx,server 配置段的 server_name 指令为对于的域名。

当然 Nginx 配置虚拟主机和 Apache 一样,你可以在 conf 目录下建立个 vhost 目录,在 vhost 目录下分别建 www.test.com.conf 这样的文件,将虚拟主机的配置段写入这个文件,然后在 nginx.conf 中引入配置文件 :include /host/nginx/conf/vhost/www.test.com.conf;

转载请注明: 转载自Ryan 是菜鸟 | LNMP 技术栈笔记

如果觉得本篇文章对您十分有益,何不 打赏一下

谢谢打赏

本文链接地址: Nginx 虚拟主机配置-Nginx 学习笔记(二)

知识共享许可协议 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可