Linux上Nginx的安装和使用

目录

1、Nginx的简介... 3

1.1、Nginx是什么... 3

1.2、Nginx能干什么... 3

1.3、Nginx的特点... 3

2、Nginx的下载... 3

3、Linux下Nginx的安装步骤... 4

3.1、安装Nginx的依赖... 4

3.1.1、安装必要依赖C语言编译器gcc. 4

3.1.2、安装必要依赖pcre. 5

3.1.3、安装必要依赖zlib. 5

3.1.4、安装选择依赖OpenSSL. 6

3.1.5、一键安装所有依赖... 7

3.2、安装Nginx的步骤... 7

3.2.1、下载... 7

3.2.2、解压缩... 7

3.2.3、执行./configure文件... 8

3.2.4、执行make编译... 9

3.2.5、执行make编译安装... 9

3.2.6、检查安装地址... 10

3.2.7、进入安装地址进行启动... 10

3.2.8、查看nginx启动后的进程... 10

3.2.9、浏览器访问测试... 11

4、Nginx的常用命令... 11

4.1、Nginx测试配置文件... 11

4.2、Nginx的启动命令... 11

4.3、Nginx的停止命令... 11

4.4、Nginx的重启命令... 11

4.5、查询Nginx进程命令... 11

4.6、Nginx的平滑重启... 12

5、增加防火墙访问权限... 12

6、Nginx反向代理服务器配置及测试验证... 12

6.1、Nginx反向代理服务器的配置步骤... 12

6.1.1、创建虚拟域名... 12

6.1.2、编辑nginx.conf文件... 14

6.1.3、新建vhost文件夹... 15

6.1.4、创建域名转发端口的server文件... 16

6.1.5、重启验证转发端口验证测试... 17

6.1.4、创建域名转发目录的server文件... 18

6.1.5、重启验证转发端口验证测试... 19

6.2、域名配置介绍... 20

6.4.1、配置域名指向端口... 20

6.4.2、配置域名指向目录... 20

1、Nginx的简介

1.1、Nginx是什么

         Nginx是一款轻量级web服务器、也是一款反向代理服务器

1.2、Nginx能干什么

         (1)可直接支持Rails和PHP的程序

         (2)可以作为HTTP的反向代理服务器

         (3)可作为负载均衡服务器

         (4)可作为邮件代理服务器

         (5)帮助实现前端动静分离

1.3、Nginx的特点

         高稳定、高性能、资源占用少

         功能丰富、模块化结构、支持热部署

2、Nginx的下载

Nginx的官网下载地址:http://www.nginx.org/

Linux上Nginx的安装和使用

点击download,进入下载选择页

Linux上Nginx的安装和使用

选择稳定版本

选择系统运行环境,可以直接点击需要的版本号直接进行下载

载Linux中,可以复制指定版本号的下载链接到Linux系统上通过wget下载。

3、Linux下Nginx的安装步骤

3.1、安装Nginx的依赖

3.1.1、安装必要依赖C语言编译器gcc

         安装命令:yum install gcc

[[email protected] src]# yum install gcc

Linux上Nginx的安装和使用

已经安装过了,没有安装会自动安装

         查询命令:gcc -v或者rpm -qa|grep gcc

[[email protected] src]# gcc -v

Linux上Nginx的安装和使用

[[email protected] src]# rpm -qa|grep gcc

Linux上Nginx的安装和使用

查询gcc的版本信息,看系统是否自带安装,如果系统已经安装,根据自己的服务器环境需要,是否升级。

3.1.2、安装必要依赖pcre

         安装命令:yum install pcre-devel

[[email protected] src]# yum install pcre-devel

Linux上Nginx的安装和使用

已经安装过了,没有安装会自动安装

查询是否安装命令:rpm -qa|grep pcre

[[email protected] src]# rpm -qa|grep pcre

Linux上Nginx的安装和使用

3.1.3、安装必要依赖zlib

         安装命令:yum install zlib zlib-devel

[[email protected] src]# yum install zlib zlib-devel

Linux上Nginx的安装和使用

已经安装过了,没有安装会自动安装

查询是否安装命令:rpm -qa|grep zlib

[[email protected] src]# rpm -qa|grep zlib

Linux上Nginx的安装和使用

3.1.4、安装选择依赖OpenSSL

         安装命令:yum install openssl openssl-devel

[[email protected] src]# yum install openssl openssl-devel

Linux上Nginx的安装和使用

已经安装过了,没有安装会自动安装

查询是否安装命令:rpm -qa|grep openssl

[[email protected] src]# rpm -qa|grep openssl

Linux上Nginx的安装和使用

注:如需要支持ssl,才需要安装OpenSSL。此处直接安装上。

3.1.5、一键安装所有依赖

         综合命令:yum -y install gcc zlib zlib-devel pcre pcre-devel openssl openssl-devel

3.2、安装Nginx的步骤

3.2.1、下载

         进入/usr/local/src/目录下使用wget下载指定版本的Nginx的安装包

[[email protected] ~]# cd /usr/local/src/

Linux上Nginx的安装和使用

         下载命令:wget 下载地址 下载后保存的文件名(可以不写,默认以最后一个“/”后面的字符串作为下载后的文件名)

[[email protected] src]# wget http://nginx.org/download/nginx-1.14.0.tar.gz

Linux上Nginx的安装和使用

3.2.2、解压缩

         解压缩命令:tar -zxvf 解压源文件 解压目标文件(可以不写,默认以源文件名“.tar.gz”之前的字符串作为解压缩后的文件名)

[[email protected] src]# tar -zxvf nginx-1.14.0.tar.gz

Linux上Nginx的安装和使用

查看解压后的文件

[[email protected] src]# ls

Linux上Nginx的安装和使用

3.2.3、执行./configure文件

进入解压目录

[[email protected] src]# cd /usr/local/src/nginx-1.14.0

Linux上Nginx的安装和使用

执行./configure文件,并指定安装目录

[[email protected] nginx-1.14.0]# ./configure --prefix=/usr/local/nginx

Linux上Nginx的安装和使用

执行完成

Linux上Nginx的安装和使用

此处可以指定安装目录,增加参数--prefix=/usr/local/nginx(这里是指定安装在/usr/local/nginx)

如果不指定安装路径,可以通过whereis nginx进行查询,可以查询到安装位置

Nginx默认也是安装在/usr/local/nginx目录下的

3.2.4、执行make编译

make编译命令:make

[[email protected] nginx-1.14.0]# make

Linux上Nginx的安装和使用

编译完成

Linux上Nginx的安装和使用

3.2.5、执行make编译安装

         make安装命令:make install

[[email protected] nginx-1.14.0]# make install

Linux上Nginx的安装和使用

安装完成

Linux上Nginx的安装和使用

3.2.6、检查安装地址

         检查软件安装位置的命令:whereis 软件名

[[email protected] nginx-1.14.0]# whereis nginx

Linux上Nginx的安装和使用

3.2.7、进入安装地址进行启动

         命令 cd nginx的安装目录

[[email protected] nginx-1.14.0]# cd /usr/local/nginx/

Linux上Nginx的安装和使用

进入nginx的安装路径下的sbin目录下执行./nginx进行启动

Linux上Nginx的安装和使用

或者在任何目录下执行命令:安装目录下的/nginx/sbin/nginx

3.2.8、查看nginx启动后的进程

         命令:ps aux | grep 软件名

或者命令ps ef | grep 软件名

最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。

杀进程

   使用kill命令结束进程:kill xxx

   常用:kill -9 324

   Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME

Linux上Nginx的安装和使用

3.2.9、浏览器访问测试

因为nginx默认监听80端口,直接在浏览器中输入Linux的ip进行访问测试

Linux上Nginx的安装和使用

4、Nginx的常用命令

4.1、Nginx测试配置文件

         命令:安装目录下的/nginx/sbin/nginx -t              #测试配置文件的正确性

4.2、Nginx的启动命令

         命令:安装目录下的/nginx/sbin/nginx

4.3、Nginx的停止命令

         命令:安装目录下的/nginx/sbin/nginx -s stop

或者是:nginx -s quit

4.4、Nginx的重启命令

         命令:安装目录下的/nginx/sbin/nginx -s reload

4.5、查询Nginx进程命令

         命令:ps -ef|grep nginx

4.6、Nginx的平滑重启

         命令:kill HUP Nginx的主进程号(主进程号是通过进程查询命令查询到的PID)

平滑重启的目的就是重启的时候比较平滑。当Nginx接收到HUP这个信号时,它会尝试先解析配置文件,如果配置文件进行过更改,此时先解析配置文件,如果成功的话,会使用新的配置文件,例如重新打开一个新的配置文件,或者监听的套接字,之后nginx会运行新的工作进程,并且从容关闭旧的工作进程(nginx -s quit),但是继续为当前链接的客户提供服务,当所有的工作服务完成后,旧的工作进程就会关闭;如果解析新的文件不成功(更改后出现错误)则使用原来旧的配置文件。

5、增加防火墙访问权限

编辑防火墙文件/etc/sysconfig/iptables(此处的Linux环境用的是centos6的环境,如果用的环境是centos7的工作环境需要 配置firewalld)

添加防火墙规则:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

保存退出。

重启防火墙

service iptables restart

6、Nginx反向代理服务器配置及测试验证

6.1、Nginx反向代理服务器的配置步骤

6.1.1、创建虚拟域名

如果没有真实的域名,可以使用虚拟域名,进行测试。使用虚拟域名必须先要修改Linux下的hosts文件和Windows下的hosts文件,编辑添加域名对应的主机,不然找不到主机;

如果有真实的域名,域名已通过dns解析,指向当前服务器,则不需要编辑hosts文件添加虚拟域名。

(1)Linux下hosts文件修改,添加虚拟域名指向的主机

进入/etc/目录下找到hosts文件,编辑修改Linux服务器的hosts文件,添加虚拟域名

[[email protected] ~]# cd /etc/

[[email protected] etc]# ls

Linux上Nginx的安装和使用

编辑hosts文件,添加虚拟域名

[[email protected] etc]# vi hosts

Linux上Nginx的安装和使用

保存退出。

(2)Windows下hosts文件修改,添加虚拟域名指向的主机

进入C:\Windows\System32\drivers\etc这个目录,找到里面的hosts文件,用记事本打开hosts文件添加对应好域名指向的ip,保存退出

Linux上Nginx的安装和使用

由此,配置好Linux服务端和Windows客户端的虚拟域名,才能够正常使用虚拟域名。

注:以下步骤皆是用虚拟域名测试,如果采用真实域名时,各步骤相同,只是不需要修改任何hosts文件。

6.1.2、编辑nginx.conf文件

编辑nginx的conf文件,增加include vhost/*.conf,相当于将每个域名的server分离成单独的conf文件。当加载nginx的conf文件时,在nginx的conf文件中在include(加载)每个域名单独的server的conf文件,以便于维护不同域名的服务,同时还防止了nginx本身的conf文件越来越大。

进入nginx的安装目录的conf目录下

[[email protected] ~]# cd /usr/local/nginx/conf/

Linux上Nginx的安装和使用

编辑nginx的nginx.conf文件

[[email protected] ~]# vi /usr/local/nginx/conf/nginx.conf

Linux上Nginx的安装和使用

在该文件的http节点中的server节点之后加上加载配置域名代理的server文件

添加节点:include vhost/*.conf;

Linux上Nginx的安装和使用

保存退出

6.1.3、新建vhost文件夹

         在/usr/local/nginx/conf/目录下新建vhost文件夹

         命令:mkdir /usr/local/nginx/conf/vhost

[[email protected] conf]# mkdir /usr/local/nginx/conf/vhost

Linux上Nginx的安装和使用

6.1.4、创建域名转发端口的server文件

在vhost文件夹下创建域名转发server配置文件

以下是已准备好的域名(此处是之前创建的虚拟域名)

www.zhangxiangrun.com.conf

进入nginx安装目录下的conf目录下新建的vhost目录下

[[email protected] etc]# cd /usr/local/nginx/conf/vhost/

Linux上Nginx的安装和使用

创建域名www.zhangxiangrun.com.conf文件

[[email protected] vhost]# vi www.zhangxiangrun.com.conf

添加当前域名www.zhangxiangrun.com的server节点

当服务器收到www.zhangxiangrun.com域名时,nginx会转发到该服务器的8080端口执行访问。通常8080端口监听Tomcat。(在此之前需要保证Tomcat正常运行)

server {

         default_type 'text/html';

         charset utf-8;

         listen 80;

         autoindex on;

         server_name www.zhangxiangrun.com;

         access_log /usr/local/nginx/logs/access.log combined;

         index index.html index.htm index.jsp index.php;

         #error_page 404 /404.html;

         if ( $query_string ~* ".*[\;'\<\>].*" ){

                   return 404;

         }

         location / {

                   proxy_pass http://127.0.0.1:8080;

                   add_header Access-Control-Allow-Origin *;

         }

}

Linux上Nginx的安装和使用

保存退出。

Linux上Nginx的安装和使用

6.1.5、重启验证转发端口验证测试

(1)重启nginx

重启:${nginx}/sbin/nginx -s reload

${nginx}表示nginx的安装目录

[[email protected] conf]# /usr/local/nginx/sbin/nginx -s reload

Linux上Nginx的安装和使用

(2)通过Windows端访问验证

在浏览器中输入www.zhangxiangrun.com进行访问

Linux上Nginx的安装和使用

通过nginx的转发,www.zhangxiangrun.com域名正常转发到Tomcat监听的8080端口。

6.1.4、创建域名转发目录的server文件

在vhost文件夹下创建域名转发server配置文件

以下是已准备好的域名(此处是之前创建的虚拟域名)

image.zhangxiangrun.com.conf

进入nginx安装目录下的conf目录下新建的vhost目录下

[[email protected] etc]# cd /usr/local/nginx/conf/vhost/

Linux上Nginx的安装和使用

创建域名image.zhangxiangrun.com.conf文件

[[email protected] vhost]# vi image.zhangxiangrun.com.conf

添加当前域名image.zhangxiangrun.com的server节点

当服务器收到image.zhangxiangrun.com域名时,nginx会转发到/ftpfile/目录执行访问。(此处可在目录中上传一些文件用于测试)

server {

         listen 80;

         autoindex off;

         server_name image.zhangxiangrun.com;

         access_log /usr/local/nginx/logs/access.log combined;

         index index.html index.htm index.jsp index.php;

         #error_page 404 /404.html;

         if ( $query_string ~* ".*[\;'\<\>].*" ){

                   return 404;

         }

         location ~ /(mmall_fe|mmall_admin_fe)/dist/view/* {

                   deny all;

         }

         location / {

                   root /ftpfile/;

                   add_header Access-Control-Allow-Origin *;

         }

}

Linux上Nginx的安装和使用

保存退出。

Linux上Nginx的安装和使用

6.1.5、重启验证转发端口验证测试

(1)重启nginx

重启:${nginx}/sbin/nginx -s reload

${nginx}表示nginx的安装目录

[[email protected] conf]# /usr/local/nginx/sbin/nginx -s reload

Linux上Nginx的安装和使用

(2)查看指向的/ftpfile/目录中的文件

Linux上Nginx的安装和使用

(3)通过Windows端访问验证

在浏览器中输入image.zhangxiangrun.com/beijin.jpg进行访问

Linux上Nginx的安装和使用

通过nginx的转发,image.zhangxiangrun.com域名正常转发到/ftpfile/目录成功。

6.2、域名配置介绍

6.4.1、配置域名指向端口

通过http指向一个http和端口的配置,配置文件:learning.happymmall.com.conf

         即指向端口又指向目录的配置,配置文件:happymmall.com.conf

端口http的转发,执行顺序

Linux上Nginx的安装和使用

6.4.2、配置域名指向目录

         提供的图片服务器:img.happymmall.com.conf

         给前端提供的前端部署服务器:s.happymmall.com.conf

目录转发

Linux上Nginx的安装和使用

执行顺序和指向端口一致。

http转发端口和http转发目录的区别:

http转发端口时,在location中用关键字:proxy_pass

http转发端口时,在location中用关键字:root