ios中amplify配置configure_Nginx源码编译安装及配置文件初步学习
????通過源碼編譯安裝。
nginx.org #官網(wǎng)地址???# 安裝過程???wget?http://nginx.org/download/nginx-1.18.0.tar.gz?-P?/usr/src???# tar文件用tar命令解壓???tar?-zxvf?nginx-1.18.0.tar.gz關(guān)于wget的-P參數(shù),manual中的解釋是
prefix,Set directory prefix to prefix????./configure
????源碼安裝三步曲,配置-編譯-安裝,和上一篇文章介紹python源碼安裝相同。我們進(jìn)入到解壓后的nginx目錄下面,可以看到這個configure,其類似于windows系統(tǒng)上的exe,我們也可以使用./configure --help來查看幫助
????因為我的云服務(wù)器上已經(jīng)安裝了相關(guān)依賴,所以可以直接進(jìn)行配置
./configure --prefix=/usr/local/nginx????如果發(fā)現(xiàn)配置報錯,可以看下錯誤,大概率是報依賴的錯誤,例如
error: the HTTP rewrite module requires the PCRE library????如果為了省事,在配置之前可以一口氣安裝以下4個依賴,從左到右分別為C語言編譯器,nginx重寫功能,解壓相關(guān)的依賴。
yum -y install gcc pcre-devel zlib zlib-devel????依賴安裝完成之后,centos下可以使用如下命令查看版本,此時再進(jìn)行配置就沒關(guān)系了。
rpm -q pcre-devel >>>pcre-devel-8.42-4.el8.x86_64? ? 配置完成之后可能會發(fā)現(xiàn)OpenSSL library is not used,這個是專用于將域名從http跳轉(zhuǎn)到https加密必須要使用的庫。
?????配置完成之后該目錄下會多出一個文件Makefile和一個文件夾objs。
make
??? make將源碼進(jìn)行編譯,生成可執(zhí)行程序。
????make之前的obj目錄
????make之后
make install
??? make install,安裝。
????我們可以看到安裝完成之后在服務(wù)器上生成了很多文件,以下凡是prefix和path指定的是目錄,而file則指定的是文件。
nginx?path?prefix?#?nginx安裝目錄nginx?binary?file?#?nginx執(zhí)行程序,二進(jìn)制文件就是啟動程序nginx?modules?path?#?nginx模塊存放目錄nginx configuration prefix # 配置文件存放目錄nginx configuration file # 配置文件nginx?pid?file # nginx進(jìn)程號nginx error log file # 錯誤日志nginx http access log file# 使用二進(jìn)制文件啟動/usr/local/nginx/sbin/nginx????可以看到80端口(nginx默認(rèn)監(jiān)聽端口)已經(jīng)在監(jiān)聽了,如果此時Linux防火墻和安全組放行了端口號,通過瀏覽器訪問云服務(wù)器的公網(wǎng)IP應(yīng)該是已經(jīng)可以看到Welcome to nginx!的經(jīng)典畫面了。(服務(wù)的三大要素:端口,監(jiān)聽地址,協(xié)議。)
????我們也可以在云服務(wù)器上通過elinks(文本界面瀏覽器)來訪問公網(wǎng)IP,elinks的好處在于沒有緩存!開發(fā)測試時都知道緩存有多難受!我的服務(wù)器版本是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 # 再安裝????此時在服務(wù)器上輸入elinks,彈出如下畫面,則說明安裝成功
或者直接 elinks?IP,也可以看見相關(guān)內(nèi)容
? ? 初步了解Nginx全局配置文件nginx.conf(PS:因為我使用Xshell連接的服務(wù)器,上傳下載蠻不方便,于是裝了lrzsz,就可以愉快的使用rz和sz快捷的上傳和下載文件,以后再次安裝這個包,我們也許不記得包名,但是可以使用yum search rz來對包名進(jìn)行搜索)。
在網(wǎng)上找了張釋義圖,蠻形象的
????回歸正文-配置文件每行釋義
#啟動nginx子進(jìn)程的默認(rèn)用戶是誰?#user nobody;????查看80端口,發(fā)現(xiàn)有兩個nginx,其中上面的是父進(jìn)程,父進(jìn)程肯定是由root用戶啟動的。
#子進(jìn)程數(shù)有幾個?一般修改為核數(shù)#?工作進(jìn)程是單進(jìn)程多線程的# 這里定義的是工作進(jìn)程數(shù)量worker_processes 4;修改用戶(用戶名不是亂加的,須是在/etc/passwd文件下的用戶)和子進(jìn)程數(shù)之后,再次啟動,使用ps命令查看如下所示:
其中root用戶一行STAT為Ss,S表示為休眠狀態(tài),s表示其是進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程)。
#全局錯誤日志的位置及日志格式#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#主進(jìn)程號#pid?logs/nginx.pid;可以看到正好與上面ps命令查看到的root用戶啟動的主進(jìn)程ID15427相同,寫到這里又不得不多寫一句,想到之前看過的一篇文章,介紹Unix/Linux 的基本哲學(xué)之一,“一切皆是文件”,可以看到我們所謂的進(jìn)程ID與普通文件的查看方式也沒什么不同。
events { #每個工作進(jìn)程下的最大線程數(shù) worker_connections 1024;}從上,我們可以知道最大并發(fā)數(shù)即為最大線程數(shù)*工作進(jìn)程數(shù)量。
http服務(wù)器設(shè)置
#http服務(wù)器設(shè)置,可以嵌套多個serverhttp {....}在http服務(wù)器配置中的參數(shù)詳解如下:
#設(shè)定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中定義的數(shù)據(jù)格式。
??? remote_addr和http_x_forwarded_for用以記錄客戶端的ip地址;
??? remote_user:用于記錄客戶端用戶名稱;
??? time_local:用于記錄訪問時間和時區(qū);
??? request:用于記錄請求的url和http協(xié)議;
??? status:記錄請求狀態(tài)
??? body_bytes_sent:發(fā)送給客戶端文件的html主體內(nèi)容大小,在前端頁面中對應(yīng)Response Headers中的Content-Length
??? http_referer:記錄上一個頁面訪問鏈接
??? http_user_agent:客戶瀏覽器的相關(guān)信息
#指定nginx是否調(diào)用sendfile函數(shù)(zero copy方式)來輸出文件#對于普通應(yīng)用,必須設(shè)為onsendfile on;#允許或禁止socke的TCP_CORK的選項,此選項僅在使用sendfile時使用#默認(rèn)開啟#tcp_nopush on;#長連接超時時間#keepalive_timeout 0;keepalive_timeout??65;#gzip??on;如何配置server?我們是通過server來發(fā)布一個網(wǎng)站,一個server就可以發(fā)布一個網(wǎng)站,server又被稱作虛擬主機(jī)。
server { #虛擬主機(jī)使用的端口 listen 80; #虛擬主機(jī)的域名是什么 server_name localhost; #虛擬主機(jī)支持的字符集 #charset koi8-r; #虛擬主機(jī)的訪問日志路徑 #access_log logs/host.access.log main; #定位web的根路徑,即用戶訪問你域名時所訪問的內(nèi)容 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 #根據(jù)錯誤碼返回對應(yīng)的頁面 #如果是以下50*的錯誤狀態(tài),那么就讓用戶去訪問/50x.html error_page 500 502 503 504 /50x.html; #當(dāng)用戶去訪問/50x.html頁面時,定義頁面路徑 location = /50x.html { root html;??}}總結(jié)
以上是生活随笔為你收集整理的ios中amplify配置configure_Nginx源码编译安装及配置文件初步学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 俞敏洪回应财富巨幅缩水185亿:那不是我
- 下一篇: mysql重装远程服务未_MySQL远程