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

資訊專欄INFORMATION COLUMN

nginx的安裝和簡單使用(一)

GitChat / 2019人閱讀

摘要:是一款是由俄羅斯的程序設(shè)計師所開發(fā)高性能的和反向代理服務(wù)器,也是一個代理服務(wù)器。本文主要是介紹了一些基礎(chǔ)的的使用,環(huán)境是。指令是起到了一個路由的效果,只能在塊級中使用,對于各路徑和結(jié)果進(jìn)行響應(yīng)的設(shè)置。

nginx
Nginx("engine x")是一款是由俄羅斯的程序設(shè)計師Igor Sysoev所開發(fā)高性能的 Web和 反向代理 服務(wù)器,也是一個 IMAP/POP3/SMTP 代理服務(wù)器。在高連接并發(fā)的情況下,Nginx是Apache服務(wù)器不錯的替代品。

nginx的出現(xiàn)可以說對于那些在windows上使用IIS,linux上使用apache2的人提供了更多的選擇,使用nginx的情況主要是滿足了以下的一些功能:

本地代理,對于前端開發(fā)人員而言,需要把很多的請求代理到本地,本質(zhì)上還是在本地使用nginx起了web服務(wù),進(jìn)而完成一些重定向工作;

web服務(wù)器,nginx可以在服務(wù)器上承擔(dān)整個web服務(wù)的分發(fā)和響應(yīng),其中反向代理、負(fù)載均衡是它很重要的功能。

本文主要是介紹了一些基礎(chǔ)的nginx的使用,環(huán)境是mac10.13.2。

安裝 鏡像brew

在mac上可以使用兩種方法來進(jìn)行:

brew命令安裝

nginx源碼編譯安裝

本文沒有嘗試./configure make make install的方式,不過可以看看這個安裝NGINX;本文只是嘗試使用brew來進(jìn)行安裝。

homebrew主要分兩部分:git repo(位于GitHub)和二進(jìn)制bottles(位于bintray),這兩者在國內(nèi)訪問都不太順暢??梢蕴鎿Q成國內(nèi)的鏡像,

替換git源:

替換brew.git:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

替換homebrew-core.git:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git

替換二進(jìn)制bottles源[bash和zsh需要區(qū)分啟動文件]:

//對于bash用戶:
echo "export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles" >> ~/.bash_profile
source ~/.bash_profile

//對于zsh用戶
echo "export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles" >> ~/.zshrc
source ~/.zshrc

如此便可以執(zhí)行安裝:

brew install nginx

執(zhí)行完成的話那么就可以查看結(jié)果如何:nginx -h或者nginx -v看看結(jié)果

nginx -h   
nginx version: nginx/1.12.2
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/Cellar/nginx/1.12.2_1/)
  -c filename   : set configuration file (default: /usr/local/etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file

nginx -v
nginx version: nginx/1.12.2
配置文件
The way nginx and its modules work is determined in the configuration file. By default, the configuration file is named nginx.conf and placed in the directory /usr/local/nginx/conf, /etc/nginx, or /usr/local/etc/nginx

nginx的命令比較的少,大部分配置都是在配置文件當(dāng)做,配置文件的路徑/usr/local/nginx/conf, /etc/nginx, or /usr/local/etc/nginx之中,#可以作為注釋符來注釋掉改行;

下面對這里的部分配置內(nèi)容做個整體的了解和分類:

從形式上分類:簡單指令和塊級指令集
配置文件中主要是存在一些simple directives and block directives;可以認(rèn)為是簡單的指令和塊級指令集,簡單指令就是:

worker_processes  1;

塊級指令集就是一個塊級指令名加上{},里面包含很多簡單指令集,塊級指令集可以嵌套;

events {
    worker_connections  1024;
}

從功能模塊分類:主模塊、事件模塊、其他基本模塊

主模塊是控制nginx的一些基本指令集合,包含了類似上述的簡單指令worker_processes 1;在內(nèi)的一些基本指令;

事件模塊設(shè)置Nginx處理連接請求;

其他基本模塊包括常用地http模塊;

先看一個初始狀態(tài)的配置文件:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  "$remote_addr - $remote_user [$time_local] "$request" "
    #                  "$status $body_bytes_sent "$http_referer" "
    #                  ""$http_user_agent" "$http_x_forwarded_for"";

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ .php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache"s document root
        # concurs with nginx"s one
        #
        #location ~ /.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    include servers/*;
}

開始分析配置文件中的一些指令:

簡單指令【本文例舉了主模塊的部分指令】

在默認(rèn)的生成的配置文件的頭部,有這么幾行簡單的指令,雖然大部分是被注釋掉的,但是這里簡單的說下其中的意義,這些簡單指令都屬于主模塊的指令,用于控制基本的nginx的功能:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

user這個指令名代表的是執(zhí)行worker processes的本機(jī)用戶,默認(rèn)是nobody,那么如果需要讀寫一些roort或者其他用戶所有權(quán)的文件時,如果當(dāng)前配置文件填寫的user這個指令名對應(yīng)的用戶又不具有r+w+x的權(quán)限時,就會出現(xiàn)一些權(quán)限問題;

語法: user user [group]
缺省值: nobody nobody
指定Nginx Worker進(jìn)程運(yùn)行用戶,默認(rèn)是nobody帳號。

worker_processes這個指令名是指配置worker_processes的數(shù)量,nginx啟動時會有一個主進(jìn)程和若干的工作進(jìn)程,這個指令就是來規(guī)定工作進(jìn)程的數(shù)量的,對應(yīng)的是一個數(shù)值

nginx has one master process and several worker processes. The main purpose of the master process is to read and evaluate configuration, and maintain worker processes. Worker processes do actual processing of requests.  
語法: worker_processes number
缺省值: 1

error_log這個指令是來記錄nginx的運(yùn)行出行的一些異常,可以指定異常級別

語法: error_log file [ debug | info | notice | warn | error | crit ]
缺省值: ${prefix}/logs/error.log

pid這個是用來指定運(yùn)行nginx的進(jìn)程ID的;

語法: pid file

塊級指令集(本文例舉了http模塊的部分功能)

由于很多模塊都是塊級指令集的形式的存在,本文拿出來http模塊的部分指令來進(jìn)行簡單的解析;后面的第二篇會考慮把一些實用的、常用的、很有用的功能進(jìn)行進(jìn)一步講解。http核心模塊的指令集合、http核心模塊的指令集合

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  "$remote_addr - $remote_user [$time_local] "$request" "
    #                  "$status $body_bytes_sent "$http_referer" "
    #                  ""$http_user_agent" "$http_x_forwarded_for"";

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ .php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache"s document root
        # concurs with nginx"s one
        #
        #location ~ /.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    
}

include指令是主模塊的指令,可以用在http的塊級指令集中,是防止單個配置文件過大,可以直接引用其他的配置文件,而例子中的 mime.types是一個文件,里面主要是比較全面的MIME信息,能包含文本、圖像、音頻、視頻以及其他應(yīng)用程序?qū)S玫臄?shù)據(jù)和文件后綴名的映射

sendfile指令是指是否開啟linux2+的一個sendfile的功能,sendfile詳解

server是http模塊的重要指令,其響應(yīng)http鏈接的關(guān)鍵,一般而言會包含listen server_name location這三部分。

localtion指令是起到了一個路由的效果,只能在server塊級中使用,對于各路徑和結(jié)果進(jìn)行響應(yīng)的設(shè)置。

至于https和一寫其他的指令將會留到下文進(jìn)行詳細(xì)的學(xué)習(xí)分析。其中可以使用的指令和變量如下:

http核心模塊的指令

可在http核心模塊的塊級指令集中使用的全局變量

運(yùn)行

查看官方的文檔NGINX的文檔,可以通過nginx的可執(zhí)行文件來啟動nginx服務(wù);

所以要啟動nginx,可以這樣:

$ nginx // 一般安裝的時候都會放到系統(tǒng)的啟動文件夾里面[環(huán)境變量] /usr/local/bin/nginx

在啟動之后需要使用nginx -s signal來進(jìn)行操作,其中signal可以使用以下一些指令:

stop — fast shutdown

quit — graceful shutdown

reload — reloading the configuration file

reopen — reopening the log files

如果要停止服務(wù),可以這樣(完成當(dāng)前的所有請求后停止,和stop的區(qū)別是stop會立即停止nginx):

$ nginx -s quit

如果修改了配置文件,要重新生效,可以這樣:

$ nginx -s reload

一個nginx的中文翻譯網(wǎng)站

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

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

相關(guān)文章

  • Nginx安裝

    摘要:的模塊使用來解析正則表達(dá)式,所以需要在上安裝庫,是使用開發(fā)的一個二次開發(fā)庫。命令安裝庫提供了很多種壓縮和解壓縮的方式,使用對包的內(nèi)容進(jìn)行,所以需要在上安裝庫。確保系統(tǒng)已經(jīng)安裝了,如果沒有安裝,執(zhí)行安裝。這些需求也是作為一個前端所關(guān)心的。 前言 身為前端,本來是拒絕使用nginx的,想著nodeJs能夠大一統(tǒng)。不過在反向請求代理,二級域名配置等方面還是比不上nginx。最關(guān)鍵的一點就是,...

    jimhs 評論0 收藏0
  • Linux安裝Nginx正確方式

    摘要:使用系統(tǒng)二進(jìn)制源方式安裝在系或者系這種方式最簡單的,最快捷的方式,但是不是最好的方式,下面我們來說這種主要問題。我看見網(wǎng)上大多數(shù)教程,都是將編譯依賴直接裝在這種方式并不好。安裝后,可以使用配置文件中的指令更改名稱。 本文出處https://shenyifengtk.github.io如有轉(zhuǎn)載,請說明出處 如果你和我一樣,作為一個苦逼的Java后臺除了實現(xiàn)實現(xiàn)一大堆項目功能,還要兼顧項目...

    freecode 評論0 收藏0
  • Nginx初探究:安裝簡單使用

    摘要:當(dāng)網(wǎng)站的訪問量達(dá)到一定程度后,單臺服務(wù)器不能滿足用戶的請求時,需要用多臺服務(wù)器集群可以使用做反向代理。兩個域名是和服務(wù)器使用虛擬機(jī)實現(xiàn)反向代理第一步安裝兩個,分別運(yùn)行在和端口。 showImg(http://ou3np1yz4.bkt.clouddn.com/nginx_logo1.jpg); 在學(xué)習(xí)淘淘商城的過程中接觸到了nginx,今天就把使用它的過程記錄下來,作為留存。 一、什么...

    ckllj 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<