Nginx介紹,安裝和使用
阿新 • • 發佈:2018-11-10
1.nginx解決埠問題
雖然域名解決了,但是現在如果我們要訪問,還得自己加上埠: http://manage.boss.com:8088
。
這就不夠優雅了。我們希望的是直接域名訪問:http://manage.boss.com
。這種情況下埠預設是80,如何才能把請求轉移到8088埠呢?
這裡就要用到反向代理工具:Nginx
1.1 什麼是Nginx
nginx可以作為web伺服器,但更多的時候,我們把它作為閘道器,因為它具備閘道器必備的功能:
-
反向代理
-
負載均衡
-
動態路由
-
請求過濾
1.2 nginx作為web伺服器
Web伺服器分2類:
- web應用伺服器,如:
- tomcat
- resin
- jetty
- web伺服器,如:
- Apache 伺服器
- Nginx
- IIS
區分:web伺服器不能解析jsp等頁面,只能處理js、css、html等靜態資源。
併發:web伺服器的併發能力遠高於web應用伺服器。
1.3 .nginx作為反向代理
什麼是反向代理?
- 代理:通過客戶機的配置,實現讓一臺伺服器代理客戶機,客戶的所有請求都交給代理伺服器處理。
- 反向代理:用一臺伺服器,代理真實伺服器,使用者訪問時,不再是訪問真實伺服器,而是代理伺服器。
nginx可以當做反向代理伺服器來使用:
- 我們需要提前在nginx中配置好反向代理的規則,不同的請求,交給不同的真實伺服器處理
- 當請求到達nginx,nginx會根據已經定義的規則進行請求的轉發,從而實現路由功能
利用反向代理,就可以解決我們前面所說的埠問題,如圖
1.4 安裝和使用
安裝
安裝非常簡單,把課前資料提供的nginx直接解壓即可,綠色免安裝,舒服!
目錄結構:
使用
nginx可以通過命令列來啟動,操作命令:
- 啟動:
start nginx.exe
- 停止:
nginx.exe -s stop
- 重新載入:
nginx.exe -s reload
2. 反向代理配置
示例:
nginx中的每個server就是一個反向代理配置,可以有多個server
完整配置:
#user nobody; 工作程序
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name manage.boss.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:8088;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
server {
listen 80;
server_name crm.boss.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
}
測試:
啟動nginx,然後用域名訪問後臺管理系統: