1. 程式人生 > >Nginx介紹,安裝和使用

Nginx介紹,安裝和使用

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,然後用域名訪問後臺管理系統:

在這裡插入圖片描述