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服务器添加Systemd自定义服务过程解析
Mar 31 Servers
nginx location中多个if里面proxy_pass的方法
Mar 31 Servers
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
Sep 25 Servers
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
Apr 07 Servers
openstack云计算keystone组件工作介绍
Apr 20 Servers
Windows Server 2019 配置远程控制以及管理方法
Apr 28 Servers
Windows server 2012搭建FTP服务器
Apr 29 Servers
Tomcat 与 maven 的安装与使用教程
Jun 16 Servers
解决Git推送错误non-fast-forward的方法
Jun 25 Servers
Linux在两个服务器直接传文件的操作方法
Aug 05 Servers
ubuntu如何搭建vsftpd服务器
Dec 24 Servers
ubuntu20.04虚拟机无法上网的问题及解决
Dec 24 Servers
Nginx 路由转发和反向代理location配置实现
Nov 11 #Servers
nginx中proxy_pass各种用法详解
Apache POI的基本使用详解
nginx实现动静分离的方法示例
Nginx内网单机反向代理的实现
Nov 07 #Servers
zabbix自定义监控nginx状态实现过程
总结高并发下Nginx性能如何优化
You might like
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
通过PHP修改Linux或Unix口令的方法分享
2012/01/30 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
JS查看对象功能代码
2008/04/25 Javascript
jquery 上下滚动广告
2009/06/17 Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
JS验证不重复验证码
2017/02/10 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
python中安装django模块的方法
2020/03/12 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
高一新生军训方案
2014/05/12 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
信仰心得体会
2014/09/05 职场文书
委托公证书样本
2015/01/23 职场文书
防止web项目中的SQL注入
2021/12/06 MySQL
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
Python 中面向接口编程
2022/05/20 Python