Nginx的详细安装步骤

这篇文章主要讲解了“Nginx的详细安装步骤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx的详细安装步骤”吧!

专注于为中小企业提供成都网站制作、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业鹿城免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

一、Nginx

    Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

二、搭建简单的Nginx环境
 

搭建环境: Linux CentOS7

Nginx不支持yum安装,需要用到包(我这里用主线版本安装):

API http://nginx.org/download/nginx-1.17.4.tar.gz

依赖包: yum -y install gcc pcre-devel openssl-devel  

0.要做的事

在IP地址为192.168.109.190的主机上安装部署Nginx服务,并可以将Nginx服务器,要求编译时启用如下功能:

支持SSL加密功能
设置Nginx账户及组名称均为nginx
Nginx服务器升级到更高版本。
访问验证Nginx Web服务器:
 

1.安装Nginx软件包

[root@centos7~]# yum -y install gcc pcre-devel openssl-devel   (我是最小化安装的系统需要把依赖包安装完整yum -y install gcc pcre pcre-devel openssl openssl-devel make automake autoconf)     //安装依赖包
[root@centos7~]# useradd -s /sbin/nologin nginx                     //添加一个专用用户,添加参数-s后面补充
[root@centos7~]# tar -xzvf nginx-1.17.4.tar.gz
[root@centos7~]# cd nginx-1.17.4
[root@centos7 nginx-1.17.4]# ./configure \
> --prefix=/usr/local/nginx \         //指定安装路径
> --user=nginx \                           //指定用户
> --group=nginx \                        //指定组
> --with-http_ssl_module             //开启SSL加密功能
[root@centos7 nginx-1.17.4]# make && make install    //编译并安装
[root@centos7 nginx-1.17.4]#ls /usr/local/nginx/sbin/nginx          //查看是否有这个目录,有则安装成功

补充(关于为何添加专用用户):

     按照最小特权原则,需要给Nginx分配一个合适的权限,让其能够完成Web服务。
     最小特权原则是系统安全中最基本的原则之一,它限制了使用者对系统及数据进行存取所需要的最小权限,既保证了用户能够完成所操作的任务,同时也确保非法用户或异常操作所造成的损失最小。必须保证Nginx使用一个专门的用户和用户组,不要使用系统预定义的账号。
     因为只有root用户可以运行Nginx,DocumentRoot应该能够被管理Web站点内容的用户访问和使用Nginx服务器的Nginx用户和Nginx用户组访问。所以,如果希望“nginx”用户在Web站点发布内容,并且可以以httpd身份运行Nginx服务器,通常可以将这个用户添加到Nginx组里.

    总言之,我们以root用户启用Nginx并以Nginx用户或组身份使用Nginx,因为如果不将root与Nginx用户分离,如使用者具备root权限,就可以通过Nginx软件的系统路径向上找到根,这是很危险的.

2.启动Nginx

[root@centos7~]# /usr/local/nginx/sbin/nginx                        //启动服务
[root@centos7~]# /usr/local/nginx/sbin/nginx -s stop            //关闭服务
[root@centos7~]# /usr/local/nginx/sbin/nginx -s reload        //重新加载配置文件
[root@centos7~]# /usr/local/nginx/sbin/nginx -V                //查看软件信息
[root@centos7~]# ln -s /usr/local/nginx/sbin/nginx /sbin        //创建软链接,方便后期使用,直接输入nginx即可启动服务 

3.验证Nginx正在运行

netstat命令可以查看系统中启动的端口信息,该命令常用选项如下:

-a显示所有端口的信息

-n以数字格式显示端口号

-t显示TCP连接的端口

-u显示UDP连接的端口

-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口

-p显示监听端口的服务名称是什么(也就是程序名称)

nginx服务默认通过TCP 80端口监听客户端请求,观察通过TCP 80是否在被nginx占用,如果你的服务器还有其他的使用80端口的服务,如httpd,你就要关闭httpd,关闭进程 kill all -9 httpd

[root@centos7 ~]# netstat -anptu | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17472/nginx: master 
Nginx的详细安装步骤
3.配置Nginx虚拟主机

虚拟主机(英语:virtual hosting)或称 共享主机(shared web hosting),又称虚拟服务器,是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。虚拟主机之间完全独立,并可由用户自行管理,虚拟并非指不存在,而是指空间是由实体的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。

    其技术是互联网服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应用于HTTP,FTP,EMAIL等多项服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。如果划分是系统级别的,则称为虚拟服务器。

虚拟主机一般可用分为:基于域名、基于IP和基于端口的虚拟主机。在这里我们配置使用基于域名的虚拟主机.

#案例1

实现两个基于域名访问的虚拟主机,域名分别是www.aa.com和www.bb.com

修改配置文件

这里我们只配置最基本的功能,配置两个网站,网站aa使用默认的页面,网站bb新建一个index.html 放到目录www

mkdir /usr/local/nginx/www  //创建目录www

echo "this is www.bb.com hell world!" > /usr/local/nginx/www/index.html //创建index.html文件并写入this is www.bb.com hell world!

vim /usr/local/nginx/conf/nginx.conf

修改如下:

user  nginx nginx; 
worker_processes  1; 

pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;    //访问的端口
        server_name  www.aa.com;    //访问的域名
        location / {
            root   html;        //指定网站根路径
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
    server {
        listen       80;    //端口
        server_name  www.bb.com;    //域名
        location / {
            root   www;    //指定根路径,前面使用的是默认路径,这里指向我们创建的目录www
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

配置修改完成后,我们重启一下nginx

[root@centos7 ~]# nginx -s reload

测试

绑定本地hosts文件进行测试:

访问www.aa.com显示默认nginx页面

Nginx的详细安装步骤

访问www.bb.com显示我们配置的html页面:

Nginx的详细安装步骤

关于nginx作为反向代理的配置还有很多种方式,之前已经说了基于域名,还有基于IP和域名加不同端口、IP加不同端口等配置

只需要修改配置文件中的listen和server_name这两个参数就可以

4.配置访问SSL虚拟主机.

SSL(Secure Socket Layer),为Netscape所研发,用以保障在Internet上数据传输的安全,利用数据加密(Encryption)技术,可确保数据在网络上的传输过程中不会被截取及窃听。一般通用的规格为40 bit的安全标准,美国则已推出128 bit的更高安全标准,但限制出境。只要3.0版本以上的I.E.或Netscape浏览器即可支持SSL。

      SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

       通俗来讲,不使用SSL协议就不安全,如果简单的进行文件传输,当访问者输入账号密码给服务器后一切都是明文显示的,如果这时候有人抓包就可以看到文件的内容,使用SSL协议将数据加密,即使被抓包了也看不到文件的具体内容,极大提高的了安全性,尤其是涉及金钱交易的网站.

#案例2

实现一个基于https协议访问的SSL虚拟主机,并通过私钥、证书对该站点所有的数据加密

#加密算法:

#加密算法一般分为对称算法、非对称算法、信息摘要。

#对称算法有:AES、DES,主要应用在单机数据加密。

#非对称算法有:RSA、DSA,主要应用在网络数据加密。

#信息摘要:MD5、sha256,主要应用在数据完整性校验。

一般采用非对称算法RSA:

[root@centos7 conf]# openssl genrsa > cert.key    //生成私钥,注意记录文件名称,在后续配置nginx配置文件时要使用

[root@centos7 conf]# openssl req -new -x509 -key cert.key > cert.pem    //生成证书,注意记录文件名称,在后续配置nginx配置文件时要使用

修改nginx配置文件:

[root@centos7 conf]# vim nginx.conf

user  nginx nginx;
worker_processes  1;

pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  www.cc.com;
         return      301 https://$server_name$request_uri;    //配置http访问www.cc.com的时候强制跳转到https的访问方式

        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
#HTTPS server
    server {
        listen       443 ssl;
        server_name  www.cc.com;

        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

[root@centos7 conf]# nginx -s reload

修改本地hosts文件进行验证:

用google浏览器访问已经提示https不安全的网络连接,这个原因是我们配置的SSL文件是本地生成

非第三方官方认证,所以google浏览器会弹出这样的提示,我们只需要点高级,继续访问就可以了。

Nginx的详细安装步骤

Nginx的详细安装步骤

感谢各位的阅读,以上就是“Nginx的详细安装步骤”的内容了,经过本文的学习后,相信大家对Nginx的详细安装步骤这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


当前标题:Nginx的详细安装步骤
文章位置:http://ybzwz.com/article/psdecp.html