Nginx 虚拟主机配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 虚拟主机配置相关的知识,希望对你有一定的参考价值。

一、nginx的应用概述

    Nginx作为一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。主要有以下3方面的应用:

   1.http服务器:

        Nginx是一个http服务器可以独立提供http服务。可以做网页静态服务器。

    2.虚拟主机:

        可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

    3.反向代理,负载均衡:

        当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

二、虚拟主机概述

    虚拟主机使用的是特殊的软硬件技术,它把一台服务器主机分成一台台“虚拟”的主机,每天虚拟主机都可以具有独立的域名,具有完整的Internet服务器功能(www、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。

    利用虚拟主机,不必为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。

    可以实现在同一台服务器上运行多个网站,并且网站之间相互独立各不干扰。

三、Nginx虚拟主机的配置

    Nginx下,一个Server标签就是一个虚拟主机,有三种方式进行配置:

    (1)、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站;

    (2)、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站,外部网站的管理后台。

    (3)、基于IP的虚拟主机,几乎不太常用。

四、Nginx配置文件

        cd /usr/local/nginx/conf

        ls

        vim nginx.conf

        技术分享图片

    nginx.conf 配置文件,及解析:

          // 全局区   

    #user  nobody;

    worker_processes  1;      #有一个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为CPU数*核数


    #error_log  logs/error.log;


    #pid        logs/nginx.pid;



    events {         #一般是配置 Nginx连接的特性

                            #如1个word能同时允许多少连接

        worker_connections  1024;      # 这是指 一个子进程最大允许连1024个连接   

    }



    http {            #这是配置http服务器的主要段

        include       mime.types;

        default_type  application/octet-stream;


        #                  '$status $body_bytes_sent "$http_referer" '

        #                  '"$http_user_agent" "$http_x_forwarded_for"';


        #access_log  logs/access.log  main;


        sendfile        on;

        #tcp_nopush     on;


        #keepalive_timeout  0;

        keepalive_timeout  65;


        #gzip  on;


        server {                   #这是配置虚拟主机的段

            listen       80;

            server_name  localhost;


            #charset koi8-r;


            #access_log  logs/host.access.log  main;


            location / {            #定位,把特殊的路径或文件再次定位,如image目录单独处理

                root   html;

                index  index.html index.htm;

            }                                 #如,php单独处理


            # redirect server error pages to the static page /50x.html

            #

            error_page   500 502 503 504  /50x.html;

            location = /50x.html {

                root   html;

            # proxy the PHP scripts to Apache listening on 127.0.0.1:80

            #

            #location ~ \.php$ {

            #    proxy_pass   http://127.0.0.1;

            #}


            #

            #location ~ \.php$ {

            #    root           html;

        #    fastcgi_pass   127.0.0.1:9000;

        #    include        fastcgi_params;

        #}


        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        #location ~ /\.ht {

        #    deny  all;

        #}

    }



    #

    #server {

    #    listen       8000;

    #    listen       somename:8080;

    #    server_name  somename  alias  another.alias;


    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}



    # HTTPS server

    #

    #server {

    #    listen       443 ssl;

    #    server_name  localhost;


    #    ssl_certificate      cert.pem;

    #    ssl_certificate_key  cert.key;


    #    ssl_session_cache    shared:SSL:1m;

    #    ssl_session_timeout  5m;


    #    ssl_ciphers  HIGH:!aNULL:!MD5;

    #    ssl_prefer_server_ciphers  on;


    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}


}


五、Nginx配置虚拟主机的三种方法

 

    1、基于域名配置虚拟主机配置:

        在 /usr/local/nginx 目录下创建文件夹 z.com,然后创建index.html文件。

        mkdir z.com

        vim z.com/index.html

        <html>

            this is z.com

        </html>

        打开/usr/local/nginx/conf/nginx.conf

            添加以下信息:

            server {

        listen 80;

        server_name  z.com;

        

        location / {

                root z.com;

                index  index.html;

            }

        }


        重新读出配置文件:/usr/local/nginx -s reload

        更改windows电脑的hosts配置文件:

        192.168.149.128    z.com

        浏览器访问域名:

        

    

2、基于端口配置虚拟主机配置:

        在 /var/www 目录下创建文件夹 html,然后创建index.html文件。

        mkdir html

        vim html/index.html

        <html>

            welcome to z.coms panel

        </html>

        打开/usr/local/nginx/conf/nginx.conf

            添加以下信息:

            server {

        listen 2022;

        server_name  z.com;

        

        location / {

                root /var/www.html;

                index  index.html;

            }

        }

        启动:   kill  -HUP  'cat  logs/nginx.pid

        浏览器访问:z.com:2022


3、基于IP配置虚拟主机配置:

        在 /usr/local/negin 目录下创建文件夹 ip,然后创建index.html文件。

        mkdir ip

        vim ip/index.html

        <html>

            this is from ip

        </html>

        打开/usr/local/nginx/conf/nginx.conf

            添加以下信息:

            server {

        listen 80;

        server_name  192.168.148.128;

        

        location / {

                root  ip;

                index  index.html;

            }

        }

        启动:   ./sbin/nginx -s reload

        浏览器访问:192.168.149.128


以上是关于Nginx 虚拟主机配置的主要内容,如果未能解决你的问题,请参考以下文章

nginx虚拟主机配置

Nginx 虚拟主机配置

nginx常用配置系列-虚拟主机

nginx基础配置(多个虚拟主机)

nginx 配置

nginx虚拟主机配置