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

資訊專欄INFORMATION COLUMN

nginx系列2----從源碼安裝nginx和echo-nginx-module模塊

nihao / 2692人閱讀

摘要:下面的參數(shù)是根據(jù)需要在壓縮或解壓檔案時可選的。備注了解過程省略這里添加了模塊生成文件使用系統(tǒng)庫沒有用到庫使用系統(tǒng)庫這些路徑是要了解的這是配置文件

資源1: 官網(wǎng): http://nginx.org
資源2: 官方學(xué)習(xí)資源, ????wiki,???? nginx安裝之wiki介紹
資源3: 編譯選項列表
資源4: nginx源碼下載列表,當(dāng)前Stable版本是nginx-1.14.0,
資源5: 官方新手入門
資源6: 內(nèi)置變量大全(重點掌握),????內(nèi)置指令大全(重點掌握),????重定向(重點掌握)????核心功能(重點掌握)

安裝資源: nginx源碼地址(版本1.11.2):http://nginx.org/download/ngi...
安裝資源: echo模塊安裝地址(版本):https://github.com/openresty/...
安裝參考: echo模塊安裝方法

安裝時間:2018-09-12

一:從源碼安裝nginx和echo-nginx-module模塊(推薦) 01: 準(zhǔn)備nginx和echo-nginx-module模塊源碼
nginx版本為1.11.2,echo-nginx-module版本為0.61
vagrant@qianjin:~$ wget http://nginx.org/download/nginx-1.11.2.tar.gz
vagrant@qianjin:~$ wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz
vagrant@qianjin:~$ ls //查看一下,壓縮包在當(dāng)前目錄下
code  Dockerfile  nginx-1.11.2.tar.gz  v0.61.tar.gz
vagrant@qianjin:~$ tar -zxvf nginx-1.11.2.tar.gz
vagrant@qianjin:~$ tar -zxvf v0.61.tar.gz
02: 安裝
vagrant@qianjin:~$ cd  nginx-1.11.2 //到解壓后的nginx目錄中
vagrant@qianjin:~/nginx-1.11.2$ ./configure --prefix=/opt/nginx 
      --add-module=/home/vagrant/echo-nginx-module-0.61
// –prefix為nginx安裝位置,–add-module為需要添加的模塊路徑,這里添加解壓后echo-nginx-module路徑
// 執(zhí)行配置后,目錄下多了 Makefile文件和 objs目錄
vagrant@qianjin:~/nginx-1.11.2$ make -j2

//報錯:
src/core/ngx_murmurhash.c: In function ‘ngx_murmur_hash2’:
src/core/ngx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
         h ^= data[2] << 16;
         ~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: note: here
     case 2:
     ^~~~
src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
         h ^= data[1] << 8;
         ~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: note: here
     case 1:
     ^~~~
原因,是將警告當(dāng)成了錯誤處理,打開/home/vagrant/nginx-1.11.2/objs/Makefile,
CFLAGS =  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g (去年-Werror)
再重新make -j2
-Wall 表示打開gcc的所有警告
-Werror,它要求gcc將所有的警告當(dāng)成錯誤進行處理

vagrant@qianjin:~/nginx-1.11.2$ make -j2
vagrant@qianjin:~/nginx-1.11.2$ make install
03: 測試
vagrant@qianjin:~$ sudo /opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
// -c 指定配置文件的路徑sudo /opt/nginx/sbin/nginx -h了解更多用法
在瀏覽器中輸入 http://192.168.10.10/,如果出現(xiàn)Welcome to nginx!頁面表示安裝成功
04: 配置 建立鏈接
sudo ln -s /opt/nginx/sbin/nginx /usr/bin/nginx 
// 建立軟鏈接,/usr/local/bin包含于$PATH當(dāng)中,不需要額外的設(shè)置環(huán)境變量了,可以在任何目錄運行nginx命令
// 現(xiàn)在可以sudo nginx啟動,用sudo nginx -s stop等
開機啟動

編譯安裝需要自己進行設(shè)置方可自動啟動

# 設(shè)置nginx自啟動,在/lib/systemd/system/ 目錄下創(chuàng)建一個服務(wù)文件
vim /lib/systemd/system/nginx.service
內(nèi)容如下:

[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop

[Install]
WantedBy=multi-user.target
文件說明
[Unit]部分
Description:描述服務(wù)
After:依賴,當(dāng)依賴的服務(wù)啟動之后再啟動自定義的服務(wù)

[Service]部分
Type=forking是后臺運行的形式
ExecStart為服務(wù)的具體運行命令(需要根據(jù)路徑適配)
ExecReload為重啟命令(需要根據(jù)路徑適配)
ExecStop為停止命令(需要根據(jù)路徑適配)
PrivateTmp=True表示給服務(wù)分配獨立的臨時空間
注意:啟動、重啟、停止命令全部要求使用絕對路徑

[Install]部分
服務(wù)安裝的相關(guān)設(shè)置,可設(shè)置為多用戶

# 設(shè)置了自啟動后,任意目錄下執(zhí)行
systemctl enable nginx.service
# 啟動nginx服務(wù)
systemctl start nginx.service
# 設(shè)置開機自動啟動
systemctl enable nginx.service
# 停止開機自動啟動
systemctl disable nginx.service
# 查看狀態(tài)
systemctl status nginx.service
# 重啟服務(wù)
systemctl restart nginx.service
# 查看所有服務(wù)
systemctl list-units --type=service
// 我還是比較喜歡用下面的方式
vagrant@qianjin:~$ sudo service nginx stop
vagrant@qianjin:~$ sudo service nginx star
// 實際下面敲的代碼少
vagrant@qianjin:~$ sudo nginx #啟動
vagrant@qianjin:~$ sudo nginx -s stop 停止
最簡單的nginx配置文件(只支持靜態(tài)html)
events{
}
http {
    server {
        server_name  symfony.cc;
        location / {
            root   /var/www/study/symfony;
            index  index.html index.htm;
       }
    }
}
最簡單的nginx配置文件(支持靜態(tài)html和php)
前提:在hosts中定義了168.192.10.10 symfony.cc
events{
}
http {
    server {
        server_name  symfony.cc;
        root /var/www/study/symfony;
        location / {
            index index.php index.html index.htm;
       }
       location ~ .php$ {
             # 在/etc/php/7.0/fpm/pool.d/www.conf的listen值與fastcgi_pass的值要相對應(yīng)
             # ;listen = /run/php/php7.0-fpm.sock
             # listen = 127.0.0.1:9000       
            fastcgi_pass 127.0.0.1:9000;     
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
       }
     }
}
//適合用來檢查nginx是否正常,當(dāng)配置出問題是,就用此配置,再在這個基礎(chǔ)上修改,一定要明白的是,nginx只是個web服務(wù)器,碰到php文件,它也不解析,它交給php-fpm來處理,php-fpm處理完的數(shù)據(jù)再交給nginx
了解工作進程worker_process

配置位置在:在最外面
語法: worker_processes 4;
值:默認(rèn)為1,一般設(shè)為cpu數(shù)量x2
說明:當(dāng)設(shè)為4時,1個主進程master process,4個工作進程worker process,master process的pid會動態(tài)記錄在/opt/nginx/logs/nginx.pid文件中,其余4個工作進程的pid值是遞加1,如主進程的pid為3082,那么別外幾個工作進程的pid分別為3083,3084,3085,3086,主進程負(fù)責(zé)監(jiān)控端口,協(xié)調(diào)工作進程的工作狀態(tài),分配工作任務(wù);工作進程負(fù)責(zé)進行任務(wù)處理

vagrant@qianjin:~$ ps -ef|grep nginx
root      3082     1  0 03:56 ?        00:00:00 nginx: master process nginx -c /opt/nginx/conf/2018091201.conf
nobody    3083  3082  0 03:56 ?        00:00:00 nginx: worker process
nobody    3084  3082  0 03:56 ?        00:00:00 nginx: worker process
nobody    3085  3082  0 03:56 ?        00:00:00 nginx: worker process
nobody    3086  3082  0 03:56 ?        00:00:00 nginx: worker process
vagrant   3089  2311  0 03:57 pts/0    00:00:00 grep --color=auto nginx
二:測試echo模塊(重點)

作用范圍:location塊和location if說句中
例子

events{
} 
http {
    server {
        server_name  localhost;
        root /var/www/study/symfony;
        location / {
            index index.php index.html index.htm;
       }
       location ~ .php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
            echo "hello,word";
            echo Changsha; 
            echo $document_root;
            echo_flush;
       }
     }
}

瀏覽器中輸入http://192.168.10.10/a.php, 網(wǎng)頁中原來的內(nèi)容不顯示了,只

hello,word
Changsha
/var/www/study/symfony

使用多帶帶的location來放echo語句,不影響網(wǎng)頁

events{
}
http {
    server {
        server_name  localhost;
        root /var/www/study/symfony;
        location / {
            index index.php index.html index.htm;
        }
        location /wang {
            echo "hello,word";
            echo -n Changsha; # -n表示這個不換行,它緊接在echo后面,其它地方忽略
            echo $document_root;
            echo_flush;
        }    
        location ~ .php$ {
            fastcgi_pass 127.0.0.1:9000;      
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

輸入 http://192.168.10.10/wang就會...

hello,word
Changsha/var/www/study/symfony

例3:

        location /chen {
            echo_duplicate 1 $echo_client_request_headers;
            echo "
";
            echo_read_request_body;
            echo $request_body;
        }

輸出

GET /chen HTTP/1.1
Host: 192.168.10.10
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9

備注1: tar參數(shù)說明(熟悉的略過)

-c: 建立壓縮檔案
-x:解壓(解壓時要用到這個)
-t:查看內(nèi)容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件
這5個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。
下面的參數(shù)是根據(jù)需要在壓縮或解壓檔案時可選的。
-z:有g(shù)zip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過程
-O:將文件解開到標(biāo)準(zhǔn)輸出
下面的參數(shù)-f是必須的
-f: 使用檔案名字,切記,這個參數(shù)是最后一個參數(shù),后面只能接檔案名。

備注2:了解configure過程

checking for OS
 + Linux 4.15.0-32-generic x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 7.3.0 (Ubuntu 7.3.0-16ubuntu3) 
checking for gcc -pipe switch ... found
省略
checking for getaddrinfo() ... found
configuring additional modules
adding module in /home/vagrant/echo-nginx-module-0.61 //這里添加了 echo模塊
 + ngx_http_echo_module was configured
checking for PCRE library ... found
checking for PCRE JIT support ... found
checking for zlib library ... found
creating objs/Makefile //生成文件Makefile

Configuration summary
  + using system PCRE library 使用系統(tǒng)PCRE庫
  + OpenSSL library is not used 沒有用到OpenSSL庫
  + using system zlib library 使用系統(tǒng)zlib庫
  // 這些路徑是要了解的
  nginx path prefix: "/opt/nginx"
  nginx binary file: "/opt/nginx/sbin/nginx"
  nginx modules path: "/opt/nginx/modules"
  nginx configuration prefix: "/opt/nginx/conf"
  nginx configuration file: "/opt/nginx/conf/nginx.conf"  這是配置文件
  nginx pid file: "/opt/nginx/logs/nginx.pid"
  nginx error log file: "/opt/nginx/logs/error.log"
  nginx http access log file: "/opt/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

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

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

相關(guān)文章

  • nginx系列2----源碼安裝nginxecho-nginx-module模塊

    摘要:下面的參數(shù)是根據(jù)需要在壓縮或解壓檔案時可選的。備注了解過程省略這里添加了模塊生成文件使用系統(tǒng)庫沒有用到庫使用系統(tǒng)庫這些路徑是要了解的這是配置文件 資源1: 官網(wǎng): http://nginx.org資源2: 官方學(xué)習(xí)資源, ????wiki,???? nginx安裝之wiki介紹資源3: 編譯選項列表資源4: nginx源碼下載列表,當(dāng)前Stable版本是nginx-1.14.0,資源5...

    mylxsw 評論0 收藏0
  • Nginx基礎(chǔ)

    摘要:安裝及相關(guān)基礎(chǔ)插件將以下所需要的支持包上傳至服務(wù)器中程序源代碼信息輸出緩存清除負(fù)載均衡模塊將所有的開發(fā)包解壓縮到目錄中新建文件目錄用于保存的相關(guān)配置進入的源碼目錄編譯與安裝配置編譯相關(guān)編譯項 安裝Nginx及相關(guān)基礎(chǔ)插件 1 . 將以下所需要的支持包上傳至服務(wù)器中 nginx-1.11.3.tar.gz : Nginx程序源代碼 echo-nginx-module-0.59.ta...

    Thanatos 評論0 收藏0
  • 在ubuntu中自定義安裝nginx

    摘要:在中,如果使用的方式,這些都已經(jīng)配置好了,默認(rèn)情況下,就是開機自啟動,使用自啟動啟動查看狀態(tài)設(shè)置為系統(tǒng)默認(rèn)啟動 安裝時間 2018-10-01 安裝環(huán)境 win10+virtualbox+ubuntu server 16,安裝在虛擬機ubuntu server中 安裝 下面定義成一句命令,適合在docker 中使用 # 安裝庫 sudo apt-get update && su...

    孫淑建 評論0 收藏0
  • Nginx 一點一滴 03 - 架構(gòu)機制

    摘要:服務(wù)器架構(gòu)模塊化結(jié)構(gòu)服務(wù)器的開發(fā)完全遵循模塊化設(shè)計思想什么是模塊化開發(fā)單一職責(zé)原則,一個模塊只負(fù)責(zé)一個功能將程序分解,自頂向下,逐步求精高內(nèi)聚,低耦合的模塊化結(jié)構(gòu)核心模塊最基本最核心的服務(wù),如進程管理權(quán)限控制日志記錄標(biāo)準(zhǔn)模塊服務(wù)器的標(biāo)準(zhǔn)功能 Nginx服務(wù)器架構(gòu) 模塊化結(jié)構(gòu) Nginx 服務(wù)器的開發(fā)完全遵循模塊化設(shè)計思想 什么是模塊化開發(fā)? 單一職責(zé)原則,一個模塊只負(fù)責(zé)一個功能 將程...

    Anleb 評論0 收藏0

發(fā)表評論

0條評論

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