快速掌握Nginx(一) —— 安装Nginx和简单配置虚拟主机

Nginx安装和简单配置虚拟主机

1 Nginx简介

  Nginx是近几年最火热的http、反向代理服务器,百度阿里等互联网公司也都在使用Nginx,它也能够用做邮件代理服务器、TCP/UDP代理服务器等。Nginx功能和Apache类似,其优势主要在于如下几点:html

①高并发响应性能好,官方nginx处理静态文件并不是为5w/s; ②反向代理性能好(可用于负载均衡); ③内存和cpu占用率低(为Apache的1/5~1/10)。

  Nginx是由内核和模块组成,内核设计十分简洁,实现的功能仅仅是:经过查找配置文件将客户端请求映射到一个location block(loaction是nginx配置中的一个指令,用于url匹配),location中所配置的每一个指令都会启动不一样的模块去完成相应的工做。nginx

2 Nginx安装

  这里咱们把Nginx安装在Centos虚拟机上,安装十分简单,按照下边的命令便可安装成功(下载地址不是稳定的,按照需求更改wget后的下载连接 ,官方网址http://nginx.org/en/download.html):vim

#按装一些工具,pcre用于支持rewrite
yum install pcre-devel pcre -y yum -y install openssl openssl-devel #切换到root,下载并解压
cd /usr/src
wget -c http://120.52.51.15/nginx.org/download/nginx-1.14.2.tar.gz
tar -xzf nginx-1.14.2.tar.gz cd nginx-1.14.2.tar.gz 
#查看配置 ./configure --help
#预编译,设置用户wyy1和组wyyy,编译位置为/usr/local/nginx ,添加两个http相关模块 ./configure --user=wyy1 --group=wyyy --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
#编译并安装 make &&make install

安装完成后,转到安装目录 cd /usr/local/nginx ,看到Nginx基本结构以下:浏览器

经过命令 /usr/local/nginx/sbin/nginx 就能够启动Nginx,Nginx的默认端口是80,咱们在电脑的浏览器中输入虚拟机的IP,若是看到以下界面表示Nginx安装成功了服务器

几个Nginx经常使用的命令并发

###启动nginx
/usr/local/nginx/sbin/nginx
 #1.查看配置文件是否有错误
/usr/local/nginx/sbin/nginx -t
#2.信号量,-s表示signal #重读配置文件 /usr/local/nginx/sbin/nginx -s reload #优雅中止nginx /usr/local/nginx/sbin/nginx -s quit #强制中止nginx /usr/local/nginx/sbin/nginx -s stop #重读日志文件,日志切割时使用 /usr/local/nginx/sbin/nginx -s reopen ###其余 #查看版本号 /usr/local/nginx/sbin/nginx -v #查看预编译配置(安装时预编译的配置) /usr/local/nginx/sbin/nginx -V

 

3 简单配置和添加虚拟主机

  为了便于理解,咱们把 /usr/local/nginx/conf/nginx.conf 配置文件的内容替换为以下内容,server节点下的listen为监听的端口,Nginx的默认端口是80;server_name是虚拟主机的名字;location表示当接收到一个请求后怎么去映射:默认映射到 /usr/local/nginx/html/ 目录下的index.html,index.htm文件。咱们经过 nginx -s reload 命令重启Nginx服务器,再次访问虚拟机IP仍然能够跳转到Nginx的欢迎界面。app

#最简单的配置
worker_processes 1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;                    #端口
        server_name  localhost;             #主机名
        location / {
            root   html;                    #项目根目录
            index  index.html index.htm;    #起始页
        }
    }
}

  若是咱们要使用Nginx部署两个网站,每一个网站都部署在一台虚拟主机上,怎么实现呢?负载均衡

  Nginx添加虚拟主机十分方便,nginx的配置文件中每个server都表示一个虚拟主机,若是咱们想添加一个虚拟主机的话,在配置文件中添加一个server节点,而后执行 /usr/local/nginx/sbin/nginx -s reload 从新加载配置便可。这里咱们添加两台虚拟主机,配置以下:ide

#最简单的配置
worker_processes 1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

 #default server
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
    }
#www.mysite1.com
    server {
        listen       80;
        server_name  www.mysite1.com;
        location / {
            root   /usr/local/nginx/html/mysite1/;
            index  index.html index.htm;
        }
    }
#www.mysite2.com
    server {
        listen       80;
        server_name  www.mysite2.com;
        location / {
            root   /usr/local/nginx/html/mysite2/;
            index  index.html index.htm;
        }
    }
}
View Code

  这里咱们添加了两台虚拟主机www.mysite1.com和www.mysite2.com,www.mysite1.com主机对应的网站目录为 /usr/local/nginx/html/mysite1/ ,该目录下有index.html文件,内容以下图。mysite2也是同样的结构。高并发

  在咱们的电脑上打开  C:\Windows\System32\drivers\etc 目录,修改该目录下的hosts文件,添加两个DNS映射(简单说明:添加DNS映射后,输入www.mysite1.com就会被解析为IP地址192.160.70.132。):

192.168.70.132 www.mysite1.com
192.168.70.132 www.mysite2.com

  而后打开浏览器访问www.mysite1.com和www.mysite2.com,结果以下:

   咱们看到mysite1和mysite2均可以正常访问,说明咱们的添加的虚拟主机能够正常运行。可是这样有一个问题,若是咱们部署了几十个、甚至几百个虚拟主机,那么就要在nginx.conf中添加不少的server节点,若是咱们想修改其中某一个server节点,查找和修改起来就比较麻烦,并且也容易误操做。咱们能够给每一个虚拟主机配置一个配置文件,这样修改某一个虚拟主机的配置就很方便了。

  针对上边的栗子,首先咱们建立目录 /usr/local/nginx/conf/vhosts ,这个目录用于存放各个虚拟主机的配置,命令以下:

mkdir /usr/local/nginx/conf/vhosts; cd /usr/local/nginx/conf/vhosts; vim www.mysite1.com;

  咱们让配置文件的名字和虚拟主机名一致,如www.mysite1.com虚拟主机的配置文件是 vhosts/www.mysite1.com文件,其内容以下:

#www.mysite1.com
    server {
        listen       80;
        server_name  www.mysite1.com;
        location / {
            root   /usr/local/nginx/html/mysite1/;
            index  index.html index.htm;
        }
    }

  一样www.mysite2.com虚拟主机的配置文件就是 vhosts/www.mysite2.com文件,其内容以下:

#www.mysite2.com
    server {
        listen       80;
        server_name  www.mysite2.com;
        location / {
            root   /usr/local/nginx/html/mysite2/;
            index  index.html index.htm;
        }
    }

   /usr/local/nginx/conf/nginx.conf 配置文件的内容修改以下:

worker_processes 1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

#加载vhosts目录下全部配置
include vhosts/* ;

  执行 /usr/local/nginx/sbin/nginx -s reload 命令重启nginx,而后访问www.mysite1.com和www.mysite2.com都可正常访问。

4 Ngnix平滑升级

  最后补充一下Nginx的升级。若是咱们想将Ngnix升级到新版本,可是Nginx已经部署了不少的项目,怎么才能升级Ngnix而不影响咱们之前部署的项目呢?这里再也不多赘述,完整的升级命令以下:

### Nginx升级
pkill-9 ngnix ;
cd /usr/src; #①下载新版本 wget -c http://120.52.51.15/nginx.org/download/nginx-1.xx.xx.tar.gz #②获取旧版本的配置 /usr/local/nginx/sbin/nginx -V #③解压安装包 tar -xzf nginx-1.xx.xx.tar.gz cd nginx-1.xx.x.tar.gz #④预编译【必定要和旧版本的配置项一致】 ./configure --user=wyy1 --group=wyyy --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #⑤编译 make #⑥sbin的nginx替换成新版本的nginx mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old cp /usr/src/nginx-1.14.2/objs/nginx /usr/local/nginx/sbin/nginx

小结:这篇介绍Nginx在Centos上的安装和最简单的配置和添加虚拟主机,下一篇介绍location和rewrite部分。

相关文章
相关标签/搜索