前言
-
什么是nginx?
Nginx是一款高性能的http 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。
由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開(kāi)發(fā),官方測(cè)試nginx能夠支支撐5萬(wàn)并發(fā)鏈接,
并且cpu、內(nèi)存等資源消耗卻非常低,運(yùn)行非常穩(wěn)定。 -
應(yīng)用場(chǎng)景
http服務(wù)器。Nginx是一個(gè)http服務(wù)可以獨(dú)立提供http服務(wù)??梢宰鼍W(wǎng)頁(yè)靜態(tài)服務(wù)器。
虛擬主機(jī)。可以實(shí)現(xiàn)在一臺(tái)服務(wù)器虛擬出多個(gè)網(wǎng)站。例如個(gè)人網(wǎng)站使用的虛擬主機(jī)。
反向代理,負(fù)載均衡。當(dāng)網(wǎng)站的訪問(wèn)量達(dá)到一定程度后,單臺(tái)服務(wù)器不能滿足用戶的請(qǐng)求時(shí),需要用多臺(tái)服務(wù)器集群可以使用nginx做反向代理。并且多臺(tái)服務(wù)器可以平均分擔(dān)負(fù)載,不會(huì)因?yàn)槟撑_(tái)服務(wù)器負(fù)載高宕機(jī)而某臺(tái)服務(wù)器閑置的情況。
一、下載安裝
- window直接下載nginx使用
- Mac 使用brew安裝
二、使用
windows 使用
開(kāi)啟nginx
直接把頁(yè)面資源放置html文件夾內(nèi),然后雙擊nginx.exe或者使用start nginx
命令開(kāi)啟
關(guān)閉nginx
執(zhí)行下面命令
查看windows任務(wù)管理器下Nginx的進(jìn)程命令:tasklist /fi "imagename eq nginx.exe"
然后執(zhí)行taskkill /f /t /im nginx.exe
退出進(jìn)程
或者直接在任務(wù)管理器來(lái)關(guān)閉(右鍵,選擇退出)
查看端口號(hào)使用情況
tasklist | findstr "進(jìn)程id號(hào)"
腳本開(kāi)始Nginx服務(wù)
@echo off
rem 如果啟動(dòng)前已經(jīng)啟動(dòng)nginx并記錄下pid文件,會(huì)kill指定進(jìn)程
nginx.exe -s stop
rem 測(cè)試配置文件語(yǔ)法正確性
nginx.exe -t -c conf/nginx.conf
rem 顯示版本信息
nginx.exe -v
rem 按照指定配置去啟動(dòng)nginx
nginx.exe -c conf/nginx.conf
Mac使用
- 安裝
brew install nginx
- 查看 nginx 版本
nginx -v
- 查看nginx安裝信息
brew info nginx
打開(kāi)資源目錄文件
open /opt/homebrew/var/www
2然后更新對(duì)應(yīng)文件資源內(nèi)容
開(kāi)啟nginx
nginx
訪問(wèn) localhos:8080
關(guān)閉nginx
nginx -s stop
or
// 此命令在修改配置后執(zhí)行不生效
sudo brew services stop nginx
重新加載nginx
nginx -s reload
查看Nginx配置文件
vim /opt/homebrew/etc/nginx/nginx.conf
也可open /opt/homebrew/etc/nginx/
打開(kāi)文件,使用其他軟件打開(kāi)文件也可以
三、常用配置(持續(xù)更新)
1、設(shè)置端口號(hào)和名稱
server {
# 設(shè)置端口號(hào),一般設(shè)置四位數(shù)
listen 8000;
# 設(shè)置服務(wù)名稱為 localhost 訪問(wèn)地址為 localhost:8000 或者是 本機(jī)IP:8000
# server_name localhost;
# 設(shè)置一些域名、別名等
server_name somename alias another.alias;
...
}
2、設(shè)置指向資源路徑
可根據(jù)實(shí)際需求配置對(duì)應(yīng)文件路徑
# 指向 html 目錄
server {
...
location / {
root html;
...
}
}
# 指向 index/html 目錄
server {
...
location / {
root index/html;
...
}
}
3、使用 try_files 解決無(wú)法找到文件情況(404)
server {
...
location / {
root /html
# try_files 將嘗試你列出的文件并設(shè)置內(nèi)部文件指向
# 即 try_files 依次檢測(cè) /index.html , /index.htm , /$uri 是否存在,若不存在則重定向到@router
try_files $uri $uri/ @router;
index index.html index.htm;
gzip_static on;
}
# 對(duì)應(yīng)上面的 @router ,主要原因是路由的路徑資源并不是一個(gè)真實(shí)的路徑,所以無(wú)法找到具體的文件
# 因此需要rewrite到index.html(即根目錄html)中,然后交給路由在處理請(qǐng)求資源
location @router {
rewrite ^.*$ /html/index.html last;
}
}
4、接口代理轉(zhuǎn)發(fā)
server {
...
location /api {
# 如果實(shí)際接口沒(méi)有當(dāng)前代理前綴,需要重寫路徑
# add_header backendIP $upstream_addr; # 設(shè)置響應(yīng)頭顯示轉(zhuǎn)發(fā)實(shí)際地址
# add_header backendCode $upstream_status; # 設(shè)置響應(yīng)頭顯示轉(zhuǎn)發(fā)實(shí)際狀態(tài)碼
# rewrite ^/api/?(.*)$ /$1 break;
# 可根據(jù)實(shí)際情況設(shè)置代理請(qǐng)求頭
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://170.0.0.0:1757; # 轉(zhuǎn)發(fā)地址
# proxy_redirect http://170.0.0.0:1757 ;# 代理重定向
}
}
5、設(shè)置對(duì)應(yīng)錯(cuò)誤碼訪問(wèn)路徑
server {
...
# error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
6、開(kāi)啟壓縮模式
server {
...
location / {
# root html;
gzip_static on;
}
}
7、開(kāi)啟多個(gè)服務(wù)
復(fù)制多個(gè)server,配置不同端口號(hào)等即可
server {
listen 8001;
server_name localhost;
...
location / {
...
}
}
server {
listen 8002;
server_name localhost;
...
location / {
...
}
}
8、負(fù)載均衡配置
如果一個(gè)服務(wù)由多個(gè)服務(wù)器提供,需要把負(fù)載分配到不同的服務(wù)器處理,需要負(fù)載均衡。即代理配置多臺(tái)服務(wù)器文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-759612.html
upstream tomcat {
# 可以根據(jù)服務(wù)器的實(shí)際情況調(diào)整服務(wù)器權(quán)重。權(quán)重越高分配的請(qǐng)求越多,權(quán)重越低,請(qǐng)求越少。默認(rèn)是都是1
server 172.0.0.0:8001 weight=2;
server 172.0.0.0:8002;
server 172.0.0.0:8003;
}
server {
listen 8001;
server_name localhost;
...
location / {
proxy_pass http://tomcat; # 轉(zhuǎn)發(fā)地址
...
}
}
9、上傳文件及上傳時(shí)間配置
在http位置設(shè)置以下即可文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-759612.html
client_max_body_size 50m; // 限制文件大小
client_header_timeout 5m; // 時(shí)間 5分鐘
client_body_timeout 5m; 時(shí)間 5分鐘
proxy_connect_timeout 600s; // 時(shí)間 600秒
proxy_read_timeout 10m; // 時(shí)間 10分鐘
proxy_send_timeout 10m; // 時(shí)間 10分鐘
keepalive_timeout 65;
10、配置目錄顯示
location / {
autoindex on;
...
}
總結(jié)
# nginx
官方下載地址:[url](http://nginx.org/en/download.html)
[參考](https://cloud.tencent.com/developer/article/1333800)
nginx代理
查看Nginx的版本號(hào):`nginx -V`
啟動(dòng)Nginx:`start nginx`
快速停止或關(guān)閉Nginx:`nginx -s stop`
正常停止或關(guān)閉Nginx:`nginx -s quit`
配置文件修改重裝載命令:`nginx -s reload`
查看端口號(hào)占用情況:`tasklist | findstr "進(jìn)程id號(hào)"`
查看windows任務(wù)管理器下Nginx的進(jìn)程命令:`tasklist /fi "imagename eq nginx.exe"`
然后執(zhí)行 `taskkill /f /t /im nginx.exe`退出進(jìn)程
到了這里,關(guān)于Nginx在Window與Mac環(huán)境的使用及配置詳情的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!