一、什么是反向代理服務器?
在服務器端接收客戶端的請求,然后把請求分發給具體的服務器進行處理,然后再將服務器的響應結果反饋給客戶端。
Nginx就是其中的一種反向代理服務器軟件。
二、什么是Nginx?
Nginx是俄羅斯人塞索耶夫編寫的一款高性能的HTTP反向代理服務器。也是一個IMAP/POP3/SMTP代理服務器,也就是說,Nginx本身就可以托管網站,進行HTTP服務處理。
三、Nginx和傳統服務器的區別是什么?
四、Nginx有什么特點? 五、Nginx不為人知的特點 六、Nginx是如何處理一個請求的?
首先為什么在不同的ip查詢網站上顯示的本機ip不一樣?,Nginx在啟動時,會解析配置文件,得到需要監聽的端口號與IP地址,然后再Nginx的進程里面,先初始化好這個監控的(創建,設置等選項,綁定到指定的IP地址和端口號,再),然后再fork(一個現有進程可以調用fork函數創建一個新進程。由fork創建的新進程被稱為子進程)出多個子進程出來,然后子進程會競爭新的連接。此時,客戶端就可以向Nginx發起連接了。當客戶端與Nginx進行三次握手,與Nginx建立好一個連接后,此時,某一個子進程會成功,得到這個連接好的連接的,然后創建Nginx對連接的封裝,即結構體。接著,設置讀寫事件處理函數并添加讀寫事件與客戶端進行數據交換。最后,Nginx或客戶端來主動關掉連接,到此,一個連接就壽終正寢了。
當然Nginx也是可以作為客戶端來請求其他的數據的(如模塊),此時,與其他創建的連接,也封裝在中。作為客戶端,Nginx先獲取一個結構體,然后創建,并設置的屬性(比如非阻塞)。然后再通過添加讀寫事件,調用/read/write來調用連接,最后關掉連接為什么在不同的ip查詢網站上顯示的本機ip不一樣?,并釋放。
七、環境下的常用命令 八、Linux下使用Nginx 8.1、安裝Nginx 第1步:安裝nginx依賴包
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
第2步:使用ftp工具將Nginx應用上傳至
#解壓
tar -zxvf nginx-1.21.2.tar.gz
#重命名
mv nginx-1.21.2 nginx
第3步:安裝Nginx 指定安裝路徑
#進入到nginx-1.21.2目錄中指定安裝路徑
./configure --prefix=/usr/local/nginx
編譯并安裝Nginx
#進入nginx-1.21.2目錄中運行如下命令
make & make install #編譯并安裝nginx
啟動Nginx
#進入/usr/local/apps/nginx/sbin
cd /usr/local/apps/nginx/sbin
#啟動Nginx
./nginx
8.2、Nginx配置文件說明
nginx 配置文件在conf 目錄中。
nginx.conf 配置文件中.可以配置,web 服務器定位的目錄.
# user 代表訪問權限是什么. 就是通過nginx 訪問linux 服務器中文件時,使用的用戶權限
user ftpuser;
# 工作流程ID.
worker_processes 1;

events {
worker_connections 1024;
}
# 定義http 服務器內容
http {
include mime.types; # 加載響應類型
default_type application/octet-stream; # 默認使用IO 流實現請求/應答
sendfile on; # 是否支持文件傳輸
keepalive_timeout 65; # 心跳監測.
# 配置一個服務節點
server {
listen 80; # nginx訪問端口
server_name localhost; # 監聽的地址/IP/域名/主機名
# 當前網絡服務節點對應本地什么目錄.
# 相對地址,從nginx 安裝目錄開始尋址. 絕對地址從根開始尋址
location / {
# web 服務節點的根目錄為html.

root html;
index index.html index.htm; #默認歡迎頁面
}
# 如果出現錯誤,顯示的頁面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
8.3、Nginx常用命令
./nginx -s stop #暴力停止
./nginx -s quit #優雅停止
./nginx -s reload #重新加載
pkill -9 nginx #強制停止nginx進程
8.4、配置虛擬主機
虛擬主機就是在一臺服務器啟動多個網站。如何區分不同的網站:
8.4.1、 通過端口區分不同虛擬機
案例:在linux服務器根據端口訪問不同的內容
說明:一個節點就是一個虛擬主機,可以配置多個,配置了多個虛擬主機
第一個server配置:
server {
listen 80; #配置端口
server_name localhost; #nginx服務器地址
location / {
root html;
index index.html index.htm;
}
}
第二個server配置:
server {
listen 81; #配置端口
server_name localhost; #nginx服務器地址
location / {
root html;
index main.html;
}
}

8.5、反向代理的案例
訪問80端口反向代理到百度網,訪問81端口反向代理到搜狗網
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://www.baidu.com/;
}
}
server {
listen 81; #配置端口
server_name localhost; #nginx服務器地址
location / {
proxy_pass http://www.sogou.com/;
}
}
訪問:80,系統自動跳轉到百度
訪問:81,系統自動跳轉到搜狗