成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Nginx + Node + Vue 部署初試(2019-02-18修改)

kel / 2895人閱讀

摘要:它的作用是監(jiān)聽后建立的連接,對(duì)讀寫事件進(jìn)行添加刪除。事件處理模型和的非阻塞模型結(jié)合在一起使用。

趁著爸媽做年夜飯之前,把之前做的筆記貼出來,新的一年到了,祝大家

Nginx + Node + Vue 部署初試

知乎

個(gè)人博客

Github

日常學(xué)習(xí)筆記

Nginx

定義

異步框架的 Web服務(wù)器,也可以用作反向代理,負(fù)載平衡器 , HTTP緩存, 媒體流等的開源軟件。它最初是一個(gè)旨在實(shí)現(xiàn)最高性能和穩(wěn)定性的Web服務(wù)器。除了HTTP服務(wù)器功能外,NGINX還可以用作電子郵件(IMAP,POP3SMTP)的代理服務(wù)器以及HTTP,TCPUDP服務(wù)器的反向代理和負(fù)載平衡器。

特點(diǎn)

更快

高擴(kuò)展性, Nginx的模塊都是嵌入到二進(jìn)制文件中執(zhí)行

高可靠性

低內(nèi)存消耗

單機(jī)支持10萬次的并發(fā)連接

熱部署, master管理進(jìn)行與work工作進(jìn)程分離設(shè)計(jì),因此具備熱部署功能

最自由的BSD許可協(xié)議

功能

靜態(tài)服務(wù)(css , js , html, images, videos

SSLTLS SNI 支持

HTTP/HTTPS, SMTP, IMAP/POP3 反向代理

FastCGI反向代理

負(fù)載均衡

頁面緩存(CDN

支持gzip、expirse

支持 keep-alive 和管道連接

基于 PCRErewrite 重寫模塊

帶寬限制

基于IP 和名稱的虛擬主機(jī)服務(wù)

支持訪問速率、并發(fā)限制

反向代理(適用2000WPV、并發(fā)連接1W/秒),簡(jiǎn)單的負(fù)載均衡和容錯(cuò)

基于客戶端 IP 地址和 HTTP 基本認(rèn)證的訪問控制

Mac 安裝Nginx
// 推薦使用`brew`, 安裝`homebrew`
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
// Homebrew 安裝 Nginx 
brew install nginx
// Mac 下 Nginx的目錄
cd /usr/local/etc/nginx
ll -al
vim nginx.conf

homebrew詳見

Nginx 參數(shù)列表
配置參數(shù)屬性 解釋說明 參數(shù)列表
user 設(shè)置nginx服務(wù)的系統(tǒng)使用用戶 nobody(注意:此處用戶如果比啟動(dòng)Nginx的用戶權(quán)限低,你需要使用當(dāng)前用戶重啟Nginx)
nginx -s stop 關(guān)閉nginx-> nginx 啟動(dòng)-> `ps aux
grep nginx`查看啟動(dòng)用戶
worker_processes 開啟的線程數(shù) 一般與服務(wù)器核數(shù)保持一致
error_log 定位全局錯(cuò)誤日志文件 錯(cuò)誤日志定義等級(jí),[ debug info notice warn error crit ],debug輸出最多,crir輸出最少
pid 指定進(jìn)程id的存儲(chǔ)文件位置
worker_rlimit_nofile 指定一個(gè)nginx進(jìn)程打開的最多文件描述符數(shù)目,受系統(tǒng)進(jìn)程的最大打開文件數(shù)量限制
events 包含Nginx中所有處理連接的設(shè)置
http Nginx http處理的所有核心特性
Event

Nginx是以event(事件)處理模型為基礎(chǔ)的模塊。它為了支持跨平臺(tái),抽象出了event模塊。它支持的event處理類型有:AIO(異步IO),/dev/pollSolarisUnix特有),epollLinux特有),eventportSolaris 10特有),kqueueBSD特有),poll,rtsig(實(shí)時(shí)信號(hào)),select等。
它的作用是監(jiān)聽accept后建立的連接,對(duì)讀寫事件進(jìn)行添加刪除。事件處理模型和Nginx的非阻塞IO模型結(jié)合在一起使用。當(dāng)IO可讀可寫的時(shí)候,相應(yīng)的讀寫事件就會(huì)被喚醒,此時(shí)就會(huì)去處理事件的回調(diào)函數(shù)。

配置參數(shù)屬性 解釋說明 參數(shù)列表
worker_connections 定義每個(gè)進(jìn)程的最大連接數(shù),受系統(tǒng)進(jìn)程的最大打開文件數(shù)量限制 單個(gè)后臺(tái)worker process進(jìn)程的最大并發(fā)鏈接數(shù) (最大連接數(shù)= worker_processes worker_connections)
在反向代理環(huán)境下:
最大連接數(shù) = worker_processes
worker_connections / 4
use 選擇一個(gè)可用的事件的模型(可以在編譯時(shí)指定),Nginx會(huì)自動(dòng)選擇事件的模型 [ epoll /dev/poll poll eventport kqueue select rtsig ]
multi_accept 一個(gè)新連接通知后接受盡可能多的連接 on / off
accept_mutex 開啟或者禁用使用互斥鎖來打開sockets on / off

Event Use支持的事件模型

Events詳見

HTTP

可以嵌套多個(gè)server,配置代理,緩存,日志定義等絕大多數(shù)功能和第三方模塊的配置。

配置參數(shù)屬性 解釋說明 參數(shù)列表
include 主模塊指令,實(shí)現(xiàn)對(duì)配置文件所包含的文件的設(shè)定,可以減少主配置文件的復(fù)雜度,DNS主配置文件中的zonerfc1912,acl基本上都是用include語句
default_type 核心模塊指令 默認(rèn)設(shè)置為二進(jìn)制流,也就是當(dāng)文件類型未定義時(shí)使用這種方式
log_format 日志格式的設(shè)定 日志格式的名稱,可自行設(shè)置,后面引用
access_log 引用日志 引用log_format設(shè)置的名稱
keepalive_timeout 設(shè)置客戶端連接保存活動(dòng)的超時(shí)時(shí)間 0是無限制
sendfile 開啟高效文件傳輸模式 on / off
tcp_nopush 開啟防止網(wǎng)絡(luò)阻塞 on / off
tcp_nodelay 開啟防止網(wǎng)絡(luò)阻塞 on / off
upstream 負(fù)載均衡
server Nginx的server虛擬主機(jī)配置
Upstream

它的作用是實(shí)現(xiàn)在輪詢和客戶端IP之間的后端服務(wù)器負(fù)荷平衡。

配置參數(shù)屬性 解釋說明
輪詢(默認(rèn)) 當(dāng)weight不指定時(shí),各服務(wù)器weight相同,每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動(dòng)剔除。
weight 指定輪詢幾率,weight和訪問比率成正比,用于后端服務(wù)器性能不均的情況
ip_hash 每個(gè)請(qǐng)求按訪問ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問一個(gè)后端服務(wù)器,可以解決session的問題。
fair(第三方) 按后端服務(wù)器的響應(yīng)時(shí)間來分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。
url_hash(第三方) 按訪問url的hash結(jié)果來分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器,后端服務(wù)器為緩存時(shí)比較有效。

weight 默認(rèn)為1.weight越大,負(fù)載的權(quán)重就越大。

Nginx Upstream 狀態(tài)

例如:

upstream news {
    server 127.0.0.1:9527 backup;
    server 127.0.0.1:9527 weight=1 max_fails=2 fail_timeout=3;
    ...
}
配置參數(shù)屬性 解釋說明
backup 預(yù)留的備份服務(wù)器
down 當(dāng)前的server暫時(shí)不參與負(fù)載均衡
fail_timeout 經(jīng)過max_fails 失敗后,服務(wù)暫停的時(shí)間
max_conns 限制最大的接收的連接數(shù)
max_fails 允許請(qǐng)求失敗的次數(shù)

use location:在server中添加

proxy_pass http://127.0.0.1:9527;
// 因?yàn)槲业腁PI接口是這個(gè),such as /api/profile
// location 具體匹配規(guī)則詳見后面
location ~ /api/ {
    proxy_pass http://127.0.0.1:9527;
}
Server

配置虛擬主機(jī)的相關(guān)參數(shù),一個(gè)http中可以有多個(gè)server。

配置參數(shù)屬性 解釋說明 參數(shù)列表
listen 監(jiān)聽端口 http -> 80 / https -> 443
server_name 設(shè)置主機(jī)域名 localhost
charset 設(shè)置訪問的語言編碼
access_log 設(shè)置虛擬主機(jī)訪問日志的存放路徑及日志的格式
location 設(shè)置虛擬主機(jī)的基本信息
Location

配置請(qǐng)求的路由,以及各種頁面的處理情況。

配置參數(shù)屬性 解釋說明 參數(shù)列表
root 設(shè)置虛擬主機(jī)的網(wǎng)站根目錄 Vue項(xiàng)目的根目錄/Users/rainy/Desktop/MyWork/Work/cloudwiz-website/dist
index 設(shè)置虛擬主機(jī)默認(rèn)訪問的網(wǎng)頁 index.html index.htm
proxy 通過不同協(xié)議將請(qǐng)求從NGINX傳遞到代理服務(wù)器

=: 開頭表示精確匹配,如 api 中只匹配根目錄結(jié)尾的請(qǐng)求,后面不能帶任何字符串.

^~ :開頭表示uri以某個(gè)常規(guī)字符串開頭,不是正則匹配.

~: 開頭表示區(qū)分大小寫的正則匹配.

~*: 開頭表示不區(qū)分大小寫的正則匹配.

/ : 通用匹配, 如果沒有其它匹配,任何請(qǐng)求都會(huì)匹配到.

匹配優(yōu)先級(jí)(高到低)

location =

location 完整路徑

location ^~ 路徑

location ~,~* 正則順序

location 部分起始路徑

/

詳見Location配置

Reverse Proxy

當(dāng)NGINX代理請(qǐng)求時(shí),它會(huì)將請(qǐng)求發(fā)送到指定的代理服務(wù)器,獲取響應(yīng)并將其發(fā)送回客戶端??梢允褂弥付ǖ膮f(xié)議將請(qǐng)求代理到HTTP服務(wù)器(另一個(gè)NGINX服務(wù)器或任何其他服務(wù)器)或非HTTP服務(wù)器(可以運(yùn)行使用特定框架(如PHPPython)開發(fā)的應(yīng)用程序)。

location  / some / path /  {
    proxy_pass  http://www.example.com:8080;
    
    proxy_set_header  Host  $ host ; 
    proxy_set_header  X-Real-IP  $ remote_addr ;
    
    // 禁用特定位置的緩沖
    proxy_buffering  off ;
    proxy_buffers  16  4k ; 
    proxy_buffer_size  2k ;
    
    proxy_bind  127.0.0.2 ; // IP地址也可以用變量指定
}

將請(qǐng)求傳遞給非HTTP代理服務(wù)器,**_pass應(yīng)使用相應(yīng)的指令:

fastcgi_pass 將請(qǐng)求傳遞給FastCGI服務(wù)器

uwsgi_pass 將請(qǐng)求傳遞給uwsgi服務(wù)器

scgi_pass 將請(qǐng)求傳遞給SCGI服務(wù)器

memcached_pass 將請(qǐng)求傳遞給memcached服務(wù)器

配置參數(shù)屬性 解釋說明 參數(shù)列
proxy_pass 將請(qǐng)求傳遞給HTTP代理服務(wù)器
proxy_set_header 傳遞請(qǐng)求標(biāo)頭 默認(rèn)情況下,NGINX在代理請(qǐng)求中重新定義兩個(gè)頭字段“Host”和“Connection”,并刪除其值為空字符串的頭字段?!癏ost”設(shè)置為$proxy_host變量,“Connection”設(shè)置為close。
proxy_buffering 負(fù)責(zé)啟用和禁用緩沖 on / off
proxy_buffers 請(qǐng)求分配的緩沖區(qū)的大小和數(shù)量
proxy_buffer_size 代理服務(wù)器的響應(yīng)的第一部分存儲(chǔ)在多帶帶的緩沖區(qū)大小 通常包含一個(gè)相對(duì)較小的響應(yīng)頭,并且可以比其余響應(yīng)的緩沖區(qū)小。
proxy_bind 接受來自特定IP網(wǎng)絡(luò)或IP地址范圍的連接 指定proxy_bind必要網(wǎng)絡(luò)接口的指令和IP地址

詳見Proxy

全局變量Global Variable
變量名 變量含義
$args 請(qǐng)求中的參數(shù)
$content_length HTTP請(qǐng)求信息里的Content-Length
$content_type 請(qǐng)求信息里的Content-Type
$host 請(qǐng)求信息中的Host,如果請(qǐng)求中沒有Host行,則等于設(shè)置的服務(wù)器名
$http_cookie cookie 信息
$http_referer 引用地址
$http_user_agent 客戶端代理信息
$remote_addr 客戶端地址
$remote_port 客戶端端口號(hào)
$remote_user 客戶端用戶名,認(rèn)證用
$request_method 請(qǐng)求的方法,比如GET、POST
$request_uri 完整的原始請(qǐng)求URI(帶參數(shù))
$scheme 請(qǐng)求方案,httphttps
$server_addr 接受請(qǐng)求的服務(wù)器的地址,如果沒有用listen指明服務(wù)器地址,使用這個(gè)變量將發(fā)起一次系統(tǒng)調(diào)用以取得地址(造成資源浪費(fèi));
$server_protocol 請(qǐng)求的協(xié)議版本,HTTP/1.0HTTP/1.1
$uri 請(qǐng)求中的當(dāng)前URI, $uri在請(qǐng)求處理期間 ,值可能會(huì)發(fā)生變化,例如在執(zhí)行內(nèi)部重定向或使用索引文件時(shí)

全局變量詳見Alphabetical index of variables

修改 http server中的配置

啟動(dòng)Nginx

nginx
ps -ef | grep nginx

重新加載修改后的Nginx配置文件

nginx -s reload

多謝小伙伴給提出的問題(詳見評(píng)論區(qū)),reloadresatrt是兩個(gè)不同的概念。

reload
重新加載conf文件,不中斷Nginx服務(wù),conf文件有問題則加載上一次的conf.

restart
會(huì)根據(jù)配置文件,重啟整個(gè)Nginx服務(wù),造成服務(wù)器中斷一段時(shí)間,當(dāng)然會(huì)因?yàn)?b>conf文件問題報(bào)錯(cuò)。

關(guān)閉Nginx

nginx -s stop

因?yàn)槲乙呀?jīng)啟動(dòng)了,所以就重啟一下Nginx即可

Linux安裝Nginx

Linux安裝

常見的Linux命令

使用pstree查看當(dāng)前服務(wù)器啟動(dòng)的進(jìn)程

pstree

查找Nginx的位置

ps -aux | grep nginx

進(jìn)入nginx的目錄

然后配置nginx.conf文件即可

http {    
    upstream add-news {
        server 127.0.0.1:9527;
    }

    server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        root   /Users/rainy/Desktop/MyWork/Work/website/dist;
        index index.html index.htm;

        location / {
            # root   html;
            try_files $uri $uri/ @router;
            index  index.html index.htm;
        }

        location @router {
            rewrite ^.*$ /index.html last;
        }

        location ~ /api/ {
            proxy_pass http://127.0.0.1:9527;
        }
                # 我的圖片存放在本地服務(wù)器上的路徑           
               
                                           
                       
                 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40313.html

相關(guān)文章

  • [手把手系列之]Docker 部署 vue 項(xiàng)目

    摘要:部署項(xiàng)目寫在前面作為輕量級(jí)虛擬化技術(shù),擁有持續(xù)集成版本控制可移植性隔離性和安全性等優(yōu)勢(shì)。容器可以被創(chuàng)建啟動(dòng)停止刪除暫停等。重新運(yùn)行應(yīng)用容器直接基于鏡像來啟動(dòng)容器,運(yùn)行命令將宿主機(jī)的掛載到容器的目錄上。Docker 部署 vue 項(xiàng)目 1.寫在前面: Docker 作為輕量級(jí)虛擬化技術(shù),擁有持續(xù)集成、版本控制、可移植性、隔離性和安全性等優(yōu)勢(shì)。本文使用Docker來部署一個(gè)vue的前端應(yīng)用,并盡...

    VPointer 評(píng)論0 收藏0
  • 利用百度云發(fā)布node應(yīng)用:初試

    摘要:一個(gè)百度開發(fā)者賬號(hào),而且里面應(yīng)該要有錢哦。好了,應(yīng)該就是上面那幾個(gè),下面我們開始,一在百度開發(fā)云上創(chuàng)建應(yīng)用對(duì)了應(yīng)該去哪里創(chuàng)建呢,走你。訪問配置斷線重連我們可以建一個(gè)這樣的配置,應(yīng)用啟動(dòng)時(shí)初始化。好了,現(xiàn)在我們可以體驗(yàn)百度云的樂趣了。 準(zhǔn)備工作 一個(gè)基于nodejs的應(yīng)用。 一個(gè)百度開發(fā)者賬號(hào),而且里面應(yīng)該要有錢哦。 代碼上傳管理工具git或者svn。 好了,應(yīng)該就是上面那幾個(gè),下面我...

    qqlcbb 評(píng)論0 收藏0
  • (小白指南)在 Linux 服務(wù)器上安裝 Nodejs、Nginx 以及部署 Web 應(yīng)用

    摘要:首先,的命令和并不能在全局使用。文章有意將瀏覽器不能訪問服務(wù)器的兩個(gè)問題寫出來,是因?yàn)樽髡咴谂挪閱栴}的時(shí)候,發(fā)現(xiàn)在服務(wù)器直接訪問的頁面,能很好地檢查排除問題在百度尋找問題答案的時(shí)候,發(fā)現(xiàn)這種做法也得到了不少人的肯定。 前段時(shí)間要把項(xiàng)目部署到服務(wù)器,期間踩了不少的坑。故寫下這篇文章,從零開始把自己部署的過程都記錄下來,希望能給其他像我一樣的小白一點(diǎn)幫助。如果有疏漏的地方,請(qǐng)各位客官指出,...

    glumes 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

kel

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<