zoukankan      html  css  js  c++  java
  • 一个nginx服务器配置多站点

    有时候你想在一台服务器上为不同的域名运行不同的站点。比如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
    1. 将所有内容删除,只留以下配置
    server {
        listen 80 default_server;
        server_name _;
        return 404;
    }
    1. 重启Nginx后,别人将无法通过IP地址访问网站了

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

    1. 打开Nginx网站默认配置文件,同上面一样,记得先备份
    1. 在”server { }”部分加上以下配置
    复制代码
    location ^~ /blog/ {
        deny all;
    }
    location ^~ /forum/ {
        deny all;
    }
    复制代码
    1. 重启Nginx即可
  • 相关阅读:
    (转载)SAPI 包含sphelper.h编译错误解决方案
    C++11标准的智能指针、野指针、内存泄露的理解(日后还会补充,先浅谈自己的理解)
    504. Base 7(LeetCode)
    242. Valid Anagram(LeetCode)
    169. Majority Element(LeetCode)
    100. Same Tree(LeetCode)
    171. Excel Sheet Column Number(LeetCode)
    168. Excel Sheet Column Title(LeetCode)
    122.Best Time to Buy and Sell Stock II(LeetCode)
    404. Sum of Left Leaves(LeetCode)
  • 原文地址:https://www.cnblogs.com/yipianchuyun/p/10293773.html
Copyright © 2011-2022 走看看