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 多个location转发任意请求或访问静态资源文件的实现
Mar 31 Servers
apache基于端口创建虚拟主机的示例
Apr 24 Servers
Nginx源码编译安装过程记录
Nov 17 Servers
深入解析Apache Hudi内核文件标记机制
Mar 31 Servers
使用Docker容器部署rocketmq单机的全过程
Apr 03 Servers
在Docker容器中部署SQL Server
Apr 11 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
tomcat下部署jenkins的方法
May 06 Servers
使用 DataAnt 监控 Apache APISIX的原理解析
Jul 07 Servers
教你使用Ubuntu搭建DNS服务器
Sep 23 Servers
ubuntu端向日葵键盘输入卡顿问题及解决
Dec 24 Servers
Nginx 路由转发和反向代理location配置实现
Nov 11 #Servers
nginx中proxy_pass各种用法详解
Apache POI的基本使用详解
nginx实现动静分离的方法示例
Nginx内网单机反向代理的实现
Nov 07 #Servers
zabbix自定义监控nginx状态实现过程
总结高并发下Nginx性能如何优化
You might like
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
解析vue中的$mount
2017/12/21 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
Python使用multiprocessing创建进程的方法
2015/06/04 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
Django的models模型的具体使用
2019/07/15 Python
Django缓存系统实现过程解析
2019/08/02 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
Html5 video标签视频的最佳实践
2020/02/26 HTML / CSS
安德玛比利时官网:Under Armour比利时
2019/08/28 全球购物
应届生简历中的自我评价
2014/01/13 职场文书
2015年五四青年节演讲稿
2015/03/18 职场文书
上班旷工检讨书
2015/08/15 职场文书