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

基本屬性
nginx.conf
查詢(xún)
nginx的主配置文件地址/etc/nginx/nginx.conf,可以使用cat -n nginx.conf來(lái)查看配置
結(jié)構(gòu)
main # 全局配置,main模塊設(shè)置的指令將會(huì)影響其他所有設(shè)置,通常設(shè)置nginx的用戶(hù)(組)、允許生成的woker_process數(shù)目、nginx進(jìn)程PID存放目錄、日志存放路徑和類(lèi)型以及配置文件的引入
|——events # 配置nginx服務(wù)器或用戶(hù)的網(wǎng)絡(luò),通常設(shè)置包括是否開(kāi)啟對(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ì)與用戶(hù)來(lái)說(shuō)就是一個(gè)虛擬主機(jī),一個(gè)http塊可以包含多個(gè)server塊,
|——location # server塊可以包含多個(gè)location塊,用于匹配uri,地址定向、數(shù)據(jù)緩存和應(yīng)答控制等功能,還有許多其他第三方模塊也在這里配置屬性
# 定義運(yùn)行nginx的用戶(hù)與用戶(hù)組
user www www;
# nginx的進(jìn)程數(shù),建議設(shè)置為等于CPU總核數(shù)
worker_processes 8;
# 全局錯(cuò)誤日志定義類(lèi)型[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ò)展名與文件類(lèi)型映射表
include mime.types;
# 設(shè)定通過(guò)nginx上傳文件的大小
client_max_body_size 8m;
# 長(zhǎng)連接超時(shí)時(shí)間,單位是秒
keepalive_timeout 120;
# 默認(rèn)文件類(lèi)型
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、輪詢(xún)(默認(rèn)):每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動(dòng)剔除
# 2、weight:指定輪詢(xún)幾率,weight和訪(fǎng)問(wèn)比率成正比,用于后端服務(wù)器性能不均的情況。
# 3、ip_hash:每個(gè)請(qǐng)求按訪(fǎng)問(wèn)ip的hash結(jié)果分配,這樣每個(gè)訪(fǎng)客固定訪(fǎng)問(wèn)一個(gè)后端服務(wù)器,可以解決session的問(wèn)題
# 4、fair:按后端服務(wù)器的相應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。
}
# 虛擬主機(jī)的配置
server{
# 監(jiān)聽(tīng)端口
listen 80;
# 域名可以有多個(gè),用空格隔開(kāi)
server_name www.lyy.com www.lyy.cn;
index index.html index.htm index.php;
root /data/www/lyy;
# 定義本虛擬主機(jī)的訪(fǎng)問(wèn)日志
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;
# 允許客戶(hù)端請(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目錄下打開(kāi)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利用Logrotate實(shí)現(xiàn)日志分割的詳細(xì)過(guò)程
nginx日志分割是很常見(jiàn)的運(yùn)維工作,下面這篇文章主要給大家介紹了關(guān)于Nginx利用Logrotate日志分割的詳細(xì)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
Apache和Nginx實(shí)現(xiàn)虛擬主機(jī)的3種方式小結(jié)
Apache是一個(gè)模型化的服務(wù)器,可以運(yùn)行在幾乎所有的服務(wù)器上。其屬于應(yīng)用服務(wù)器,這篇文章主要介紹了Apache和Nginx實(shí)現(xiàn)虛擬主機(jī)的3種方式,需要的朋友可以參考下2023-11-11
詳解Nginx 動(dòng)態(tài) DNS 反向代理的幾種寫(xiě)法
這篇文章主要介紹了詳解Nginx 動(dòng)態(tài) DNS 反向代理的幾種寫(xiě)法,詳細(xì)的介紹了Nginx 動(dòng)態(tài) DNS 反向代理的4種方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-05-05
Nginx服務(wù)器的反向代理proxy_pass配置方法講解
這篇文章主要介紹了Nginx服務(wù)器的反向代理proxy_pass配置方法講解,包括經(jīng)常被提到的url的/問(wèn)題的相關(guān)說(shuō)明,需要的朋友可以參考下2016-01-01
Nginx 域名SSL證書(shū)配置(網(wǎng)站 http 升級(jí)為 https)
這篇文章主要介紹了Nginx 域名SSL證書(shū)配置(網(wǎng)站 http 升級(jí)為 https),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
關(guān)于nginx+php5.3.8+eclipse3.7工作空間的配置方法
以前用eclipse3.6時(shí)設(shè)置php服務(wù)器時(shí)完全可以在base url欄填寫(xiě)自己工作空間的目錄,然后修改nginx.conf加一個(gè)alias就行了2011-11-11

