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 Rewrite使用场景及配置方法解析
Apr 01 Servers
apache基于端口创建虚拟主机的示例
Apr 24 Servers
zabbix自定义监控nginx状态实现过程
Nov 01 Servers
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
Apr 07 Servers
Consul在linux环境的集群部署
Apr 08 Servers
Windows Server 2012 修改远程默认端口3389的方法
Apr 28 Servers
Vscode中SSH插件如何远程连接Linux
May 02 Servers
Linux磁盘管理方法介绍
Jun 01 Servers
安装harbor作为docker镜像仓库的问题
Jun 14 Servers
Linux中一对多配置日志服务器的详细步骤
Jul 23 Servers
Nginx 502 bad gateway错误解决的九种方案及原因
Aug 14 Servers
Nginx 路由转发和反向代理location配置实现
Nov 11 #Servers
nginx中proxy_pass各种用法详解
Apache POI的基本使用详解
nginx实现动静分离的方法示例
Nginx内网单机反向代理的实现
Nov 07 #Servers
zabbix自定义监控nginx状态实现过程
总结高并发下Nginx性能如何优化
You might like
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
PHP基本语法实例总结
2016/09/09 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
2017/10/12 PHP
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
2019/09/15 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
Python中zfill()方法的使用教程
2015/05/20 Python
Python制作钉钉加密/解密工具
2016/12/07 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
2019/08/23 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
岗位说明书怎么写
2014/07/30 职场文书
党员创先争优心得体会
2014/09/11 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
写给老婆的保证书
2015/02/27 职场文书