服務(wù)器介紹
ubuntu16.04
安裝Nginx
sudo apt-get install nginx
- 安裝后文件
所有的配置文件都在/etc/nginx下刑棵,并且每個(gè)虛擬主機(jī)已經(jīng)安排在了/etc/nginx/sites-available下
程序文件在/usr/sbin/nginx
日志放在了/var/log/nginx中
并已經(jīng)在/etc/init.d/下創(chuàng)建了啟動(dòng)腳本nginx
默認(rèn)的虛擬主機(jī)的目錄設(shè)置在了/var/www/nginx-default (有的版本 默認(rèn)的虛擬主機(jī)的目錄設(shè)置在了/var/www, 請(qǐng)參考/etc/nginx/sites-available里的配置)
配置文件
- nginx.conf 所有的配置文件都在這個(gè)目錄下
重點(diǎn)注意的
# 設(shè)置代理的具體配置文件
# 表示 導(dǎo)入 conf.d/目錄下的 .conf文件
# 建議都存在這個(gè)地方
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
在瀏覽器中輸入觀察結(jié)果
重新配置80端口的頁(yè)面
- 刪掉部分文件
cd /etc/nginx
rm -rf sites-enabled
刪掉 nginx 下面的 include /etc/nginx/sites-enabled/*;
- 在conf.d文件夾下新建my.conf(以.conf結(jié)尾就行)
- vi my.conf
server {
listen 80; # 設(shè)置端口為80端口
root /var/www/html; # 監(jiān)聽(tīng)文件的目錄
location / {
}
}
- 切換/var/www/html目錄下 新建index.html
vi index.html
hello world
- 重啟服務(wù)器
sudo nginx -s reload
sudo /etc/init.d/nginx start
Nginx構(gòu)建虛擬主機(jī)
- 虛擬主機(jī)
通常情況下翻翩,為了使每個(gè)服務(wù)器可以供更多用戶(hù)使用,可以將一個(gè)服務(wù)器分為很多虛擬的子服務(wù)器亏娜,每個(gè)子服務(wù)器都是互相獨(dú)立的。這些服務(wù)器是根據(jù)虛擬化技術(shù)分出來(lái)的聚假,這樣碌廓,一臺(tái)服務(wù)器就可以虛擬成很多臺(tái)子服務(wù)器。我們把子服務(wù)器叫做虛擬主機(jī)背传。我們搭建好Nginx服務(wù)器之后呆瞻,此時(shí)只有一臺(tái)Nginx服務(wù)器,這時(shí)如果我們對(duì)這臺(tái)服務(wù)器進(jìn)行虛擬主機(jī)配置径玖,就可以將一臺(tái)Nginx服務(wù)器分割為多臺(tái)獨(dú)立的子服務(wù)器痴脾。
具體反向代理的文章可以參考
https://www.cnblogs.com/Anker/p/6056540.html
配置虛擬主機(jī)
1.單域名映射到多服務(wù)
server {
listen 80;
server_name nginx.liangchi.top;
location /path1/ {
proxy_pass http://172.22.97.58:8001/;
}
location /path2/ {
proxy_pass http://172.22.97.58:8002/;
}
location /path3/ {
proxy_pass http://172.22.97.58:8003/;
}
location / {
proxy_pass http://172.22.97.58:8000/;
}
}
server {
listen 8000;
root /var/www/html;
location / {
index index.html;
}
}
server {
listen 8001;
root /var/www/html;
location / {
index main_8001.html;
}
}
cd /var/www/html
vi index.html
add -> hello world
vi main_8001.html
add -> hello world 8001
訪問(wèn)nginx.liangchi.top 將被映射到 http://172.22.97.58:8000/
訪問(wèn)nginx.liangchi.top/path1/將被映射到 http://172.22.97.58:8001/
其中相關(guān)參數(shù)說(shuō)明
- root 指令
root指令能指定那個(gè)目錄作為根目錄用于文件的檢索
下面的例子指定了virtual server文件檢索的根目錄:
server {
root /www/data;
location / {
}
location /images/ {
}
location ~ \.(mp3|mp4) {
root /www/media;
}
}
1. 當(dāng)一個(gè)URI以/image/開(kāi)頭,那么將會(huì)在 /www/data/images/這個(gè)目錄下進(jìn)行檢索梳星;
2. 當(dāng)URI以 .mp3或.mp4結(jié)尾時(shí)赞赖,nginx將會(huì)在/www/media目錄下檢索資源滚朵;
3. 當(dāng)一個(gè)請(qǐng)求以 / 結(jié)尾時(shí),nginx會(huì)嘗試在該目錄下找到該請(qǐng)求的索引文件(index file)
默認(rèn)的索引文件為index.html前域。
例如 如果URI為/images/some/path/辕近,那么nginx會(huì)嘗試查找
/www/data/images/some/path/index.html文件,
如果這個(gè)文件不存在匿垄,那么將默認(rèn)返回404移宅。
- index文件
如果想讓nginx查找更多指定類(lèi)型的索引文件,可以通過(guò)Index指令指定年堆。
...
index index.html main.html
...
表示查找index.html或者main.html的主頁(yè)文件
- 多域名映射到多任務(wù)
問(wèn)題類(lèi)型:需要在一個(gè)服務(wù)器上的不同端口綁定不同的域名
server {
listen 80;
server_name nginx.liangchi.top;
location / {
proxy_pass http://172.22.97.58:8000/;
}
}
server {
listen 80;
server_name nginx2.liangchi.top;
location / {
proxy_pass http://172.22.97.58:9000/;
}
}
訪問(wèn)nginx.liangchi.top是訪問(wèn) http://172.22.97.58:8000/
訪問(wèn)nginx2.liangchi.top是訪問(wèn)http://172.22.97.58:9000/
具體情況
- 現(xiàn)有服務(wù)器 172.22.97.58 (本地服務(wù)器)
-
在阿里云上購(gòu)買(mǎi)了域名吞杭,一級(jí)域名的地址為liangchi.top,現(xiàn)在設(shè)置域名解析
上圖中二級(jí)域名movie.liangchi.top 和 nginx.liangchi.top都對(duì)應(yīng)相同的服務(wù)器IP地址
- 現(xiàn)在在服務(wù)器上綁定不同的端口
1. 新建 .conf文件
############### 添加如下配置文件 #############
server {
listen 80;
server_name nginx.liangchi.top;
location / {
proxy_pass http://172.22.97.58:8000/;
}
}
server {
listen 80;
server_name movie.liangchi.top;
location / {
proxy_pass http://172.22.97.58:8001/;
}
}
2. 重新加載nginx
sudo nginx -s reload
-> 如果出現(xiàn)nginx: [warn] conflicting server name "nginx.liangchi.top" on 0.0.0.0:80, ignored把前面文件占用的80端口改掉就可以
3. 具體端口的頁(yè)面和上面的 單域名映射到多服務(wù) 部分相同
以上三步就可以實(shí)現(xiàn)不同域名綁定同一個(gè)服務(wù)器不同的IP端口
nginx.liangchi.top 訪問(wèn) http://172.22.97.58:8000
movie.liangchi.top 訪問(wèn) http://172.22.97.58:8001