Nginx的应用之安装配置
一、Nginx簡述
Nginx是一個開源且高性能、可靠的Http Web服務、代理服務。
開源: 直接獲取源代碼
高性能: 支持海量并發
可靠: 服務穩定
我們為什么選擇 Nginx服務
Nginx非常輕量
功能模塊少 (源代碼僅保留http與核心模塊代碼,其余不夠核心代碼會作為插件來安裝)
代碼模塊化 (易讀,便于二次開發,對于開發人員非常友好)
互聯網公司都選擇Nginx
1.Nginx技術成熟,具備的功能是企業最常使用而且最需要的
2.適合當前主流架構趨勢, 微服務、云架構、中間層
3.統一技術棧, 降低維護成本, 降低技術更新成本。
Nginx采用Epool網絡模型,Apache采用Select模型
Select: 當用戶發起一次請求,select模型就會進行一次遍歷掃描,從而導致性能低下。
Epool: 當用戶發起請求,epool模型會直接進行處理,效率高效,并無連接限制。
Nginx 典型應用場景
二、快速安裝
Nginx軟件安裝的方式有很多種
1.源碼編譯=>Nginx (1.版本隨意 2.安裝復雜 3.升級繁瑣)
2.epel倉庫=>Nginx (1.版本較低 2.安裝簡單 3.配置不易讀)
3.官方倉庫=>Nginx (1.版本較新 2.安裝簡單 3.配置易讀,推薦)
官方倉庫
1.安裝Nginx軟件所需依賴包
[root@web ~]# yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree2.配置nginx官方yum源
[root@web ~]# vim /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=13.安裝Nginx服務,啟動并加入開機自啟
[root@web ~]# yum install nginx -y [root@web ~]# systemctl enable nginx [root@web ~]# systemctl start nginx4.通過瀏覽器訪問該服務器ip或url地址 10.0.0.7
5.檢查Nginx軟件版本以及編譯參數
[root@web ~]# nginx -v nginx version: nginx/1.16.0 [root@web ~]# nginx -V6.為了讓大家更清晰的了解Nginx軟件的全貌,可使用rpm -ql nginx查看整體的目錄結構及對應的功能,如下表格整理了Nginx比較重要的配置文件
(1)Nginx主配置文件
| /etc/nginx/nginx.conf | 配置文件 | nginx主配置文件 |
| /etc/nginx/conf.d/default.conf | 配置文件 | 默認網站配置文件 |
?
?
?
?
(2)Nginx代理相關參數文件
| /etc/nginx/fastcgi_params | 配置文件 | Fastcgi代理配置文件 |
| /etc/nginx/scgi_params | 配置文件 | scgi代理配置文件 |
| /etc/nginx/uwsgi_params | 配置文件 | uwsgi代理配置文件 |
?
?
?
?
?
(3)Nginx編碼相關配置文件
| /etc/nginx/win-utf | 配置文件 | Nginx編碼轉換映射文件 |
| /etc/nginx/koi-utf | 配置文件 | Nginx編碼轉換映射文件 |
| /etc/nginx/koi-win | 配置文件 | Nginx編碼轉換映射文件 |
| /etc/nginx/mime.types | 配置文件 | Content-Type與擴展名 |
?
?
?
?
?
?
(4)Nginx管理相關命令
| /usr/sbin/nginx | 命令 | Nginx命令行管理終端工具 |
| /usr/sbin/nginx-debug | 命令 | Nginx命令行與終端調試工具 |
?
?
?
?
(5)Nginx日志相關目錄與文件
| /var/log/nginx | 目錄 | Nginx默認存放日志目錄 |
| /etc/logrotate.d/nginx | 配置文件 | Nginx默認的日志切割 |
?
?
?
?
三、Nginx默認配置
Nginx主配置文件/etc/nginx/nginx.conf是一個純文本類型的文件,整個配置文件是以區塊的形式組織的。一般,每個區塊以一對大括號{}來表示開始與結束。
Nginx主配置文件整體分為三塊進行學習,分別是CoreModule(核心模塊),EventModule(事件驅動模塊),HttpCoreModule(http內核模塊)
CoreModule核心模塊
user nginx; #Nginx進程所使用的用戶 worker_processes 1; #Nginx運行的work進程數量(建議與CPU數量一致或auto) error_log /log/nginx/error.log #Nginx錯誤日志存放路徑 pid /var/run/nginx.pid #Nginx服務運行后產生的pid進程號events事件模塊
events { worker_connections 25535; #每個worker進程支持的最大連接數use epoll; #事件驅動模型, epoll默認 }http內核模塊
http { #http層開始 ... #使用Server配置網站, 每個Server{}代表一個網站(簡稱虛擬主機)server {listen 80; #監聽端口, 默認80server_name localhost; #提供的域名access_log access.log; #該網站的訪問日志#控制網站訪問路徑location / {root /usr/share/nginx/html; #存放網站源代碼的位置index index.html index.htm; #默認返回網站的文件}}...#第二個虛擬主機配置'server' {...}include /etc/nginx/conf.d/*.conf; #包含/etc/nginx/conf.d/目錄下所有以.conf結尾的文件} #http層結束http server location擴展了解項
http{}層下允許有多個Server{}層,一個Server{}層下又允許有多個Location http{} 標簽主要用來解決用戶的請求與響應。 server{} 標簽主要用來響應具體的某一個網站。 location{} 標簽主要用于匹配網站具體URL路徑?
四、Nginx網站配置
(1)新增nginx配置文件
[root@web01 conf.d]# cat /etc/nginx/conf.d/game.conf server {listen 80;server_name game.com;location / {root /data/www/game;index index.html;} }(2)放置項目的源代碼文件至nginx配置文件root指定的目錄
[root@web01 conf.d]# mkdir /data/www/game && cd /data/www/game [root@web01 game]# echo "This is my game page" > /data/www/game/index.html [root@web01 game]# lsindex.html
(3)檢查nginx的語法是否存在錯誤
[root@web01 code]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful(4)重載Nginx [reload|restart]
[root@web01 code]# systemctl reload nginx?
轉載于:https://www.cnblogs.com/Smbands/p/11409842.html
總結
以上是生活随笔為你收集整理的Nginx的应用之安装配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: go导出mysql中的excel表_go
- 下一篇: 服务器:浅谈 Nginx 性能调优,太实