Nginx源码编译安装过程记录


Posted in Servers onNovember 17, 2021

rpm包安装比较简单,这里不做说明。
对于大多数开源软件,如果找不到安装包,可以使用源码安装方式,源码安装虽然没有yum、apt等工具方便,但是非常通用,在不同架构的cpu、不同操作系统的服务器上都可以使用这种方式。
使用源码编译安装的一般方式,通常是去github上搜索对应的软件名称,找到源码,选择适合的版本之后,查看源码目录下的readme.md文件(在github上这个文件其实就是这个源码的说明文档),如果readme.md里面没有介绍编译安装或者构建工程的步骤的说明,也会指明在哪里可以获得对应的文档。也有部分软件的构建文档是写在一个名为INSTALL的文件中的,如果readme.md文档没有构建说明,可以尝试去寻找INSTALL文件。

对于C语言的软件,通常源码编译的步骤为:
./configure 
make 
make install
通常./congfigure命令根据服务器cpu的架构和操作系统检查编译环境,例如需要的依赖组件和库文件是否安装,也可以通过参数指定安装位置和一些配置项
make命令可以通过-j参数指定cpu的核数,使用的核越多编译速度越快,例如对于8核的服务器,可以使用make -j8来加快编译速度
make install进行软件安装

对于nginx,源码编译安装步骤如下:
wget https://nginx.org/download/nginx-1.14.2.tar.gz
tar -xvf nginx-1.14.2.tar.gz
cd nginx-1.14.2

./configure -prefix=/usr/local/nginx -with-http_ssl_module
make -j8
make install

/usr/local/nginx/sbin/nginx ?v
在./configure时指定了安装目录为/usr/local/nginx,所以安装后nginx命令在这个目录下

如果需要部署静态页面例如html,将静态文件资源上传至/usr/local/nginx/html/目录下。
编辑nginx配置文件/usr/local/nginx/conf/nginx.conf,将第二行的用户修改为root,或者是当前用户。vim文本编辑其中输入:set nu可以显示行数。

取消第2行的注释并将nobody修改为root:

Nginx源码编译安装过程记录

如果web应用需要支持上传文件,需要设置上传文件的上限,在18行添加:

client_max_body_size 100m;、

Nginx源码编译安装过程记录

如果需要修改静态资源的访问端口,在37行修改即可,例如设置为8081:

 Nginx源码编译安装过程记录

 如果需要支持请求转发(比如在静态资源中访问后端接口,访问/api的请求都转发到端口18080上的应用),在49行添加以下内容:

location /chat/api{
            proxy_pass http://127.0.0.1:18080/api;
            proxy_redirect off;
            proxy_set_header   Host                 $http_host;
            proxy_set_header   X-Real-IP            $remote_addr;
            proxy_set_header   X-Forwarded-For      $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Proto    $scheme;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection 'upgrade';
	}

Nginx源码编译安装过程记录

 上文配置即将所有访问路径中包含/chat/api/的请求都转发到http://127.0.0.1:18080/api,其中chat是部署的静态资源目录,最后两行配置是用于支持websocket连接的,即ws协议。

通过这样的配置,就可以做到web应用的前后端分离,即前端静态资源部署在8081端口,后端资源部署在18080端口。部署好之后,只需要启动nginx和18080端口上的应用即可正常访问web应用。

到此这篇关于Nginx源码编译安装的文章就介绍到这了,更多相关Nginx源码编译安装内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx的反向代理实例详解
Mar 31 Servers
nginx的zabbix 5.0安装部署的方法步骤
Jul 16 Servers
nginx结合openssl实现https的方法
Jul 25 Servers
nginx常用配置conf的示例代码详解
Mar 21 Servers
Tomcat用户管理的优化配置详解
Mar 31 Servers
OpenStack虚拟机快照和增量备份实现方法
Apr 04 Servers
基于Apache Hudi在Google云构建数据湖平台的思路详解
Apr 07 Servers
CentOS7和8下安装Maven3.8.4
Apr 07 Servers
Nginx配置之禁止指定IP访问
May 02 Servers
Zabbix对Kafka topic积压数据监控的问题(bug优化)
Jul 07 Servers
彻底卸载VMware虚拟机的超详细步骤记录
Jul 15 Servers
Docker容器harbor私有仓库部署和管理
Aug 05 Servers
Nginx 路由转发和反向代理location配置实现
Nov 11 #Servers
nginx中proxy_pass各种用法详解
Apache POI的基本使用详解
nginx实现动静分离的方法示例
Nginx内网单机反向代理的实现
Nov 07 #Servers
zabbix自定义监控nginx状态实现过程
总结高并发下Nginx性能如何优化
You might like
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
Python简单实现enum功能的方法
2016/04/25 Python
Python正则简单实例分析
2017/03/21 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
python读取和保存视频文件
2018/04/16 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
python属于解释语言吗
2020/06/11 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
浅析NumPy 切片和索引
2020/09/02 Python
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
校园歌咏比赛主持词
2014/03/18 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
给老师的一封感谢信
2015/01/20 职场文书
企业宣传语大全
2015/07/13 职场文书
初中语文教学反思范文
2016/03/03 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
Python 数据可视化之Seaborn详解
2021/11/02 Python
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS