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 相关文章推荐
教你快速开启Apache SkyWalking的自监控
Apr 25 Servers
制作能在nginx和IIS中使用的ssl证书
Jun 21 Servers
nginx安装以及配置的详细过程记录
Sep 15 Servers
Nginx设置HTTPS的方法步骤 443证书配置方法
Mar 21 Servers
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
Apr 02 Servers
微信告警的zabbix监控系统 监控整个NGINX集群
Apr 18 Servers
Tomcat配置访问日志和线程数
May 06 Servers
服务器间如何实现文件共享
May 20 Servers
vscode远程免密登入Linux服务器的配置方法
Jun 28 Servers
nginx代理实现静态资源访问的示例代码
Jul 07 Servers
Nginx如何配置多个服务域名解析共用80端口详解
Sep 23 Servers
CentOS7设置ssh服务以及端口修改方式
Dec 24 Servers
Nginx 路由转发和反向代理location配置实现
Nov 11 #Servers
nginx中proxy_pass各种用法详解
Apache POI的基本使用详解
nginx实现动静分离的方法示例
Nginx内网单机反向代理的实现
Nov 07 #Servers
zabbix自定义监控nginx状态实现过程
总结高并发下Nginx性能如何优化
You might like
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
Python多进程分块读取超大文件的方法
2016/04/13 Python
python 以16进制打印输出的方法
2018/07/09 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
python数据归一化及三种方法详解
2019/08/06 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
校庆接待方案
2014/03/18 职场文书
大学生活动总结模板
2014/07/02 职场文书
社保委托书怎么写
2014/08/02 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
超市员工管理制度
2015/08/06 职场文书
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL