nginx 安裝
先配置nginx源
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
安裝
yum install nginx -y
[root@web01 ~]# rpm -qa nginx
nginx-1.18.0-1.el7.ngx.x86_64 (版本)
程序在啟動的過程中,如果出現(xiàn)報錯,一般都是端口沖突了
netstat -lntp 查看所有使用的端口,然后把占用的端口kill荡澎,,Nginx默認(rèn)也是80
Nginx的目錄結(jié)構(gòu)
/etc/nginx/nginx.conf #主配置文件 ( 駕駛員 )
/usr/sbin/nginx #編譯出來的二進制文件 ( 汽車 )
/var/log/nginx #訪問日志和錯誤日志
cat /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
代表包含/etc/nginx/conf.d下的所有以.conf結(jié)尾的文件腔长。用include的方式包含了。
include : 把在它下邊的文件單獨拿了出來,單獨抒寫横缔。但根本還在include下。
添加一個網(wǎng)站衫哥,最基本的抒寫規(guī)則:
server { #server表示要配置網(wǎng)站茎刚,每個Server{} 代表一個網(wǎng)站,簡稱虛擬主機
listen 80; #這個網(wǎng)站監(jiān)聽80端口
server_name oldxu.com; #這個網(wǎng)站的域名是什么
location / { #控制網(wǎng)站訪問的路徑
root /usr/share/nginx/html; #定義網(wǎng)站源代碼存放的路徑
index index.html index.htm; #默認(rèn)返回哪個文件作為默認(rèn)返回頁
}
}
在瀏覽器訪問域名的時候撤逢,默認(rèn)去訪問本地的哪個路徑下的文件膛锭。 / 是通用(相當(dāng)于10.0.0.7 與10.0.0.7/訪問的是一個意思。會自動添加)
然后去本地的磁盤中找對應(yīng)的文件蚊荣。
root 就是關(guān)鍵字初狰。它是用來定義網(wǎng)站源代碼存放的路徑。
index也是關(guān)鍵字互例。查詢到具體的文件奢入,如果有index.html。就直接返回這個文件里的內(nèi)容媳叨。如果沒有這個文件腥光,就去找index.htm這個文件。如果都沒有肯定就報錯了糊秆。
每一個server 代表一個網(wǎng)站武福。
http {
server {
location {
}
}
}
nginx中的http、server痘番、location之間的關(guān)系是捉片?
http:主要用來解決用戶的請求和響應(yīng)。 www test tt
server:主要用來響應(yīng)具體的某一個網(wǎng)站汞舱。
location:用于匹配網(wǎng)站的uri路徑伍纫。
http{} 下面可以有多個 Server{} 每個server{} 又可以有多個 location {}
url http://10.0.0.7/index.html
uri /index.html
在抒寫網(wǎng)站時,先把默認(rèn)的gzip
[root@web01 ~]# gzip /etc/nginx/conf.d/default.conf
抒寫一個最簡單的游戲網(wǎng)站
1.找到代碼
2.創(chuàng)建目錄
3.編寫nginx配置
4.檢查語法
5.配置域名劫持(因為是假域名)
vim /etc/nginx/conf.d/game.oldxu.com.cof (需要寫很多網(wǎng)站兵拢,所以將域名寫成的文件名翻斟。)
編寫的域名,肯定在http層说铃,但是因為有include。所以只需要寫在/etc/nginx/conf.d/下就可以了嘹履。
server { 一個網(wǎng)站一個server
listen 80; 監(jiān)聽的80
server_name game.oldxu.com; 域名是啥
location / { 具體的匹配位置
root /code; 在根下的code
index index.html; 下邊的index.html
}
}
nginx -t (檢查語法)
systemctl restart nginx (重啟nginx)
然后域名劫持 c:\windows\system32\drives\etc\hosts
10.0.0.7 game.oldxu.com
訪問流程
1.瀏覽器輸入域名腻扇,game.oldxu.com--->http://game.oldxu.com/
2.做域名解析。返回對應(yīng)的ip地址
3.瀏覽器通過隨機端口砾嫉,與服務(wù)端的80端口建立tcp連接幼苛。然后發(fā)起http請求
4.請求被對應(yīng)的nginx的80端口接收,交給nginx的http層去做響應(yīng)焕刮。
5.http層會去查找是否有對應(yīng)的域名舶沿。
6.滿足域名的匹配之后墙杯,檢查用戶對應(yīng)的路徑請求(location)
7.將對應(yīng)的/code/index.html返回用戶。
8.Nginx應(yīng)用程序也會像內(nèi)核發(fā)起請求括荡,獲取磁盤中的某個文件高镐,然后拷貝到內(nèi)核緩沖區(qū),然后在到nginx的進程緩沖區(qū)畸冲。然后Nginx應(yīng)用進程進行封裝報文嫉髓,回傳給客戶端的瀏覽器。