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来查看帮助
因为我的云服务器上已经安装了相关依赖,所以可以直接进行配置
./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加密必须要使用的库。
配置完成之后该目录下会多出一个文件Makefile和一个文件夹objs。
make
make将源码进行编译,生成可执行程序。
make之前的obj目录
make之后
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
可以看到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仓库,先查看下自己的拥有的仓库
yum config-manager --enable PowerTools# 加入PowerTools仓库yum install elinks lynx # 再安装
此时在服务器上输入elinks,弹出如下画面,则说明安装成功
或者直接 elinks IP,也可以看见相关内容
初步了解Nginx全局配置文件nginx.conf(PS:因为我使用Xshell连接的服务器,上传下载蛮不方便,于是装了lrzsz,就可以愉快的使用rz和sz快捷的上传和下载文件,以后再次安装这个包,我们也许不记得包名,但是可以使用yum search rz来对包名进行搜索)。
在网上找了张释义图,蛮形象的
回归正文-配置文件每行释义
#启动nginx子进程的默认用户是谁?#user nobody;
查看80端口,发现有两个nginx,其中上面的是父进程,父进程肯定是由root用户启动的。
#子进程数有几个?一般修改为核数# 工作进程是单进程多线程的# 这里定义的是工作进程数量worker_processes 4;
修改用户(用户名不是乱加的,须是在/etc/passwd文件下的用户)和子进程数之后,再次启动,使用ps命令查看如下所示:
其中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;
可以看到正好与上面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,大致是这么个东西
从左至右的顺序正式我们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; }}
ios中amplify配置configure_Nginx源码编译安装及配置文件初步学习相关推荐
- Splunk安装和配置及源码编译安装SVN
Splunk安装和配置 http://my.oschina.net/tuyang/blog/189159 http://my.oschina.net/longniao/blog/82766 http: ...
- CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境
什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/Perl/Python组合成的动态Web应用程序和服务器,它是一组Web应用程序的基础 ...
- LNMP架构环境搭建之PHP、Nginx源码编译安装及其简单配置应用
LNMP架构中的Mysql见上一篇博文"LNMP架构环境搭建之mysql源码编译安装" 一.PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文 ...
- mysql5.7.13编译安装_MySQL 5.7.13 源码编译安装配置方法图文教程
安装环境:centos7 64位 mini版 官网源码编译安装文档: 一.系统安装条件 官方文档说明: 1> cmake mysql使用cmake跨平台工具预编译源码,用于设置mysql的编译参 ...
- 源码编译安装Nginx及网站服务配置
文章目录 一.Nginx概述 1.1 Nginx概述 1.2 Nginx和Apache的区别 1.3Nginx和Apache的优缺点差异 1.4Nginx的进程 二.源码编译安装nginx服务 2.1 ...
- 烂泥:mysql5.5数据库cmake源码编译安装
本文首发于烂泥行天下. 以前也写过一篇有关mysql5.0源码编译的文章,该文章为<烂泥:mysql5.0数据库源码编译安装>.但是MySQL自5.5版本以后,就开始使用cmake 编译工 ...
- linux7安装haproxy,Centos7 源码编译安装haproxy
Centos7 源码编译安装haproxy 操作环境: 一台haproxy主机地址为:192.168.80.100 两台web服务器地址分别为:192.168.80.102 192.168.80.10 ...
- 详解LAMP源码编译安装
实战:LAMP源码编译安装 家住海边喜欢浪:zhang789.blog.51cto.com 目录 详解LAMP源码编译安装 LAMP简介 一.准备工作 二.编译安装 Apache 三.编译安装 MyS ...
- mysql+PHP源码编译安装
mysql源码编译安装 环境redhat6.5 安装依赖包: yum install cmake-2.8.12.2-4.el6.x86_64.rpm gcc-c++ ncurses-devel gcc ...
最新文章
- 11寸笔记本电脑推荐_3000-20000元高性价比笔记本电脑推荐 含CPU天梯图、显卡天梯图 2020年11月更新...
- sql 中删除重复数据的方法
- MySql:函数总结
- orderd mysql_Oracle入门教程:leading vs ordered hint
- Faster R-CNN源码中ROI Pooling的解析
- ajax传输 基础一
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_21、SpringBoot2.x配置全局异常返回自定义页面...
- win10打印机不能服务的问题
- html如何在第二个网页中显示第一个网页参数_接口测试平台代码实现5:亲手创造第一个首页...
- 如何统计项目代码行数
- 支付宝登录应用授权,后端拼接 authinfo返回app,app进行支付宝调用获取auth_code(com.alipay.account.auth)
- java统计误码率_MATLAB通信工具箱来计算误码率
- 华为数字化转型之道第二讲
- 【思源笔记】2.5.0 版本之后官方支持的第三方数据同步配置方式
- 【Typecho主题】情侣博客Brave主题源码
- python bind绑定失败_Python tkinter之Bind(绑定事件)的使用示例
- 如何在webots中绘制运动轨迹
- 工信部:禁止外资参与网络出版 外国游戏国内要玩完
- 用JS描述的数据结构及算法表示——栈和队列(基础版)
- LeetCode——剑指 Offer 29【顺时针打印矩阵】
热门文章
- ASP.NET Core在Azure Kubernetes Service中的部署和管理
- 聊聊如何设计千万级吞吐量的.Net Core网络通信!
- Emit动态代理.NetCore迁移之旅
- 【招聘(重庆)】新空间(重庆)科技有限公司招聘.NET Core
- “.Net 社区虚拟大会”(dotnetConf) 2016 Day 1 Keynote: Scott Hunter
- EditPlust 批量添加自定义工具
- 多面体 (Multipatch)
- 《看聊天记录都学不会Python到游戏实战?太菜了吧》(8)我们开始做一个数字小游戏吧
- 安卓模拟器获取服务器信息出错,安卓模拟器客户端与服务器不同步
- for循环批量写文件 shell_shell脚本:for循环批量重命名带空格文件名的文件