编译安装nginx

风流意气都作罢 提交于 2019-12-03 17:27:42

啥是nginx

☆☆☆☆官方网址☆☆☆☆

 

Nginx的相关概念:

 反向代理:

—————————————————————————————————————————————————————

 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

负载均衡:

—————————————————————————————————————————————————————

负载均衡,英文名称为Load Balance,是指建立在现有网络结构之上,并提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。其原理就是数据流量分摊到多个服务器上执行,减轻每台服务器的压力,多台服务器共同完成工作任务,从而提高了数据的吞吐量。

 

 

安装nginx

依赖介绍:

gcc gcc-c++

gcc为GNU Compiler Collection的缩写,可以编译C和C++源代码等,它是GNU开发的C和C++以及其他很多种语言 的编译器(最早的时候只能编译C,后来很快进化成一个编译多种语言的集合,如Fortran、Pascal、Objective-C、Java、Ada、 Go等。)
gcc 在编译C++源代码的阶段,只能编译 C++ 源文件,而不能自动和 C++ 程序使用的库链接(编译过程分为编译、链接两个阶段,注意不要和可执行文件这个概念搞混,相对可执行文件来说有三个重要的概念:编译(compile)、链接(link)、加载(load)。源程序文件被编译成目标文件,多个目标文件连同库被链接成一个最终的可执行文件,可执行文件被加载到内存中运行)。因此,通常使用 g++ 命令来完成 C++ 程序的编译和连接,该程序会自动调用 gcc 实现编译。
gcc-c++也能编译C源代码,只不过把会把它当成C++源代码,后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。

 make automake

make是一个用来控制可执行文件和其他一些从源文件来的非源代码文件版本的软件。Make可以从一个名为makefile的文件中获得如何构建你所写程序的依赖关系,Makefile中列出了每个目标文件以及如何由其他文件来生成它。
automake是一个从Makefile.am文件自动生成Makefile.in的工具。为了生成Makefile.in,automake还需用到perl,由于automake创建的发布完全遵循GNU标准,所以在创建中不需要perl。libtool是一款方便生成各种程序库的工具。

 autoconf

autoconf是用来生成自动配置软件源代码脚本(configure)的工具

pcre pcre-devel

在Nginx编译需要 PCRE(Perl Compatible Regular Expression),因为Nginx 的Rewrite模块和HTTP 核心模块会使用到PCRE正则表达式语法。

zlip zlib-devel

nginx启用压缩功能的时候,需要此模块的支持。

openssl openssl-devel 

开启SSL的时候需要此模块的支持。

libtool

libtool是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中;使用libtool的标准方法,可以在不同平台上创建并调用动态库。
libtool主要的一个作用是在编译大型软件的过程中解决了库的依赖问题;将繁重的库依赖关系的维护工作承担下来,从而释放了程序员的人力资源。libtool提供统一的接口,隐藏了不同平台间库的名称的差异等细节,生成一个抽象的后缀名为la高层库libxx.la(其实是个文本文件),并将该库对其它库的依赖关系,都写在该la的文件中。

依赖包安装:

 yum -y install gcc gcc-c++ make automake autoconf pcre pcre-devel zlib zlib-devel openssl openssl-devel libtool

nginx下载:

wget https://nginx.org/download/nginx-1.16.1.tar.gz

解压编译安装:

[root@web01 ~]# tar -zxvf nginx-1.16.1.tar.gz 

[root@web01 ~]# cd nginx-1.16.1/ 

编译安装
./configure   --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module  

make && make install 

 验证是否安装成功:

[root@web02 ~]# /usr/local/nginx/sbin/nginx -V 
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

 

目录 作用
conf 用于存储nginx配置文件
html 用于存放静态网页
logs 存放日志
sbin 用于存放 nginx这种工具

 

 

1.在系统服务目录里创建nginx.service文件

vi /lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target
[Service] 
Type=forking 
ExecStart=/usr/local/nginx/sbin/nginx 
ExecReload=/usr/local/nginx/sbin/nginx -s reload 
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
  
[Install] 
WantedBy=multi-user.target

2.设置开机启动

systemctl enable nginx.service

 service启动nginx服务

1./etc/init.d/目录下编辑nginx默认启动脚本,并添加权限(755):

vim  /etc/init.d/nginx 

#!/bin/bash
#chkconfig: 2345 99 20
#description: nginx-server
nginx=/usr/local/nginx/sbin/nginx
case $1 in


start)
netstat -anptu | grep nginx
if [ $? -eq 0 ]
then
echo "nginx-server is already running"
else
echo "nginx-server begin start"
$nginx
fi
;;


stop)
$nginx -s stop
if [ $? -eq 0 ]
then
echo "nginx-server is stoped"
else
echo "nginx-server stop fail,try again"
fi
;;


status)
netstat -anlpt | grep nginx
if [ $? -eq 0 ]
then
echo "nginx-server is running"
else
echo "nginx-server is stoped"
fi


;;

restart)
$nginx -s reload
if [ $? -eq 0 ]
then
echo "nginx-server is begin restart"
else
echo "nginx-server restart fail"
fi
;;

*)
echo "please enter {start restart status stop}"
;;

esac
exit 0

 添加到系统服务:

[root@web01 sbin]# chkconfig --add nginx      --将nginx添加到系统服务

[root@web01 sbin]# chkconfig --list nginx       --- 查看nginx的运行级别

注意:此输出仅显示SysV服务,不包括本机服务
systemd服务。SysV配置数据可能被本机覆盖
systemd配置。
如果你想列出systemd服务使用'systemctl列表-单元-文件'。
查看在特定目标使用上启用的服务
“systemctl list-dependencies[目标]”。
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off

 

service 命令:

[root@web01 /]#  service nginx  stop

[root@web01 /]#  service nginx  start 

 

 

 

 

 

 

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!