Blogger Information
Blog 91
fans 0
comment 0
visits 203530
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
在Nginx上配置多个站点
何澤小生的博客
Original
1271 people have browsed it

有时候你想在一台服务器上为不同的域名运行不同的站点。比如www.siteA.com作为博客,www.siteB.com作为论坛。你可以把两个域名的IP都解析到你的服务器上,但是没法在Nginx的根目录里同时运行两个不同的网站。这时候,你就需要使用虚拟目录了。假设你把博客放在”/home/user/www/blog”下,论坛放在”/home/user/www/forum”下。下面我们就开始配置了:

  • 在Nginx配置目录下,创建一个”vhost”目录。本例假设Nginx是默认安装,配置目录在”/etc/nginx”

$ sudo mkdir /etc/nginx/vhost
  • 创建siteA的配置文件

$ sudo vi /etc/nginx/vhost/vhost_siteA.conf
  • 输入以下配置信息

server {
    listen       80;                        # 监听端口
    server_name www.siteA.com siteA.com;    # 站点域名
    root  /home/user/www/blog;              # 站点根目录
    index index.html index.htm index.php;   # 默认导航页
 
    location / {
        # WordPress固定链接URL重写
        if (!-e $request_filename) {
            rewrite (.*) /index.php;
        }
    }
 
    # PHP配置
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}
  • 同siteA一样创建siteB的配置文件,两者仅有的不同是”server_name”和”root”目录

$ sudo vi /etc/nginx/vhost/vhost_siteB.conf
server {
    ...
    server_name www.siteB.com siteB.com;    # 站点域名
    root  /home/user/www/forum;             # 站点根目录
    ...
}
  • 打开nginx.conf文件

sudo vi /etc/nginx/nginx.conf
  • 将虚拟目录的配置文件加入到”http {}”部分的末尾

http {
    ...
    include /etc/nginx/vhost/*.conf;
}
  • 重启Nginx服务

$ sudo service nginx restart
  • 现在访问www.siteA.com和www.siteB.com,你将发现浏览器会打开不同的站点


禁止访问小技巧

假如你的Nginx根目录设在”/home/user/www”,你想阻止别人通过”http://IP地址/blog”或”http://IP地址/forum”来访问你的站点,最简单的方法就是禁止IP地址访问。方法如下:

    1. 打开Nginx网站默认配置文件,记得先备份

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_bak
$ sudo vi /etc/nginx/sites-available/default

    2. 将所有内容删除,只留以下配置

server {
    listen 80 default_server;
    server_name _;    return 404;
}

    3. 重启Nginx后,别人将无法通过IP地址访问网站了

如果你不想禁止IP地址访问整个目录,只是要防止别人通过IP访问你的博客和论坛。那就需要禁止”/blog”和”/forum”的目录访问。

    1. 打开Nginx网站默认配置文件,同上面一样,记得先备份

    2. 在”server { }”部分加上以下配置

location ^~ /blog/ {
    deny all;
}
location ^~ /forum/ {
    deny all;
}


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post