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配置ssl实现https的方法示例
Mar 31 Servers
Nginx服务器添加Systemd自定义服务过程解析
Mar 31 Servers
Nginx域名转发https访问的实现
Mar 31 Servers
nginx服务器的下载安装与使用详解
Aug 02 Servers
nginx中proxy_pass各种用法详解
Nov 07 Servers
阿里云日志过滤器配置日志服务
Apr 09 Servers
nginx容器方式反向代理实战
Apr 18 Servers
nginx配置限速限流基于内置模块
May 02 Servers
Nginx静态压缩和代码压缩提高访问速度详解
May 30 Servers
使用Nginx+Tomcat实现负载均衡的全过程
May 30 Servers
Docker与K8s关系介绍不会Docker也可以使用K8s
Jun 25 Servers
git stash(储藏)的用法总结
Jun 25 Servers
Nginx 路由转发和反向代理location配置实现
Nov 11 #Servers
nginx中proxy_pass各种用法详解
Apache POI的基本使用详解
nginx实现动静分离的方法示例
Nginx内网单机反向代理的实现
Nov 07 #Servers
zabbix自定义监控nginx状态实现过程
总结高并发下Nginx性能如何优化
You might like
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
Yii2框架加载css和js文件的方法分析
2019/05/25 PHP
javascript Select标记中options操作方法集合
2008/10/22 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
2019/03/27 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
Python 命令行非阻塞输入的小例子
2013/09/27 Python
Python简明入门教程
2015/08/04 Python
Python中防止sql注入的方法详解
2017/02/25 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
python僵尸进程产生的原因
2017/07/21 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
python中下标和切片的使用方法解析
2019/08/27 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
python列表推导式操作解析
2019/11/26 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
python下载的库包存放路径
2020/07/27 Python
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
成人大专生实习期的自我评价
2013/10/02 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers