如何用Nginx建立多站点

2015-10-20 17:08:53 8407

1.nginx 是一个小巧高效的 web 服务器,由俄罗斯程序员 Igor Sysoev 开发,nginx 虽然体积小,但功能一点也不弱,能和其他的 web 服务器一样支持 virtual hosting,即一个IP对应多个域名以支持多站点访问。

2.假设:

IP地址: 116.55.242.34

域名1 test1.com 放在 /home/sdb5/www/test1

域名2 test2.com 放在 /home/sdb5/www/test2

3.配置 nginx virtual hosting 的基本思路和步骤如下:

(1)2个站点 test1.com, test2.com 目录放到nginx 可以访问的目录 /home/sdb5/www/

(2)给每个站点分别创建一个 nginx 配置文件 test1.com.conftest2.com.conf,

并把配置文件放到 /etc/nginx/vhosts/

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

重启 nginx

4.具体过程 

(1)在 /etc/nginx 下创建 vhosts 目录

mkdir /etc/nginx/vhosts

(2)在 /etc/nginx/vhosts/ 里创建一个名字为 test1.com.conftest2.com.conf 的文件,把以下内容拷进去

server {

        listen  80;

        server_name  test1.com www. test1.com;

        access_log  /home/sdb5/www/access_ test1.log  main;

        location / {

            root   /home/sdb5/www/test1;

            index  index.php index.html index.htm;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   /usr/share/nginx/html;

        }

       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        location ~ .php$ {

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /home/sdb5/www/test1/$fastcgi_script_name;

            include        fastcgi_params;

        }

        location ~ /.ht {

            deny  all;

        }

}

(3)打开 /etc/nginix.conf 文件,在相应位置加入 include 把以上2个文件包含进来

user  nginx;

worker_processes  1;

# main server error log

error_log       /var/log/nginx/error.log ;

pid     /var/run/nginx.pid;

events {

        worker_connections  1024;

}

# main server config

http {

        include       mime.types;

        default_type  application/octet-stream;

        log_format  main  $remote_addr - $remote_user [$time_local] $request 

                      "$status" $body_bytes_sent "$http_referer" 

                      "$http_user_agent" "$http_x_forwarded_for";

        sendfile        on;

        #tcp_nopush     on;

        #keepalive_timeout  0;

        keepalive_timeout  65;

        gzip  on;

        server {

                listen         80;

                server_name     _;

                access_log      /var/log/nginx/access.log main;

                server_name_in_redirect  off;

                location / {

                        root  /usr/share/nginx/html;

                        index index.html;

                }

        }

    # 包含所有的虚拟主机的配置文件

    include /usr/local/etc/nginx/vhosts/*;

}

5、重启 Nginx

/etc/init.d/nginx restart

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: