網(wǎng)站首頁 編程語言 正文
1. Nginx介紹:
1.1 Nginx是什么?
Nginx(“engine x”)是一個開源的,支持高性能、高并發(fā)的www服務(wù)和代理服務(wù)軟件。
由俄羅斯人Igor Sysoev開發(fā),最初應(yīng)用于俄羅斯大型網(wǎng)站www.rambler.ru上。
Nginx具有高并發(fā)、占用系統(tǒng)資源少等特性。
Nginx可以運(yùn)行在UNIX、Linux、DSB、Mac OS X、Solaris及Windows等操作系統(tǒng)上。
1.2 Nginx主要特性
支持高并發(fā):能支持幾萬并發(fā)連接
資源消耗少:三萬并發(fā)連接下,開始10個線程消耗內(nèi)存不到200MB。
可以做HTTP反向代理及加速緩存,即負(fù)載均衡功能,內(nèi)置對RS節(jié)點(diǎn)服務(wù)器健康檢查功能
具備Squid等專業(yè)緩存軟件的緩存功能
支持異步網(wǎng)絡(luò)I/O事件模型
1.3 Nginx軟件的主要功能應(yīng)用
作為Web服務(wù)軟件
反向代理及負(fù)載均衡服務(wù)
前端業(yè)務(wù)數(shù)據(jù)緩存服務(wù)
2. Nginx Web服務(wù)
2.1 Nginx作為Web服務(wù)器應(yīng)用場景
使用Nginx運(yùn)行HTML、JS、CSS、小圖片等靜態(tài)數(shù)據(jù)
Nginx結(jié)合FastCGI運(yùn)行PHP等動態(tài)程序
Nginx結(jié)合Tomcat/Resin等支持Java動態(tài)程序
2.2 如何選擇Web服務(wù)器
工作中,根據(jù)需求來選擇合適的業(yè)務(wù)服務(wù)軟件:
- 靜態(tài)業(yè)務(wù):高并發(fā)場景,首選采用Nginx
- 動態(tài)業(yè)務(wù):Nginx與Apache都可,建議Nginx
- 靜態(tài)+動態(tài)業(yè)務(wù):推薦Nginx
3 編譯安裝Nginx
安裝方法多種,本文使用編譯安裝方式。如果需要大規(guī)模部署,可將業(yè)務(wù)需求定制好rpm包,然后通過Ansible安裝。
3.1 安裝pcre庫
查看當(dāng)前系統(tǒng)版本:
cat /etc/redhat-release uname -r
結(jié)果:
CentOS release 6.10 (Final)
2.6.32-754.el6.x86_64
采用yum方式安裝pcre:
yum -y install pcre pcre-devel rpm -qa pcre pcre-devel
結(jié)果:
pcre-devel-7.8-7.el6.x86_64
pcre-7.8-7.el6.x86_64
3.2 安裝Nginx
檢查是否裝有openssl、openssl-devel:
rpm -qa openssl openssl-devel
結(jié)果:如果沒有,使用yum安裝
openssl-1.0.1e-57.el6.x86_64
openssl-devel-1.0.1e-57.el6.x86_64
創(chuàng)建nginx包存放目錄:
mkdir -p /app/nginx-1.8.1 mkdir -p /server/tools cd /server/tools/
下載nginx軟件包:
官方地址:www.nginx.rog
wget -q http://nginx.org/download/nginx-1.8.1.tar.gz
創(chuàng)建nginx用戶:
useradd nginx -s /sbin/nologin -M
解壓軟件包并進(jìn)入解壓后的目錄:
tar xf nginx-1.8.1.tar.gz cd nginx-1.8.1
進(jìn)行編譯:
編譯模塊可以通過./configure --help查看
./configure --user=nginx --group=nginx --prefix=/app/nginx-1.8.1/ --with-http_stub_status_module --with-http_ssl_module
安裝:
make make install
創(chuàng)建軟鏈接:方便使用以及版本升級
ln -s /app/nginx-1.8.1/ /app/nginx
啟動前測試:
/app/nginx/sbin/nginx -t
結(jié)果:
nginx: the configuration file /app/nginx-1.8.1//conf/nginx.conf syntax is oknginx: configuration file /app/nginx-1.8.1//conf/nginx.conf test is successful
啟動Nginx服務(wù)并檢查端口:
/app/nginx/sbin/nginx netstat -utpln | grep 80
結(jié)果:
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:80 ? ? ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? ? ? LISTEN ? ? ?13689/nginx
檢查Nginx啟動結(jié)果:以下內(nèi)容代表啟動成功
curl 192.168.1.31
結(jié)果:
Welcome to nginx! Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.Thank you for using nginx.
4. Nginx目錄結(jié)構(gòu)與配置文件
4.1 Nginx目錄結(jié)構(gòu)說明
tree /app/nginx
/app/nginx ├── client_body_temp ├── conf #nginx配置文件目錄 │ ├── fastcgi.conf #fastcgi相關(guān)參數(shù)配置文件 │ ├── fastcgi.conf.default │ ├── fastcgi_params #fastcgi參數(shù)文件 │ ├── fastcgi_params.default │ ├── koi-utf │ ├── koi-win │ ├── mime.types #媒體類型 │ ├── mime.types.default │ ├── nginx.conf #Nginx主配置文件 │ ├── nginx.conf.default │ ├── scgi_params #scgi配置文件 │ ├── scgi_params.default │ ├── uwsgi_params #uwsgi配置文件 │ ├── uwsgi_params.default │ └── win-utf ├── fastcgi_temp #fastcgi臨時數(shù)據(jù)文件 ├── html #默認(rèn)站點(diǎn)目錄 │ ├── 50x.html #錯誤頁面顯示文件 │ └── index.html #默認(rèn)的站點(diǎn)首頁文件 ├── logs #默認(rèn)日志路徑 │ ├── access.log #默認(rèn)訪問日志文件 │ ├── error.log #默認(rèn)錯誤日志文件 │ └── nginx.pid #Nginx的pid文件 ├── proxy_temp #臨時目錄 ├── sbin #Nginx命令目錄 │ ├── nginx #啟動命令 │ └── nginx.old ├── scgi_temp #臨時目錄 └── uwsgi_temp #臨時目錄 9 directories, 22 files
4.2 Nginx主配置文件
去注釋顯示配置文件:
egrep -v "#|^$" /app/nginx/conf/nginx.conf.default
結(jié)果:
worker_processes 1; #worker進(jìn)程數(shù)量 events { #事件區(qū)塊開始 worker_connections 1024; #單worker進(jìn)程支持的最大連接 } #事件區(qū)塊結(jié)束 http { #HTTP區(qū)塊開始 include mime.types; #支持的媒體類型庫 default_type application/octet-stream; #默認(rèn)媒體類型 sendfile on; #開啟高效傳輸模式 keepalive_timeout 65; #連接超時 server { #server區(qū)塊開始 listen 80; #服務(wù)端口,默認(rèn)80 server_name localhost; #域名主機(jī)名 location / { #location區(qū)塊開始 root html; #站點(diǎn)根目錄 index index.html index.htm; #默認(rèn)首頁文件 } #location區(qū)塊結(jié)束 error_page 500 502 503 504 /50x.html;#對應(yīng)狀態(tài)碼及回應(yīng) location = /50x.html { #location開始回應(yīng)50x.html root html; #站點(diǎn)目錄為html } } } #HTTP區(qū)塊結(jié)束
注:server區(qū)塊和location區(qū)塊可以是多個。
原文鏈接:https://yyang.blog.csdn.net/article/details/107584865
相關(guān)推薦
- 2022-04-08 C語言互換最大值與最小值的位置_C 語言
- 2022-12-07 React中路由的參數(shù)傳遞路由的配置文件詳解_React
- 2022-06-08 換掉你的@RefreshScope吧
- 2022-08-13 Redis 性能影響 - 異步機(jī)制和響應(yīng)延遲
- 2022-05-29 C#實(shí)現(xiàn)文本轉(zhuǎn)語音功能_C#教程
- 2022-04-12 【debug】PytorchStreamReader failed reading zip arch
- 2022-05-01 C#程序調(diào)用cmd.exe執(zhí)行命令_C#教程
- 2022-04-05 關(guān)于Unity中RectTransform與transform的區(qū)別_C#教程
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支