ios中amplify配置configure_Nginx源码编译安装及配置文件初步学习

    通过源码编译安装。

   nginx.org  #官网地址   # 安装过程   wget http://nginx.org/download/nginx-1.18.0.tar.gz -P /usr/src   # tar文件用tar命令解压   tar -zxvf nginx-1.18.0.tar.gz

关于wget的-P参数,manual中的解释是

prefix,Set directory prefix to prefix

    ./configure

    源码安装三步曲,配置-编译-安装,和上一篇文章介绍python源码安装相同。我们进入到解压后的nginx目录下面,可以看到这个configure,其类似于windows系统上的exe,我们也可以使用./configure --help来查看帮助

de8355f1fa6dffa66ca664d97cc1f458.png

    因为我的云服务器上已经安装了相关依赖,所以可以直接进行配置

./configure --prefix=/usr/local/nginx

    如果发现配置报错,可以看下错误,大概率是报依赖的错误,例如

error: the HTTP rewrite module requires the PCRE library

    如果为了省事,在配置之前可以一口气安装以下4个依赖,从左到右分别为C语言编译器,nginx重写功能,解压相关的依赖。

yum -y install gcc pcre-devel zlib zlib-devel

    依赖安装完成之后,centos下可以使用如下命令查看版本,此时再进行配置就没关系了。

rpm -q pcre-devel >>>pcre-devel-8.42-4.el8.x86_64

    配置完成之后可能会发现OpenSSL library is not used,这个是专用于将域名从http跳转到https加密必须要使用的库。

d471d6ce934826d0f3fed8a0122a39bc.png

     配置完成之后该目录下会多出一个文件Makefile和一个文件夹objs。

2e4f1613f2cd1299f9a7ea0d3d76a38b.png

make

    make将源码进行编译,生成可执行程序。

    make之前的obj目录

5cc80d62ed2d108ac6fb7b39a971f099.png

    make之后

2102c561ef3c48f9c781e69eb1e7f10c.png

make install

    make install,安装。


    我们可以看到安装完成之后在服务器上生成了很多文件,以下凡是prefix和path指定的是目录,而file则指定的是文件。

nginx path prefix # nginx安装目录nginx binary file # nginx执行程序,二进制文件就是启动程序nginx modules path # nginx模块存放目录nginx configuration prefix # 配置文件存放目录nginx configuration file # 配置文件nginx pid file # nginx进程号nginx error log file # 错误日志nginx http access log file
# 使用二进制文件启动/usr/local/nginx/sbin/nginx

594b332d189ee482be77cd745cdbc13b.png

7c45faac177d74f21a6855a213d3377d.png

    可以看到80端口(nginx默认监听端口)已经在监听了,如果此时Linux防火墙和安全组放行了端口号,通过浏览器访问云服务器的公网IP应该是已经可以看到Welcome to nginx!的经典画面了。(服务的三大要素:端口监听地址协议。)

    我们也可以在云服务器上通过elinks(文本界面浏览器)来访问公网IP,elinks的好处在于没有缓存!开发测试时都知道缓存有多难受!我的服务器版本是centos8

cat /proc/versionLinux version 4.18.0-147.5.1.el8_1.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)) #1 SMP Wed Feb 5 02:00:39 UTC 2020

    需要通过PowerTools仓库,先查看下自己的拥有的仓库

a297bb715637809d375fd60566a2a57d.png

yum config-manager --enable PowerTools# 加入PowerTools仓库yum install elinks lynx # 再安装

    此时在服务器上输入elinks,弹出如下画面,则说明安装成功

f279cf38902aa47e50a97a29123fcb35.png

或者直接 elinks IP,也可以看见相关内容

0163573e04cc459f916b0f1abc151cf8.png


    初步了解Nginx全局配置文件nginx.conf(PS:因为我使用Xshell连接的服务器,上传下载蛮不方便,于是装了lrzsz,就可以愉快的使用rz和sz快捷的上传和下载文件,以后再次安装这个包,我们也许不记得包名,但是可以使用yum search rz来对包名进行搜索)。

abe31b3df0f0d8a52c455a33bb10827c.png


在网上找了张释义图,蛮形象的

94d09f7ccd447594161c653356fdba55.png

    回归正文-配置文件每行释义

#启动nginx子进程的默认用户是谁?#user  nobody;

58f196908fcbe12c58965ed5d49567cf.png

    查看80端口,发现有两个nginx,其中上面的是父进程,父进程肯定是由root用户启动的。

#子进程数有几个?一般修改为核数# 工作进程是单进程多线程的# 这里定义的是工作进程数量worker_processes  4;

修改用户(用户名不是乱加的,须是在/etc/passwd文件下的用户)和子进程数之后,再次启动,使用ps命令查看如下所示:

a59635a1ec5a200ffcd800be378a2e3e.png

其中root用户一行STAT为Ss,S表示为休眠状态,s表示其是进程的领导者(在它之下有子进程)。

#全局错误日志的位置及日志格式#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;
#主进程号#pid logs/nginx.pid;

d4ac5c591483c40847bf6e0e1cabdc16.png

可以看到正好与上面ps命令查看到的root用户启动的主进程ID15427相同,写到这里又不得不多写一句,想到之前看过的一篇文章,介绍Unix/Linux 的基本哲学之一,“一切皆是文件”,可以看到我们所谓的进程ID与普通文件的查看方式也没什么不同。

events {  #每个工作进程下的最大线程数    worker_connections  1024;}

从上,我们可以知道最大并发数即为最大线程数*工作进程数量。


http服务器设置

#http服务器设置,可以嵌套多个serverhttp {....}

在http服务器配置中的参数详解如下:

#设定mime类型,类型由mime.type文件定义#所有http都走这个模型include  mime.types;# 日志记录格式#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#'$status $body_bytes_sent "$http_referer" '#'"$http_user_agent" "$http_x_forwarded_for"';#全局访问日志路径#access_log  logs/access.log  main

此时,我们其实可以看下access.log,大致是这么个东西

07c0d89cc8d09b540924288d2a9158cc.png

从左至右的顺序正式我们log_format中定义的数据格式。

    remote_addr和http_x_forwarded_for用以记录客户端的ip地址;

    remote_user:用于记录客户端用户名称;

    time_local:用于记录访问时间和时区;

    request:用于记录请求的url和http协议;

    status:记录请求状态

    body_bytes_sent:发送给客户端文件的html主体内容大小,在前端页面中对应Response Headers中的Content-Length

    http_referer:记录上一个页面访问链接

    http_user_agent:客户浏览器的相关信息

#指定nginx是否调用sendfile函数(zero copy方式)来输出文件#对于普通应用,必须设为onsendfile on;#允许或禁止socke的TCP_CORK的选项,此选项仅在使用sendfile时使用#默认开启#tcp_nopush  on;#长连接超时时间#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;

如何配置server?我们是通过server来发布一个网站,一个server就可以发布一个网站,server又被称作虚拟主机。

server {  #虚拟主机使用的端口  listen       80;  #虚拟主机的域名是什么  server_name  localhost;  #虚拟主机支持的字符集  #charset koi8-r;  #虚拟主机的访问日志路径  #access_log  logs/host.access.log  main;  #定位web的根路径,即用户访问你域名时所访问的内容  location / {    #根目录路径下面的html文件夹    #这也可以解释为什么启动nginx之后用户可以看到欢迎页面,即存在根目录下的html目录下    root   html;    #索引页    index  index.html index.htm;  }  #grep -r "404"  #error_page  404              /404.html;  # redirect server error pages to the static page /50x.html  #根据错误码返回对应的页面  #如果是以下50*的错误状态,那么就让用户去访问/50x.html  error_page   500 502 503 504  /50x.html;  #当用户去访问/50x.html页面时,定义页面路径  location = /50x.html {    root   html;  }}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RFID会议签到系统总结(二十一)――服务端的通讯

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />这一篇其实没什么可讲的&#xff0c;只提一下跟客户端不太一样的一些地方。 服务端跟客户端最大的区别是它面对的不是单单一个连接&#xff0c;而是有一些个连接。对于接收与发送…

演示: 动态NAT完成网络地址翻译

演示&#xff1a; 动态NAT完成网络地址翻译技术交流与答疑请加入群&#xff1a;1952289演示目标&#xff1a;使用动态NAT完成对私有网络的地址翻译。演示环境&#xff1a;如下图9.63所示。演示背景&#xff1a;该演示环境保持PAT演示环境的网络基础配置&#xff0c;然后使用动态…

.NET测试用例写的好不好?让变种来测试一下!

为了保证代码能够正常工作&#xff0c;我们常常编写了大量单元测试&#xff0c;并且代码覆盖率也做到了100%。但是在生产环境运行时还是会出问题&#xff01;为什么&#xff1f; 这是因为你没有进行变异测试&#xff01;变异测试变异测试就是把bug&#xff08;变种mutant&#…

你根本想象不到,学霸到底经历过什么

全世界只有3.14 % 的人关注了青少年数学之旅在微信的订阅号中&#xff0c;每人最多有12个常读公众号。可公众号这么多&#xff0c;哪些公众号值得关注呢&#xff1f;今天给大家推荐的几个公众号&#xff0c;不仅生产优质的时效性内容&#xff0c;还会提供各种多元化的内容角度&…

mysql重装远程服务未_MySQL远程连接丢失问题解决方法(Lost connection to MySQL server)...

最近服务器很不稳定&#xff0c;于是重装了mysql 和php 服务&#xff0c;但是接着却遇到了很头疼的麻烦。远程连接mysql是总是提示&#xff1a;Lost connection to MySQL server at ‘reading initial communication packet, system error: 0很明显这是连接初始化阶段就丢失了连…

买基金如何开户

开户主要有两种途径&#xff1a;&#xff08;1&#xff09;投资者通过深交所交易系统认购、买入或卖出上市开放式基金须使用深圳A股账户或深圳证券投资基金账户&#xff08;以下简称“深圳证券账户”&#xff09;。投资者可通过中国结算公司深圳分公司的开户代理机构&#xff0…

OpenStack开启亚洲之旅

11月5-8日&#xff0c;OpenStack峰会在中国香港亚洲国际博览馆举行。这是OpenStack峰会首次在北美地区之外举行&#xff0c;吸引了约3000名全球各地的企业、用户和开发者。中国已经是除美国以外OpenStack软件下载量和对社区贡献代码量第二大的地区。OpenStack峰会此次落户香港也…

历史上最怪异的23种飞行器,设计者脑子里都想什么了

全世界只有3.14 % 的人关注了青少年数学之旅历史的长河中有无数稀奇古怪&#xff08;呆萌&#xff09;的发明被无情淘汰&#xff0c;而飞行器的发明可谓人类探索道路上尤为浓烈的一笔&#xff0c;过去的110多年里&#xff0c;空中就曾出现以下23中古怪的飞行器。下面这张图比较…

NET问答: 如何让 HttpClient 支持 Http 2.0 协议?

咨询区 Justin Lessard&#xff1a;我的一个项目需要支持 Http 2.0 进行数据的收发&#xff0c;目前用的项目版本是 .NET Core 2.2&#xff0c;我选型了 HttpClient&#xff0c;但是我发现一个问题&#xff0c;在生产环境中的程序返回的 response 版本一直都是 Http 1.1&#x…

最近读的书与做的事

做的事情无非是Thesis当头&#xff0c;其他跟上。Axss的工作室站点&#xff0c;还有就是IAESTE项目的部分页面。读的书&#xff1a;《深入探索C/C》&#xff1a;搞清楚以前很多一知半解的概念《Game Programming Gem 3》&#xff1a;对我而言仍是太深了点&#xff0c;不过当作了…

从mysql读取图片_如何从sql数据库内读取图片

privatevoidSHOW(){MemoryStreamstreamnewMemoryStream();byte[]buffBytenull;stringsqlstr"selectRefFinImagefromRefTablewhereRefId5";//我要规定死读入第五张图片SqlConnectio...private void SHOW(){MemoryStream stream new MemoryStream();byte[] buffByte …

邮件发送类,支持Gmail

邮件发送类,支持Gmail&#xff0c;使用简单方便 usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Net;usingSystem.Net.Mail;namespaceLZ2007.Function...{ /**//// <summary> /// 邮件发送类 /// <CreateDate>2007/07/02<…

和爸爸的聊天永远是个谜。。 | 今日最佳

世界只有3.14 % 的人关注了青少年数学之旅【1】【2】【3】【4】【5】【6】【7】【8】【9】【10】【11】【12】【13】【14】【15】【16】【17】【18】【19】【20】【21】【22】【23】【24】&#xff08;图源网络&#xff0c;侵权删&#xff09;

FZU Problem 2030 括号问题

Problem Description 给出一个字符串&#xff0c;其中包括3种字符: ‘(‘, ‘)’, ‘?’.其中?表示这个字符可以是’(‘也可以是’)’. 现在给出字符串S,你可以在’?’处填写’(‘ 或者 ‘)’&#xff0c;当然随意填写得到的序列可能是括号不匹配的。例如”(?”&#xff0c…

python实现人脸识别_python人脸识别代码实现丨内附代码

Python在人脸识别方面功能很强大&#xff0c;程序语言简单高效&#xff0c;下面小编来编程实现一下如何实现人脸识别。如有错点&#xff0c;还望斧正识别图片中的人脸位置#人脸识别分类器路径tool_url rC:\Users\86188\AppData\Local\Programs\Python\Python36-32\Lib\site-pa…

dotnet 通过引用 msbuild 程序集实现自己定制编译器

本来我想说的是基于引用 msbuild 程序集来自己做一个编译器&#xff0c;但是想想好像本文做的&#xff0c;和造编译器没啥关系&#xff0c;咱自己调用 msbuild 的 API 而已。本文来告诉大家如何引用 msbuild 程序集&#xff0c;如何在自己的应用程序里面嵌入 msbuild 的构建代码…

通过修改注册表设定浏览器的却省值

安装NetScape后&#xff0c;点击*.htm文件&#xff0c;却是用NetScape打开的&#xff0c;有时候感觉不爽&#xff0c;怎样才能将浏览器的却省打开设定为IE呢&#xff1f;通过修改注册表的方法可以解决&#xff1a;保存如下内容为IEChn.reg&#xff0c;运行即可。REGEDIT4[HKEY_…

[转贴]犯贱报(一张浓缩大学生活的..)

1 学校门口总是有一些骗子&#xff0c; 有的开着车&#xff0c; 有的没有开车。 没有开车的&#xff0c; 骗骗我们的钱&#xff0c; 开着车的&#xff0c; 骗骗我们的人。 2 有一天&#xff0c; 校门口来了一名物理爱好者&#xff0c; 认为自己推翻了相对论。 我们去探讨请教&…

大牛逝世 = 新人上位 = 科学进步?新研究表明确实如此

全世界只有3.14 % 的人关注了青少年数学之旅学术大牛们生前为人类创造了巨大的知识财富&#xff0c;死后也以另一种形式造福了科学。一项新研究表明&#xff0c;明星科学家去世后&#xff0c;同一学科分区中从未与他们合作的科学家论文发表数量提升 8.6%&#xff0c;其他领域的…

dns的子域授权

主服务器配置&#xff1a;1.在/var/named/neo.zone里添加如下数据...前面省略... SOA部分序号加大&#xff0c;其余不变dep1.neo.com. IN NS dns.dep1.neo.com.dns.dep1.neo.com. IN A 10.3.156.45从服务器配置&#xff1a;1.修改/etc/named.rfc1912.zones&#xff0c;假设文件…