Nginx的安装和部署

Nginx是一种服务器软件,也是一种高性能的http和反向代理服务器,同时还是一个代理邮件服务器。也就是说,我们在Nginx上可以发布网站,可以实现负载均衡(提高应答效率,避免服务器崩溃),还可以作为邮件服务器实现收发邮件等功能。而最常见的就是使用Nginx实现负载均衡。

与Tomcat相比,Tomcat面向Java语言,是重量级的服务器,而Nginx是轻量级的服务器。Apache服务器稳定、开源、跨平台,但是Apache服务器不支持高并发,Nginx能支持处理百万级的TCP连接,10万以上的并发连接,并且是一个很好的跨平台服务器。Nginx主要优点有可以实现高并发、部署简单、内存消耗少、成本低等,主要缺点有rewrite功能不够强大,模块没有Apache的多。

1.Linux下搭建Nginx服务器

1.下载Nginx http://nginx.org/

2.上传Nginx安装包至服务器并安装Nginx

$ scp ~/Downloads/nginx-1.12.1.tar.gz root@192.168.2.20:/usr/local
$ ssh root@192.168.2.20                          //SSH连接
# yum -y install gcc gcc-c++ autoconf automake   //gcc、gcc-c++的库文件
# yum -y install pcre pcre-devel                 //安装Nginx依赖包
# yum -y install zlib zlib-devel

注意:-y表示遇到判断全部yes,autoconf表示自动配置,automake表示自动编译。

或者手动下载相关的依赖库等

[root@localhost src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz
省略安装内容...
[root@localhost src]# wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz
省略安装内容...
[root@localhost src]# wget http://zlib.net/zlib-1.2.11.tar.gz
省略安装内容...
[root@localhost src]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
省略安装内容...

安装c++编译环境,如已安装可略过

[root@localhost src]# yum install gcc-c++
省略安装内容...
期间会有确认提示输入y回车
Is this ok [y/N]:y
省略安装内容...

然后安装Nginx及相关组件

openssl安装

[root@localhost src]# tar zxvf openssl-fips-2.0.10.tar.gz
省略安装内容... [root@localhost src]# cd openssl-fips-2.0.10 [root@localhost openssl-fips-2.0.10]# ./config && make && make install
省略安装内容...

pcre安装

[root@localhost src]# tar zxvf pcre-8.40.tar.gz
省略安装内容... [root@localhost src]# cd pcre-8.40 [root@localhost pcre-8.40]# ./configure && make && make install
省略安装内容...

zlib安装

[root@localhost src]# tar zxvf zlib-1.2.11.tar.gz
省略安装内容... [root@localhost src]# cd zlib-1.2.11 [root@localhost zlib-1.2.11]# ./configure && make && make install
省略安装内容...

nginx安装

[root@localhost src]# tar zxvf nginx-1.10.2.tar.gz
省略安装内容... [root@localhost src]# cd nginx-1.10.2 [root@localhost nginx-1.10.2]# ./configure && make && make install
省略安装内容...

经过上面的安装步骤和目录设置,nginx的启动程序就是/usr/local/nginx/sbin/nginx,默认配置文件是/usr/local/nginx/conf/nginx.conf,但是不建议直接编辑nginx.conf,一般我们都选择新建配置文件,然后在新建的配置文件中修改端口、反向代理路径等。

测试是否安装成功

# cd到刚才配置的安装目录/usr/loca/nginx/
./sbin/nginx -t

2.Nginx的启动、停止与信号控制

1.启动Nginx服务器:

先找一下nginx安装到什么位置上了

 

进入nginx目录并启动

报错了,error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory,按照下面方式解决

复制代码
1.用whereis libpcre.so.1命令找到libpcre.so.1在哪里
2.用ln -s /usr/local/lib/libpcre.so.1 /lib64命令做个软连接就可以了
3.用sbin/nginx启动Nginx
4.用ps -aux | grep nginx查看状态
[root@localhost nginx]# whereis libpcre.so.1
[root@localhost nginx]# ln -s /usr/local/lib/libpcre.so.1 /lib64
[root@localhost nginx]# sbin/nginx
[root@localhost nginx]# ps -aux | grep nginx 
复制代码

进入Linux系统的图形界面,打开浏览器输入localhost会看到下图,说明nginx启动成功

nginx的基本操作

复制代码
启动
[root@localhost ~]# /usr/local/nginx/sbin/nginx
停止/重启
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop(quit、reload)
命令帮助
[root@localhost ~]# /usr/local/nginx/sbin/nginx -h
验证配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
复制代码

2.停止Nginx服务器的三种方式:

//从容停止
# ps -ef|grep nginx    //查看Nginx的主进程号(master process),假设此处查询得到1060
# kill -quit 1060

//快速停止
# ps -ef|grep nginx
# kill -term 1060

//强制停止
# pkill -9 nginx

3.重启Nginx服务器:

# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf      //验证配置文件的正确性
# /usr/local/nginx/sbin/nginx -s reload 

4.平滑升级Nginx服务器

平滑升级不会停掉在运行着的进程,这些进程会继续处理请求,但不会再接受新请求,在这些老进程在处理完还在处理的请求后,停止。此平滑升级的过程中,新开的进程会被处理。这就是平滑升级。

# /usr/local/nginx/sbin/nginx -v             //查看当前版本

下面进行平滑升级:

# cd /usr/local
# tar -zxvf nginx-1.13.2.tar.gz              //解压缩 新版本Nginx
# cd nginx-1.13.2                            //切换到该目录下
# ./configure                                //配置
# make
# cd /usr/local/nginx/sbin                   //打开 旧版本Nginx可执行文件位置
# cp nginx nginx.old                  //备份 旧版本Nginx可执行文件,防止升级错误而无法恢复
# cp -rfp /usr/local/nginx-1.13.2/objs/nginx /usr/local/nginx/sbin     //复制新版本可执行文件到旧版本处
# rm -f /usr/local/nginx-1.13.2.tar.gz       //善后工作 删除压缩文件
# rm -rf /usr/local/nginx-1.13.2             //删除文件夹

至此,Nginx服务器平滑升级成功。

5.开启外网访问

在Linux系统中默认有防火墙Iptables管理者所有的端口,只启用默认远程连接22端口其他都关闭,咱们上面设置的80等等也是关闭的,所以我们需要先把应用的端口开启

方法一直接关闭防火墙,这样性能较好,但安全性较差,如果有前置防火墙可以采取这种方式

关闭防火墙
[root@localhost ~]# service iptables stop
关闭开机自启动防火墙
[root@localhost ~]# chkconfig iptables off
[root@localhost ~]# chkconfig --list|grep ipt

下面是防火墙的其他操作命令

方法二将开启的端口加入防火墙白名单中,这种方式较安全但性能也相对较差

编辑防火墙白名单
[root@localhost ~]# vim /etc/sysconfig/iptables
增加下面一行代码
-A INPUT -p tcp -m state -- state NEW -m tcp --dport 80 -j ACCEPT
保存退出,重启防火墙
[root@localhost ~]# service iptables restart

Linux配置完毕了,使用另一台电脑而非安装nginx的电脑,我是用的windows系统,配置一下host在“C:\Windows\System32\drivers\etc”下的hosts中配置一下域名重定向

10.11.13.22 nginx.test.com nginx.test1.com nginx.test2.com

然后cmd再ping一下这个域名是否正确指向了这个IP上

正确指向后在telnet一下80端口看一下是否可以与端口通信(如果telnet提示没有此命令是没有安装客户端,在启用或禁用windows功能处安装后再操作即可)

得到以下界面及代表通信成功

打开这台Windows系统内的浏览器,输入nginx.test.com会得到以下结果,就说明外网访问成功

如果防火墙你依然启用,只是设置了启用端口,那我们访问81那个端口会发现无法访问,因为我并没有加入白名单

到此Nginx服务器雏形部署完成。

 

posted @ 2017-09-21 10:19  十月围城小童鞋  阅读(174)  评论(0编辑  收藏  举报