国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

GitChat / 2010人閱讀

摘要:是一款是由俄羅斯的程序設計師所開發高性能的和反向代理服務器,也是一個代理服務器。本文主要是介紹了一些基礎的的使用,環境是。指令是起到了一個路由的效果,只能在塊級中使用,對于各路徑和結果進行響應的設置。

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

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

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

web服務器,nginx可以在服務器上承擔整個web服務的分發和響應,其中反向代理、負載均衡是它很重要的功能。

本文主要是介紹了一些基礎的nginx的使用,環境是mac10.13.2。

安裝 鏡像brew

在mac上可以使用兩種方法來進行:

brew命令安裝

nginx源碼編譯安裝

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

homebrew主要分兩部分:git repo(位于GitHub)和二進制bottles(位于bintray),這兩者在國內訪問都不太順暢。可以替換成國內的鏡像,

替換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

替換二進制bottles源[bash和zsh需要區分啟動文件]:

//對于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

如此便可以執行安裝:

brew install nginx

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

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的命令比較的少,大部分配置都是在配置文件當做,配置文件的路徑/usr/local/nginx/conf, /etc/nginx, or /usr/local/etc/nginx之中,#可以作為注釋符來注釋掉改行;

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

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

worker_processes  1;

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

events {
    worker_connections  1024;
}

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

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

事件模塊設置Nginx處理連接請求;

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

先看一個初始狀態的配置文件:

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

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

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

在默認的生成的配置文件的頭部,有這么幾行簡單的指令,雖然大部分是被注釋掉的,但是這里簡單的說下其中的意義,這些簡單指令都屬于主模塊的指令,用于控制基本的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這個指令名代表的是執行worker processes的本機用戶,默認是nobody,那么如果需要讀寫一些roort或者其他用戶所有權的文件時,如果當前配置文件填寫的user這個指令名對應的用戶又不具有r+w+x的權限時,就會出現一些權限問題;

語法: user user [group]
缺省值: nobody nobody
指定Nginx Worker進程運行用戶,默認是nobody帳號。

worker_processes這個指令名是指配置worker_processes的數量,nginx啟動時會有一個主進程和若干的工作進程,這個指令就是來規定工作進程的數量的,對應的是一個數值

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的運行出行的一些異常,可以指定異常級別

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

pid這個是用來指定運行nginx的進程ID的;

語法: pid file

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

由于很多模塊都是塊級指令集的形式的存在,本文拿出來http模塊的部分指令來進行簡單的解析;后面的第二篇會考慮把一些實用的、常用的、很有用的功能進行進一步講解。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信息,能包含文本、圖像、音頻、視頻以及其他應用程序專用的數據和文件后綴名的映射

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

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

localtion指令是起到了一個路由的效果,只能在server塊級中使用,對于各路徑和結果進行響應的設置。

至于https和一寫其他的指令將會留到下文進行詳細的學習分析。其中可以使用的指令和變量如下:

http核心模塊的指令

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

運行

查看官方的文檔NGINX的文檔,可以通過nginx的可執行文件來啟動nginx服務;

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

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

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

stop — fast shutdown

quit — graceful shutdown

reload — reloading the configuration file

reopen — reopening the log files

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

$ nginx -s quit

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

$ nginx -s reload

一個nginx的中文翻譯網站

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39801.html

相關文章

  • Nginx安裝

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

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

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

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

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

    ckllj 評論0 收藏0

發表評論

0條評論

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