linux Nginx VirtualHost虚拟主机多站点设置

一台nginx服务器同一IP被注册多个不同域名,访问不同域名到该服务器后请求不同项目
本台nginx服务器的IP地址为 192.168.155.129
假设服务器有两个项目websuit_a,websuit_b,客户端访问websuit_a.com时请求websuit_a项目,访问websuit_b.com时请求websuit_b项目

首先在项目根目录下新建项目文件夹websuit_a和websuit_b存放两个虚拟站点的程序
mkdir -m777 -p /usr/local/nginx/html/websuit_a /usr/local/nginx/html/websuit_b

在websuit_a项目下新建index.php文件,并输入以下内容
<?php echo "this is websuit_a";?>
vim /usr/local/nginx/html/websuit_a/index.php

在websuit_b项目下新建index.php文件,并输入以下内容
<?php echo "this is websuit_b";?>
vim /usr/local/nginx/html/websuit_b/index.php

在nginx配置文件夹内新建vhosts_conf文件夹保存不同虚拟站点的配置文件
mkdir -m777 -p /usr/local/nginx/conf/vhosts_conf

在里面创建websuit_a.com站点的配置文件,命名为websuit_a.conf编辑填写以下内容保存
server {
    listen 80;  #监听的端口号
    server_name websuit_a.com;  #客户端访问进来的域名
    #access_log  logs/host.access.log  main;
    location / {
        root html/websuit_a;  #站点的项目路径也可填成绝对路径/usr/local/nginx/html/websuit_a
        index  index.html index.htm index.php;
        #站点的rewrite在这里写,URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程
        rewrite ^/(\w+)\.html$ /$1.php;
        rewrite ^/(\w+)/(\w+)$ /$1/$2.php;
    }
    #错误页的配置
    error_page   404              /404.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        root           html/websuit_a;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /usr/local/nginx/html/websuit_a$fastcgi_script_name;
        include        fastcgi_params;
    }
    location ~ /\.ht {
        deny all;
    }
}
vim /usr/local/nginx/conf/vhosts_conf/websuit_a.conf

再创建websuit_b.com站点的配置文件,命名为websuit_b.conf编辑填写以下内容保存
server {
    listen 80;  #监听的端口号
    server_name websuit_b.com;  #客户端访问进来的域名
    #access_log  logs/host.access.log  main;
    location / {
        root html/websuit_b;  #站点的项目路径也可填成绝对路径/usr/local/nginx/html/websuit_b
        index  index.html index.htm index.php;
        #站点的rewrite在这里写
        rewrite ^/(\w+)\.html$ /$1.php;
        rewrite ^/(\w+)/(\w+)$ /$1/$2.php;
    }
    #错误页的配置
    error_page   404              /404.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        root           html/websuit_b;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /usr/local/nginx/html/websuit_b$fastcgi_script_name;
        include        fastcgi_params;
    }
    location ~ /\.ht {
        deny all;
    }
}
vim /usr/local/nginx/conf/vhosts_conf/websuit_b.conf

关闭nginx服务
service nginx stop

编辑nginx配置文件在http {}块内的最后一行添加如下内容
include /usr/local/nginx/conf/vhosts_conf/*.conf;
vim /usr/local/nginx/conf/nginx.conf

启动nginx
service nginx start

由于不是外网环境,只能在本地访问,所以修改客户端hosts文件,添加以下两项
192.168.155.129 websuit_a.com
192.168.155.129 websuit_b.com

分别在客户端浏览器上输入
websuit_a.com,websuit_b.com
分别显示
this is websuit_a,this is websuit_b
时间: 2024-12-17 10:37:28

linux Nginx VirtualHost虚拟主机多站点设置的相关文章

Linux -Apache-网站虚拟主机(站点)

Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache,web服务http2.2和http2.4有区别,安装方法不一样,涉及到依赖软件apr,apr和apr-util是一个通用的函数库,它让httpd可以不关心底层的操作系统平台,可以很方便地移植(从linux移植到windows) Apache官网www.apache.orgyum install -y pcre-develcd /usr/local/srcwget http://mirrors.shu.

linux下nginx实现虚拟主机(3种方法:基于域名、基于端口、基于ip地址)

在3.17日的时候已经写过一篇关于apahce的基于域名.端口.ip地址3种方式的虚拟主机实现.原理是一样的,现在记录nginx的虚拟主机这三种方式的实现. 系统版本为rhel5.6,nginx版本为1.1.6. 1.基于域名: 基于域名的方式,要先有dns服务器,这里为了方便,可以在/etc/hosts文件里面配置,把它当成dns就行了,可以参考3.17日那篇博客关于dns的配置或者其他博文也有.这里关于nginx的安装也略去. [[email protected] ~]# cat /etc/

WEB服务器-Nginx之虚拟主机、日志、认证及优化

WEB服务器-Nginx之虚拟主机.日志.认证及优化 概述 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. Nginx是一

nginx配置虚拟主机vhost的方法详解

摘自:http://www.jb51.net/article/107331.htm Nginx vhost配置,可实现基于ip.端口号.servername的虚拟主机,同时可避免直接修改主配置文件.在nginx下配置虚拟主机vhost非常方便.这篇文章主要介绍了nginx配置虚拟主机vhost的方法,需要的朋友可以参考下 前言 所谓虚拟主机,是说通过几个不同的url地址,都能到达nginx环境,只不过针对不同的url,处理的逻辑不同.nginx支持虚拟主机,但是浏览器等客户端不知道,所以虚拟主机

基于httpd-2.2和httpd-2.4配置虚拟主机web站点,并提供https服务(一)

使用httpd-2.2和httpd-2.4实现 > 1.建立httpd服务,要求: > 1) 提供两个基于名称的虚拟主机www1, www2:要求每个虚拟主机都有单独的错误日志和访问日志: > 2) 通过www1的/server-status提供状态信息,且仅允许172.16.0.1主机访问: > 3) www2不允许192.168.1.0/24网络中任意主机访问: > 2.为上面的第2)个虚拟主机提供https服务. > 一.使用httpd-2.2实现基于主机名的虚拟

基于httpd-2.2和httpd-2.4配置虚拟主机web站点,并提供https服务(二)

使用httpd-2.2和httpd-2.4实现 > 1.建立httpd服务,要求: > 1) 提供两个基于名称的虚拟主机www1, www2:要求每个虚拟主机都有单独的错误日志和访问日志: > 2) 通过www1的/server-status提供状态信息,且仅允许172.16.0.1主机访问: > 3) www2不允许192.168.1.0/24网络中任意主机访问: > 2.为上面的第2)个虚拟主机提供https服务. > 二.基于httpd-2.4配置虚拟主机web站

基于httpd-2.2配置虚拟主机web站点,并提供https服务(一)

使用httpd-2.2和httpd-2.4实现 > 1.建立httpd服务,要求: > 1) 提供两个基于名称的虚拟主机www1, www2:要求每个虚拟主机都有单独的错误日志和访问日志: > 2) 通过www1的/server-status提供状态信息,且仅允许172.16.0.1主机访问: > 3) www2不允许192.168.1.0/24网络中任意主机访问: > 2.为上面的第2)个虚拟主机提供https服务. > 使用httpd-2.2实现基于主机名的虚拟主机

基于httpd-2.4配置虚拟主机web站点,并提供https服务(二)

使用httpd-2.2和httpd-2.4实现 > 1.建立httpd服务,要求: > 1) 提供两个基于名称的虚拟主机www1, www2:要求每个虚拟主机都有单独的错误日志和访问日志: > 2) 通过www1的/server-status提供状态信息,且仅允许172.16.0.1主机访问: > 3) www2不允许192.168.1.0/24网络中任意主机访问: > 2.为上面的第2)个虚拟主机提供https服务. > 基于httpd-2.4配置虚拟主机web站点,

Nginx中虚拟主机配置

一.Nginx中虚拟主机配置 1.基于域名的虚拟主机配置 1.修改宿主机的hosts文件(系统盘/windows/system32/driver/etc/HOSTS) linux : vim /etc/hosts 格式: ip地址 域名 eg: 192.168.3.172 www.gerry.com 2.在nginx.conf文件中配置server段 server {   listen 80;   server_name www.gerry.com; # 域名区分       location