Nginx入門到實戰(1)基礎篇
一、環境
伺服器版本:CentOS 7.2
為了保證學習階段不遇到奇怪的事情,請保證以下四點(大神選擇性無視)
- 確認系統網路
- 確認yum可用
- 確認關閉iptables
- 確認停用selinux
#檢視iptables狀態 systemctl status firewalld.service #關閉防火牆(臨時關閉) systemctl stop firewalld.service #檢視SELinux狀態 getenforce #臨時關閉SELinux setenforce 0
安裝一些系統基本工具,正常情況系統都會自帶(沒有在裝哦)
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake yum -y install wget httpd-tools vim
二、Nginx是什麼?
Nginx是一個開源且高效能、可靠的HTTP中介軟體、代理服務
其他的HTTP服務:
- HTTPD-Apache基金會
- IIS-微軟
- GWS-Google(不對外開放)
近幾年,Nginx的市場佔有率越來越高,一度飆升,為什麼呢?接下來我們就知道了!
三、我們為什麼選擇Nginx?
1. IO多路複用epoll(IO複用)
如何理解呢?舉個例子吧!
有A、B、C三個老師,他們都遇到一個難題,要幫助一個班級的學生解決課堂作業。
老師A採用從第一排開始一個學生一個學生輪流解答的方式去回答問題,老師A浪費了很多時間,並且有的學生作業還沒有完成呢,老師就來了,反反覆覆效率極慢。
老師B是一個忍者,他發現老師A的方法行不通,於是他使用了影分身術,分身出好幾個自己同一時間去幫好幾個同學回答問題,最後還沒回答完,老師B消耗光了能量累倒了。
老師C比較精明,他告訴學生,誰完成了作業舉手,有舉手的同學他才去指導問題,他讓學生主動發聲,分開了“併發”。
這個老師C就是Nginx。
2. 輕量級
- 功能模組少 - Nginx僅保留了HTTP需要的模組,其他都用外掛的方式,後天新增
- 程式碼模組化 - 更適合二次開發,如阿里巴巴Tengine
3. CPU親和
把CPU核心和Nginx工作程式繫結,把每個worker程式固定在一個CPU上執行,減少切換CPU的cache miss,從而提高效能。
四、安裝與目錄
本人使用了鳥哥的lnmp整合包 https://lnmp.org,簡單方便-推薦!
#執行這句語句,根據指引,將安裝 nginx php mysql 可進入lnmp官網檢視更詳細的過程 #預設安裝目錄/usr/local wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp #預設安裝目錄 /usr/local
五、基本配置
#開啟主配置檔案,若你是用lnmp環境安裝 vim /usr/local/nginx/conf/nginx.conf ---------------------------------------- user #設定nginx服務的系統使用使用者 worker_processes #工作程式數 一般情況與CPU核數保持一致 error_log #nginx的錯誤日誌 pid #nginx啟動時的pid events { worker_connections #每個程式允許最大連線數 use #nginx使用的核心模型 }
我們使用 nginx 的 http 服務,在配置檔案 nginx.conf 中的 http 區域內,配置無數個 server ,每一個 server 對應這一個虛擬主機或者域名
http { ... ... #後面再詳細介紹 http 配置專案 server { listen 80 #監聽埠; server_name localhost #地址 location / { #訪問首頁路徑 root /xxx/xxx/index.html #預設目錄 index index.html index.htm #預設檔案 } error_page 500 504 /50x.html #當出現以上狀態碼時從新定義到50x.html location = /50x.html { #當訪問50x.html時 root /xxx/xxx/html #50x.html 頁面所在位置 } } server { ... ... } }
一個 server 可以出現多個 location ,我們對不同的訪問路徑進行不同情況的配置
我們再來看看 http 的配置詳情
http { sendfile on #高效傳輸檔案的模式 一定要開啟 keepalive_timeout 65 #客戶端服務端請求超時時間 log_format main XXX #定義日誌格式 代號為main access_log /usr/local/access.log main #日誌儲存地址 格式程式碼 main }
六、模組
檢視 nginx 已開啟和編聯進去的模組,模組太多了,就不在這長篇大論,有需要自行百度吧~
#大寫V檢視所有模組,小寫v檢視版本 nginx -V # 檢視此配置檔案 是否存在語法錯誤 nginx -tc /usr/local/nginx/conf/nginx.conf
相關文章
- NGINX 入門到企業級應用實踐-基礎篇Nginx
- Nginx入門到實戰(2)場景實現篇Nginx
- Nginx 基礎入門Nginx
- 大資料零基礎由入門到實戰大資料
- nginx基礎篇之虛擬主機實戰Nginx
- Nginx入門到實戰(4)常見問題Nginx
- 大資料系列零基礎由入門到實戰大資料
- MongoDB一篇從入門到實戰MongoDB
- vue+webpack 從入門到精通(基礎篇)VueWeb
- Kafka基礎入門篇Kafka
- 寫給後端的Nginx初級入門教程:基礎篇後端Nginx
- .net 開源模板引擎jntemplate 實戰演習:基礎篇之入門
- Elasticsearch(1):基礎入門Elasticsearch
- 爬蟲(1) - 爬蟲基礎入門理論篇爬蟲
- Python3 《零基礎小白從入門到實戰》之“列表”Python
- JS基礎入門篇( 一 )JS
- JS基礎入門篇(一)JS
- TypeScript入門指南(基礎篇)TypeScript
- python基礎篇實戰Python
- docker 入門到實戰 1.初識 dockerDocker
- web3從入門到實戰-理論篇Web
- Linux入門到實戰Linux
- Redis從入門到高可用,分散式實踐(1)- 基礎介紹Redis分散式
- Nginx-基礎篇Nginx
- Dubbo入門(1) - 基礎概念
- TypeScript入門完全指南(基礎篇)TypeScript
- Dart 語言基礎入門篇Dart
- 入門MySQL——基礎語句篇MySql
- 一、Ansible基礎之入門篇
- HarmonyOS Next 入門實戰 - 基礎元件、頁面實現元件
- 小白入門使用Nginx基礎的常用操作Nginx
- Nginx入門級安裝和基礎使用Nginx
- Nginx入門到實戰(3)負載均衡和快取服務Nginx負載快取
- 淺入kubernetes(1):Kubernetes 入門基礎
- Redis 從入門到實戰Redis
- Gin + GORM 入門到實戰GoORM
- Locust 從入門到實戰
- Redis 從入門到奪門而出 - 基礎Redis