源码方式安装nginx及其依赖并设置服务开机启动
【1】Nginx简介
Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务。
① 工作原理
Nginx由内核和模块组成,完成工作是通过查找配置文件将客户端请求映射到一个location block(location是用于URL匹配的命令),location配置的命令会启动不同模块完成工作。
Nginx模块分为核心模块,基础模块和第三方模块。
- 核心模块:HTTP模块、EVENT模块(事件)、MAIL模块。
- 基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块、HTTP Rewrite模块。
- 第三方模块:HTTP Upstream Request Hash模块、Notice模块、HTTP Access Key模块。
② 性能优势
- web服务器,处理静态文件、索引文件以及自动索引效率高。
- 代理服务器,快速高效反向代理,提升网站性能。
- 负载均衡器,内部支持Rails和PHP,也可支持HTTP代理服务器,对外进行服务。同时支持简单容错和利用算法进行负载均衡。
- 性能方面,Nginx专门为性能设计,实现注重效率。采用Poll模型,可以支持更多的并发连接,并在大并发时占用很低内存。
- 稳定性方面,采用分阶段资源分配技术,使CPU资源占用率低。
- 高可用性方面,支持热备,启动迅速。
【2】安装nginx及其依赖
① gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install -y gcc gcc-c++
② PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。
yum命令如下:
yum install -y pcre pcre-devel
③ zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum命令如下:
yum install -y zlib zlib-devel
④ OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum命令如下:
yum install -y openssl openssl-devel
⑤ nginx_upstream_jvm_route
nginx_upstream_jvm_route 是一个nginx的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能。
简单来说,它是基于cookie中的JSESSIONID来决定将请求发送给后端的哪个server,nginx_upstream_jvm_route会在用户第一次请求后端server时,将响应的server标识绑定到cookie中的JSESSIONID中,从而当用户发起下一次请求时,nginx会根据JSESSIONID来决定由哪个后端server来处理。
可以直接使用yum命令组合安装依赖:
yum install -y pcre-devel zlib-devel openssl-devel
⑥ 这里采用源码方式安装nginx与依赖模块,如下图:
下载上述源码包;
将其统一上传到服务器指定路径下,如/home/softinstall/nginx ;
执行脚本,如果提示无权限则执行如下命令
chmod 755 ./nginx-install.sh
脚本与源码包下载地址:点击下载
默认安装后的nginx路径:/usr/local/nginx .
【3】配置服务并设置开机启动
① 编写服务脚本
文件名为:nginx
#!/bin/sh
#
# chkconfig: 35 80 20
# description: nginx Servlet Container
#
#
# match these values to your environment:# Source function library.
. /etc/rc.d/init.d/functions
RETVAL=0
prog="nginx"
NGINX=/usr/local/nginxstart() {$NGINX/sbin/nginxecho $"Starting $prog: "return $RETVAL}stop() {$NGINX/sbin/nginx -s stopecho $"Stopping $prog: "}# See how we were called.
case "$1" instart)start;;stop)stop;;status)status $progRETVAL=$?;;restart)stopstart;;*)
echo "nginx service is;Usage: $0 {start|stop|restart}";;
esac
exit $RETVAL
② 放在指定路径并添加开机启动
路径:/etc/rc.d/init.d/nginx
执行如下命令:
chmod 755 /etc/rc.d/init.d/nginx
chkconfig nginx on
chkconfig --list
//查看服务列表
③ 使用命令操作nginx
// Centos7 以前
service nginx (start|stop|restart)//Centos7
systemctl (start|stop|restart) nginx
④ 查看nginx
⑤ 进入目录操作nginx
nginx执行文件在/usr/local/nginx/sbin/nginx。可以在/usr/local/nginx/sbin路径下使用如下命令:
//进入到sbin目录
cd /usr/local/nginx/sbin/./nginx //启动./nginx -s stop //快速停止./nginx -s reload //重新加载配置文件./nginx -s quit &&./nginx //先停止再启动(建议使用)
快速退出:
/nginx -s stop
立即退出nginx,不管当前请求是否处理完。
平稳退出
nginx -s quit
该命令可以使当前的worker processes处理完当前请求再退出。
【4】浏览器测试
浏览器输入linux ip:
如上图所示,则表示成功!
Note
nginx默认监听80端口,所以浏览器测试直接输入ip即可。
本机环境已经关闭Centos7的默认防火墙–firewall,并安装且配置了iptables。
默认虚拟主机root根目录为nginx安装路径:/usr/local/nginx/html
在没有修改默认配置情况下,可以访问该路径下的页面!
http:192.168.88.220:8080/index.html;
http:192.168.88.220:8080/50x.html。
【5】修改默认端口
命令如下:
vim /usr/local/nginx/conf/nginx.conf
将 80 端口修改为8080
再次访问浏览器(这里服务器ip改为了192.168.88.222):
【6】相关问题
安装过程可能不成功,一般和系统环境有关系,根据具体问题进行解决,下面列出可能遇到的问题。
① You need a C++ compiler for C++ support
解决:
yum install -y gcc gcc-c++
② 查看NGINX版本
[user@host-10-1-236-212 sbin]$ ./nginx -v
nginx version: nginx/1.10.3
③ nginx简单安装
本文安装的依赖比较多,过程相对也麻烦点。如果宿主机环境很友好且你不需要很多功能的话,可以如下简单安装:
#yum方式安装依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel//进入源码目录
cd nginx-1.16.1/
//配置
./configure --prefix=nginx安装路径 --with-http_ssl_module
//安装
make && make install
源码方式安装nginx及其依赖并设置服务开机启动相关推荐
- 源码方式安装的nginx注册到systemctl管理
用源码方式安装的nginx每次都要进入安装目录才能进行启动.重启.停止操作,使用yum install nginx方式安装的话会自动注册到systemctl管理中,源码方式安装的nginx注册到sys ...
- 源码包安装Nginx(1.19.1),并配置Nginx,比如:用户认证,防盗链,虚拟主机,SSL等功能
基础配置 #关闭防火墙 [root@node2 ~]# systemctl stop firewalld [root@node2 ~]# systemctl disable firewalld #清空 ...
- 源码编译安装Nginx及网站服务配置
文章目录 一.Nginx概述 1.1 Nginx概述 1.2 Nginx和Apache的区别 1.3Nginx和Apache的优缺点差异 1.4Nginx的进程 二.源码编译安装nginx服务 2.1 ...
- Mac OS下安装tomcat并设置服务开机启动
Mac mini 是苹果的服务器端产品,预装服务器版本OS X,许多中小企业使用其搭建服务器,具有小巧美观,携带方便的优点.Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应 ...
- Centos nginx 安装 源码方式安装
以 yum 方式安装 Nginx https://andyoung.blog.csdn.net/article/details/118802486 安装所需插件 1.安装gcc gcc是linux下的 ...
- 源码编译安装Nginx
1.源码下载 Nginx在github上有一个只读源码库,我获取的源码方式为: git clone https://github.com/nginx/nginx.git 2.configure 我下载 ...
- 源码安装apache后将其设置为开机启动
从网上下载apache的源码包,例如/usr/local/src/httpd-2.2.34.tar.gz,解压到目录/usr/local/src/httpd-2.2.34,编译并安装,假如安装到/us ...
- Ubuntu 16.04源码编译安装nginx 1.10.0
一.下载相关的依赖库 pcre 下载地址 http://120.52.73.43/jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.t ...
- linux安装nginx源码,CentOS7源码编译安装Nginx
一.安装步骤 1.下载 nginx 源码包 官网$ wget http://nginx.org/download/nginx-1.16.0.tar.gz 2.解压 nginx 压缩包$ tar -zx ...
- 零基础Linux版MySQL源码方式安装+配置+远程连接完整图解 无坑实录
无论开发还是运维,项目环境搞不定,还真让你干不成活,MySQL在不同场景.不同平台下安装方式也不同,本次主要分享centos7下MySQL源码rpm方式安装,其它方式后续分享,很多项目还都用着MySQ ...
最新文章
- [转]在C#中使用API回调函数的方法
- 好书速递 | FPGA原理和结构
- 局域网流量控制_基于软件定义的网络准入控制体系
- 【转帖】漫话C++0x(四) —- function, bind和lambda
- React demo:express、react-redux、react-router、react-roter-redux、redux-thunk(一)
- cnpm在ubuntu19.10下面的安装以及vue.js中el的意思
- Griview中的删除按钮添加“确认提示”
- 十二、ubuntu20.10(Linux)下Pycharm配置pyqt5开发环境
- html中文本格式化、预格式化、计算机输出标签、address、title、文字方向、著作
- TypeScript简介
- java类Writer和类Reader小结
- 《数字图像处理》读书笔记:第1章 绪论
- Microsoft Visual Studio 的下载与安装(傻瓜式)
- 【HTTP协议】---HTTP协议详解
- 记一次对钓鱼邮件的分析
- 5分钟教你掌握异常检测方法
- skylake服务器处理器M系列,详解第6代英特尔酷睿M处理器!
- 设备ssh连接失败问题
- iNavFlight之MSP v2 Sensor报文格式
- SQL必知必会第十四节挑战题
热门文章
- DDR SDRAM内存优化
- 天正菜单栏不见了怎么显示出来_天正建筑菜单栏不见了怎么调出来? _ 设计学院_设计软件教程自学网...
- aws mysql 无法访问_Amazon RDS
- pytorch softmax 中参数 dim 的理解
- visual studio 版本的区别
- TCP网络错误Connection reset by peer,peer是啥意思呢
- 带有资源混淆的打补丁过程
- 分子模拟软件amber_分子模拟周刊: 第 23 期
- Dubbo概述及架构图
- 题目:Frodo and pillows(二分)