如何配置 web 服务器才能在一个 VPS 上放置多个网站/博客呢?如何通过一个 IP 访问多个站点/域名呢?这是大多数 web 服务器支持的 virtual hosting 功能。即一个IP对应多个域名以支持多站点访问,就像一个IP对应一个站点一样,所以是”虚拟”的。

这里以配置2个站点(2个域名)为例,n 个站点可以相应调整,假设:

IP地址: 202.55.1.100 域名1 example1.com 放在 /opt/nginx/html/example1.com 域名2 example2.com 放在 /opt/nginx/html/example2.com

[编辑]基本思路

首先需要将域名A记录解析至此IP,此时可实现http://example1.com形式访问,再添加一条cname记录,保证http://www.example1.com这种形式也可以访问

参考图:

然后把2个站点的文件 example1.com, example2.com 放到 nginx 可以访问到的目录下,比如/opt/nginx/html

给每个站点分别创建一个 nginx 配置文件 example1.com.conf,example2.com.conf, 并把配置文件放到 /opt/nginx/conf/vhosts/目录下

然后在 /opt/nginx/conf/nginx.conf 里面加一句 include 把步骤2创建的配置文件全部包含进来(用 * 号)

重启 nginx

[编辑]具体过程

创建 vhosts 目录 mkdir /opt/nginx/conf/vhosts 在vhosts目录下创建一个名字为 example1.com.conf 的文件,把以下内容拷进去

server { 	listen 80; 	server_name example1.com  www.example1.com;   	access_log /opt/nginx/html/example1.log;   	location /{ 		root /opt/nginx/html/example1.com; 		index index.php index.html; 	}   	error_page 500502503504/50x.html; 	location = /50x.html { 		root /opt/nginx/html; 	}   	location ~ \.php$ { 		fastcgi_pass   127.0.0.1:9000; 		fastcgi_index  index.php; 		fastcgi_param  SCRIPT_FILENAME  /opt/nginx/html/example1.com$fastcgi_script_name; 		include        fastcgi_params; 	}   	location ~ /\.ht { 		deny all; 	}}

如果换成你自己的,需要修改4个地方。

在vhosts目录下再创建一个名字为 example2.com.conf 的文件,把以下内容拷进去,或者复制上一个文件修改也可以。

server { 	listen 80; 	server_name example2.com  www.example2.com;   	access_log /opt/nginx/html/example2.log;   	location /{ 		root /opt/nginx/html/example2.com; 		index index.php index.html; 	}   	error_page 500502503504/50x.html; 	location = /50x.html { 		root /opt/nginx/html; 	}   	location ~ \.php$ { 		fastcgi_pass   127.0.0.1:9000; 		fastcgi_index  index.php; 		fastcgi_param  SCRIPT_FILENAME  /opt/nginx/html/example2.com$fastcgi_script_name; 		include        fastcgi_params; 	}   	location ~ /\.ht { 		deny all; 	}}

打开/opt/nginx/conf/nginix.conf 文件,在相应位置(放在http的大括号结束前)include以上2个文件

include /opt/nginx/conf/vhosts/*.conf;  

最后重启 Nginx即可

参见快速安装PHP,MySQL,Nginx和phpmyadmin

如果想直接访问html下的phpmyadmin,可以

ln -s /opt/nginx/html/phpmyadmin /opt/nginx/html/example1.com/phpmyadmin 

当然最好再新建一个站点admin存放phpmyadmin,比如/opt/nginx/html/admin/phpmyadmin,然后通过http://admin.elesos.com/phpmyadmin/index.php进行访问。

[编辑]艺搜参考

http://www.vpsee.com/2009/06/nginx-virtual-hosting-configuration/

Nginx支持多站点配置小结的更多相关文章

  1. Nginx 支持websocket的配置

    Nginx 支持websocket的配置server { listen 80; server_name 域名; location / { proxy_pass http://127.0.0.1:808 ...

  2. Nginx 的多站点配置

    当我们有了一个 VPS 主机以后,为了不浪费 VPS 的强大资源(相比共享主机1000多个站点挤在一台机器上),往往有想让 VPS 做点什么的想法,银子不能白花啊:).放置多个网站或者博客是个不错的想 ...

  3. nginx支持HTTP2的配置过程

    一.获取安装包 http://zlib.net/zlib-1.2.11.tar.gz https://www.openssl.org/source/openssl-1.0.2e.tar.gz (ope ...

  4. nginx+php-fpm的socket配置小结

    关于socket的介绍本文不再赘述,生产环境中常用socket方式,本文简述其配置方式. #cd /app/local/php#切换到php安装目录下 #mkdir run #chmod 777 ./ ...

  5. nginx 多站点配置方法集合(转)

    关于nginx的多站设置,其实和apache很相似,假设我们已经有两个域名,分别是:www.websuitA.com和www.websuitB.com.并且这两个域名已经映射给了IP为192.168. ...

  6. nginx 多站点配置方法

    关于nginx的多站设置,其实和apache很相似哒. 假设我们已经有两个域名,分别是:www.websuitA.com和www.websuitB.com.并且这两个域名已经映射给了IP为192.16 ...

  7. Ubuntu系统下lnmp环境搭建和Nginx多站点配置

    最近需要使用Ubuntu作为服务器搭建Lnmp环境,顺便将操作过程写下来,与大家分享.如有不足之处,欢迎大家提出不同意见.(本文默认读者已经熟悉相关linux命令的使用,比如创建文件和文件夹,编辑文件 ...

  8. Windows下Nginx Virtual Host多站点配置详解

    Windows下Nginx Virtual Host多站点配置详解 此教程适用于Windows系统已经配置好Nginx+Php+Mysql环境的同学. 如果您还未搭建WNMP环境,请查看 window ...

  9. nginx+tomcat+二级域名静态文件分离支持mp4视频播放配置实例

    nginx+tomcat+二级域名静态文件分离支持mp4视频播放配置实例 二级域名配置 在/etc/nginx/conf.d/目录下配置二级域名同名的conf文件,路径改成对应的即可 statics. ...

随机推荐

  1. Java for LeetCode 216 Combination Sum III

    Find all possible combinations of k numbers that add up to a number n, given that only numbers from ...

  2. Centos6.5 SVN服务器 搭建及配置

    现有的项目开发中,版本控制机必不可少.合理的使用版本控制可以提高开发效果,在保证项目是最新的同时,也提高了源代码的安全性. 工具/原料 接入Internet的一台Centos6.5Linux计算机 安 ...

  3. Enum:EXTENDED LIGHTS OUT(POJ 1222)

    亮灯 题目大意:有一个5*6的灯组,按一盏灯会让其他上下左右4栈和他自己灯变为原来相反的状态,要怎么按才会把所有的灯都按灭? 3279翻版题目,不多说,另外这一题还可以用其他方法,比如DFS,BFS, ...

  4. java获取本月或某月的第一天和最后一天

    获取某月的第一天和最后一天的日期 Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Ca ...

  5. js验证手机号

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  6. .NET微信公众号开发-1.0初始微信公众号

    一.前言 微信公众号是开发者或商家在微信公众平台上申请的应用账号,该帐号与QQ账号互通,通过公众号,商家可在微信平台上实现和特定群体的文字.图片.语音.视频的全方位沟通.互动 .形成了一 种主流的线上 ...

  7. Hibernate查询语句

    1 hql查询 Hibernate的查询语句,hiberante提供的面向对象的查询语言,和sql语句的语法的相似.而且严格区分大小写. 1.1 from字句 /** * hql: from 字句 * ...

  8. 详解web.xml中元素的加载顺序

    一.背景 最近在项目中遇到了启动时出现加载service注解注入失败的问题,后来经过不懈努力发现了是因为web.xml配置文件中的元素加载顺序导致的,那么就抽空研究了以下tomcat在启动时web.x ...

  9. web前端开发学习:jQuery的原型中的init

    web前端开发学习:jQuery的原型中的init 有大量web前端开发工具及学习资料,可以搜群[ web前端学习部落22群 ]进行下载,遇到学习问题也可以问群内专家以及课程老师哟 jQuery.fn ...

  10. 容器配置jndi Tomcat为例

    context.xml 文件 <Resource name=" password="spsj" type="javax.sql.DataSource&qu ...