windows下安裝Nginx全過(guò)程
概念
是一個(gè)高性能的HTTP和反向代理web服務(wù)器。
代理
正向代理
一個(gè)客戶端與目標(biāo)服務(wù)器之間的代理服務(wù)器。
正向代理是代表客戶端來(lái)進(jìn)行訪問目標(biāo)服務(wù)器,我們要獲取到目標(biāo)服務(wù)器的資源,客戶端配置代理服務(wù)器地址,客戶端使用代理服務(wù)器地址訪問目標(biāo)地址,可以隱藏客戶端的地址。
比如我們的科學(xué)上網(wǎng)就是使用的正向代理。
反向代理
一個(gè)客戶端與目標(biāo)服務(wù)器之間的代理服務(wù)器。
反向代理是代表的服務(wù)器來(lái)接收客戶端的訪問請(qǐng)求,客戶端不知道目標(biāo)服務(wù)器的存在,對(duì)客戶端來(lái)說(shuō),目標(biāo)服務(wù)器是無(wú)感的,代理服務(wù)器就是目標(biāo)服務(wù)器,代理服務(wù)器將請(qǐng)求轉(zhuǎn)發(fā)給目標(biāo)服務(wù)器獲取返回資源后,再將返回的資源返回給客戶端,可以隱藏目標(biāo)服務(wù)器的地址。
比如nginx服務(wù)器就是反向代理。
安裝
1.下載地址:nginx: 下載
2.解壓到自定義的文件夾下

基本屬性
nginx.conf
查詢
nginx的主配置文件地址/etc/nginx/nginx.conf,可以使用cat -n nginx.conf來(lái)查看配置
結(jié)構(gòu)
main # 全局配置,main模塊設(shè)置的指令將會(huì)影響其他所有設(shè)置,通常設(shè)置nginx的用戶(組)、允許生成的woker_process數(shù)目、nginx進(jìn)程PID存放目錄、日志存放路徑和類型以及配置文件的引入
|——events # 配置nginx服務(wù)器或用戶的網(wǎng)絡(luò),通常設(shè)置包括是否開啟對(duì)多個(gè)work_process下的網(wǎng)絡(luò)進(jìn)行序列化、是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接、選取哪種事件模型來(lái)處理連接請(qǐng)求、每個(gè)work_process可以同時(shí)支持的最大連接數(shù)
|——http # 配置代理、緩存、日志等絕大部分功能及第三方模塊配置
|——upstream # 配置后端服務(wù)器具體地址,負(fù)載均衡配置不可或缺的部分
|——server # 配置虛擬主機(jī)相關(guān)參數(shù),一個(gè)server對(duì)與用戶來(lái)說(shuō)就是一個(gè)虛擬主機(jī),一個(gè)http塊可以包含多個(gè)server塊,
|——location # server塊可以包含多個(gè)location塊,用于匹配uri,地址定向、數(shù)據(jù)緩存和應(yīng)答控制等功能,還有許多其他第三方模塊也在這里配置屬性
# 定義運(yùn)行nginx的用戶與用戶組
user www www;
# nginx的進(jìn)程數(shù),建議設(shè)置為等于CPU總核數(shù)
worker_processes 8;
# 全局錯(cuò)誤日志定義類型[debug|info|notice|error|crit]
error_log /usr/local/nginx/logs/error.log info;
# 進(jìn)程pid文件
pid /usr/local/nginx/logs/nginx.pid;
events{
# 設(shè)置網(wǎng)路連接序列化,防止驚群現(xiàn)象發(fā)生,默認(rèn)為on
accept_mutex on;
# 設(shè)置一個(gè)進(jìn)程是否同事接受多個(gè)網(wǎng)絡(luò)連接,默認(rèn)為off
multi_accpet on;
# 事件驅(qū)動(dòng)模型[select|poll|kqueue|epoll|resig|/dev/poll|eventport]
use epoll;
# 最大連接數(shù),默認(rèn)為512
worker_connections 1024;
}
# 設(shè)定http服務(wù)器,利用它的反向代理功能提供負(fù)載均衡支持
http
{
# 常用配置
# 文件擴(kuò)展名與文件類型映射表
include mime.types;
# 設(shè)定通過(guò)nginx上傳文件的大小
client_max_body_size 8m;
# 長(zhǎng)連接超時(shí)時(shí)間,單位是秒
keepalive_timeout 120;
# 默認(rèn)文件類型
default_type application/octet-stream;
# 默認(rèn)編碼
charset utf-8;
# 負(fù)載均衡配置
upstream lyy.api{
# upstream的負(fù)載均衡,weight是權(quán)重,可以根據(jù)機(jī)器配置定義權(quán)重,weight參數(shù)表示權(quán)值,權(quán)值越高被分配到的記錄越大;down表示當(dāng)前的server暫時(shí)不參與負(fù)載;max_fails表示允許請(qǐng)求失敗的次數(shù)默認(rèn)為1,當(dāng)超過(guò)最大次數(shù)時(shí),返回proxy_next_upstream模塊定義的錯(cuò)誤;fail_timeout表示max_fails次失敗后,暫停的時(shí)間;backup表示其他所有的非backup機(jī)器down或者忙的時(shí)候,請(qǐng)求backup機(jī)器。所以這臺(tái)機(jī)器壓力會(huì)最輕
server 192.168.1.10:80 weight=1 backup;
server 192.168.1.11:80 weight=2 down;
server 192.168.1.12:80 weight=3 max_fails=3 fail_timeout=15;
# nginx的upstream目前支持4種方式的分配
# 1、輪詢(默認(rèn)):每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動(dòng)剔除
# 2、weight:指定輪詢幾率,weight和訪問比率成正比,用于后端服務(wù)器性能不均的情況。
# 3、ip_hash:每個(gè)請(qǐng)求按訪問ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問一個(gè)后端服務(wù)器,可以解決session的問題
# 4、fair:按后端服務(wù)器的相應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。
}
# 虛擬主機(jī)的配置
server{
# 監(jiān)聽端口
listen 80;
# 域名可以有多個(gè),用空格隔開
server_name www.lyy.com www.lyy.cn;
index index.html index.htm index.php;
root /data/www/lyy;
# 定義本虛擬主機(jī)的訪問日志
access_log /usr/local/nginx/logs/host.access.log main;
access_log /usr/local/nginx/logs/host.access.404.log log404;
# 對(duì)"/api"啟用反向代理
location /api {
# 所有請(qǐng)求了ip:port/api/**的接口都會(huì)轉(zhuǎn)發(fā)到lyy.api負(fù)載配置去
proxy_pass lyy.api;
# 或者直接配置地址
# proxy_pass http:127.0.0.1:11001;
# 允許客戶端請(qǐng)求的最大單文件字節(jié)數(shù)
client_max_body_size 10m;
# 后端服務(wù)器連接的超時(shí)時(shí)間
proxy_connect_timeout 90;
# 后端服務(wù)器數(shù)據(jù)回傳超時(shí)時(shí)間
proxy_send_timeout 90;
# 連接成功后,后端服務(wù)器響應(yīng)超時(shí)時(shí)間
proxy_read_timeout 90;
}
}
}
使用
運(yùn)行
在nginx目錄下打開cmd,然后執(zhí)行啟動(dòng)命令,雙擊nginx.exe后,在修改配置后,再重啟、關(guān)閉nginx都不生效,只有在任務(wù)管理器中進(jìn)行關(guān)閉所有nginx進(jìn)程。
start nginx


重啟
修改nginx.conf的配置后,重啟nginx
nginx.exe -s reload
修改端口為8002,然后運(yùn)行重啟命令

停止
nginx -s stop


總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
nginx用正則表達(dá)式實(shí)現(xiàn)泛域名自動(dòng)匹配目錄的方法
這篇文章主要介紹了nginx用正則表達(dá)式實(shí)現(xiàn)泛域名自動(dòng)匹配目錄的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
Nginx動(dòng)靜分離實(shí)現(xiàn)案例代碼解析
這篇文章主要介紹了Nginx動(dòng)靜分離實(shí)現(xiàn)案例代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Nginx如何實(shí)現(xiàn)對(duì)城市以及指定IP的訪問限制
本文介紹了如何使用Nginx代理MySQL連接并限制可訪問IP,以及如何通過(guò)第三方模塊ngx_http_geoip2_module實(shí)現(xiàn)基于國(guó)家/城市訪問限制2025-03-03
Nginx實(shí)現(xiàn)外網(wǎng)訪問內(nèi)網(wǎng)的步驟詳解
外網(wǎng)瀏覽器與內(nèi)網(wǎng)是不通的,但是外網(wǎng)與中間過(guò)渡服務(wù)器是通的,中間過(guò)渡服務(wù)器與內(nèi)網(wǎng)服務(wù)器是通的,這樣在外網(wǎng)訪問過(guò)渡服務(wù)器時(shí),過(guò)渡服務(wù)器再跳轉(zhuǎn)到后臺(tái)服務(wù)器,本文給大家介紹了Nginx外網(wǎng)訪問內(nèi)網(wǎng)如何實(shí)現(xiàn)步驟,需要的朋友可以參考下2023-10-10
Nginx實(shí)現(xiàn)會(huì)話保持的兩種方式
在我們做Nginx負(fù)載均衡的時(shí)候經(jīng)常會(huì)遇到會(huì)話保持的問題,為了保證同一用戶session會(huì)被分配到同一臺(tái)服務(wù)器上,這時(shí)就需要會(huì)話保持,本文介紹了兩種方法,感興趣的可以了解一下2022-03-03
Laravel的Nginx重寫規(guī)則實(shí)例代碼
這篇文章主要介紹了Laravel的Nginx重寫規(guī)則實(shí)例代碼,需要的朋友可以參考下2017-09-09

