国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Nginx04】Nginx學(xué)習(xí):HTTP核心模塊(一)簡單搭建

這篇具有很好參考價值的文章主要介紹了【Nginx04】Nginx學(xué)習(xí):HTTP核心模塊(一)簡單搭建。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Nginx學(xué)習(xí):HTTP核心模塊(一)簡單搭建

前面就說過了,HTTP 模塊是整個 Nginx 中最核心的模塊。在這其中,它又有一部分最核心的模塊,其實也就是在編譯安裝的時候,我們不裝任何擴(kuò)展就自帶的模塊。這一部分模塊就像是基本的 PHP 語法一樣,是最基礎(chǔ)的,也是我們最需要重點掌握的內(nèi)容。

今天先入個門,搭起簡單的一套 Web 服務(wù),讓 Nginx 可用就行了。內(nèi)容不復(fù)雜,但如果是初學(xué)者,那一定要跟著動手練練哦。即使是做了幾年的老油條了,如果你對 Nginx 也僅限于 寶塔 之類的面板配置的話,那也最好一起動手玩玩哦。

HTTP模塊

在 Nginx 中,除了核心模塊之外,其它模塊之間的劃分就是通過命令標(biāo)識與一對花括號來體現(xiàn)的,我們上回學(xué)習(xí)到的事件模塊就是在 events 中進(jìn)行配置。其實很像我們在編程語言中的作用域的感覺。比如在 HTTP 模塊中,所有的配置指令都是在下面這個 http 指令模塊中。

http?{?...?}

它就是為HTTP服務(wù)器提供配置上下文的,后續(xù)我們要學(xué)習(xí)的所有和 HTTP 相關(guān)的配置指令都是在這個 http 下面進(jìn)行配置的。也就是說,馬上要學(xué)習(xí)的內(nèi)容,基本全是在這個 http 內(nèi)部的配置指令。

今天是第一篇,所以咱們還是先搭起來一個簡單的服務(wù)器。

簡單搭建起來一個服務(wù)器

只需要寫下下面這些配置,就可以運行起來一個標(biāo)準(zhǔn)的 Web HTTP 靜態(tài)服務(wù)器了。

worker_processes??1;
events?{
????worker_connections??1024;
}
http?{
????include???????mime.types;
????default_type??application/octet-stream;
????sendfile????????on;
????keepalive_timeout??65;
????server?{
????????listen???????80;
????????server_name??localhost;
????????location?/?{
????????????root???html;
????????????index??index.html?index.htm;
????????}
????????error_page???500?502?503?504??/50x.html;
????????location?=?/50x.html?{
????????????root???html;
????????}
????}
}

這個配置其實就是我通過?cat nginx.conf.default | grep -Ev '^$|#'?去除掉 nginx.conf.default 這自帶的默認(rèn)配置文件的注釋和空格所得到的結(jié)果。我們可以把這部分內(nèi)容保存到另一個文件中,比如我就起名為 nginx.conf-first.conf 。

接下來,關(guān)閉正在運行的 Nginx ,還記得之前命令行學(xué)過的內(nèi)容吧。

nginx?-s?quit

然后使用我們這個新的配置文件來啟動。

nginx?-c?/etc/nginx/nginx.conf-first.conf

為啥不直接用自帶的原始的那個 nginx.conf 文件呢?其實如果是剛裝好的 Nginx ,那么 nginx.conf 文件和上面的配置內(nèi)容是一模一樣的,只是有注釋而已。用默認(rèn)的 nginx.conf 文件也可以,但是在寫文章的時候我對那個默認(rèn)的配置文件已經(jīng)做了很多更改,所以暫時我不想動它。正好也順便復(fù)習(xí)一下之前學(xué)習(xí)的命令行相關(guān)的內(nèi)容嘛。同時也證明一下,啟動 nginx 的時候,具體使用哪個配置文件是我們可以自己指定的,就像 Reids 那些一樣。

好了,現(xiàn)在我們使用的就是這個新的配置文件了。大家可以訪問一下試試。

基本模塊

在 http 中,最基礎(chǔ)的就是 server 模塊,它代表一個虛擬主機(jī),下篇文章我們就來重點介紹它。在 http 中,一定要有一個虛擬主機(jī),要不就不知道訪問誰了。

另一個就是 location 模塊,它其實是在 server 之下的,用于指定路徑的訪問。一般最少都會有一個?location /?的配置,這一部分內(nèi)容我們將在下下篇文章學(xué)習(xí),也就是講完 Server 之后。

這兩塊是 Http 模塊中最重要的兩部分內(nèi)容。

return 指令

這個指令是屬于重寫 Rewrite 模塊的,不在 HTTP 的核心模塊中,未來我們學(xué)習(xí)到相關(guān)的模塊時才會詳細(xì)的學(xué)習(xí),這里先只是簡單的介紹一下,因為它對于我們的調(diào)試非常有用。

………………
location?/?{
??root???html;
??index??index.html?index.htm;
}
location?/t1?{
?return?201?'return?test!';
}
………………

在?location /?后面添加一個訪問路徑?/t1,在這個路徑里面我們就使用了 return 指令。這個指令的參數(shù)可以指定一個 HTTP 狀態(tài)碼,后面可以可選地返回一個文本內(nèi)容或 URL 鏈接。對于調(diào)試來說,我們可能會更多地使用文本內(nèi)容。

現(xiàn)在大家需要重載服務(wù)配置,這回可不能直接就?nginx -s reload?了,需要把配置文件參數(shù)也帶上?nginx -c /etc/nginx/nginx.conf-first.conf -s reload?。不帶會怎樣?大家自己試試唄。然后就可以訪問上面配置的鏈接,看看狀態(tài)碼是不是 201 ,響應(yīng)體輸出的內(nèi)容是不是 return test! 。

連接 PHP

這個連接 PHP 的配置,對于我們大部分 PHPer 來說應(yīng)該非常熟悉了。但對于使用其它語言的,可能會用得比較少。其實這套配置在默認(rèn)的 nginx.conf.default 和 nginx.conf 中已經(jīng)給出了。我們復(fù)制過來就好。

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

這個 location 使用了正則,后面學(xué)習(xí)的時候再詳細(xì)說,意思就是所有以 .php 結(jié)尾的文件,走這個 location 。在這里,我們需要先修改一個地方,就是 fastcgi_pass ,表示連接 PHP-FPM 的方式。之前在?了解PHP-FPMhttps://mp.weixin.qq.com/s/NUpDnfYfbPuWmal4Am3lsg?這篇文章中我們就已經(jīng)介紹過了 UnixSocket 和 TCP 兩種連接方式的區(qū)別。因此,要根據(jù)你在當(dāng)前服務(wù)器上安裝的 PHP-FPM 的配置來進(jìn)行配置。比如我這里使用的就是 UnixSocket 方式,sock 文件在 /var/sock/php-fpm/www.sock 。因此,最終的配置就是修改一下這里。

location?~?\.php$?{
????…………
????fastcgi_pass???unix:/var/sock/php-fpm/www.sock;
????…………
}

接下來,在程序安裝目錄的 html 目錄下新建一個 script 目錄(我這里是 /usr/local/nginx/html ),里面放一個 1.php 文件,文件內(nèi)容就簡單地打印一個?$_SERVER?的內(nèi)容好了。

<?php
print_r($_SERVER);

現(xiàn)在訪問一下 /1.php ,不對呀,F(xiàn)ile not found. 錯誤出現(xiàn)了。這是啥情況?其實呀,還有一個地方被我們忽略了,那就是 fastcgi_param SCRIPT_FILENAME 這一行,默認(rèn)它是 /scripts/$fastcgi_script_name。表示的是 FastCGI的腳本目錄是 /scripts 目錄下的文件,$fastcgi_script_name?是一個 Nginx 變量,表示的是具體的腳本名稱,也就是 1.php 。合起來的話,就是讓 FastCGI 去執(zhí)行 /srcipts/1.php 這個文件。很明顯,這個文件不存在呀,我們創(chuàng)建的文件路徑應(yīng)該是 /usr/local/nginx/html/scripts/1.php 嘛。

這里的修改其實很簡單,再加一個變量?$document_root?,它會獲得 root 配置所指定的目錄的絕對路徑,即使我們在上面的配置中指定的 root 是一個相對路徑,它也會返回完整的 /usr/local/nginx/ 目錄。好了,修改一下這里。

location?~?\.php$?{
????…………
????fastcgi_param??SCRIPT_FILENAME??$document_root/scripts$fastcgi_script_name;
????…………
}

現(xiàn)在重載配置之后再訪問一下,看看是不是正常顯示 PHP 輸出的內(nèi)容了。

目錄權(quán)限問題

前面的測試,不管添加的文件,還是 html 這個目錄,權(quán)限全是 root 用戶的,并且文件權(quán)限也只有 644 。但是大家在日常使用時,更喜歡將 Nginx 的項目根目錄設(shè)置為 www 或者 nginx 之類的用戶,也就是跟我們在 Nginx 設(shè)置的?user?配置中使用相同的用戶。其實這么做是對的,但是,并不是說一定要這個指定的用戶才能運行。Nginx 運行靜態(tài)或者動態(tài)文件,只需要所有父目錄為755權(quán)限,文件為 644 權(quán)限就可以了?;蛘邠Q句話說,只要有 r 這個讀權(quán)限就可以。但是,這種權(quán)限如果都是 root 用戶的話,那么 www 之類的用戶就沒法寫入,而且目錄用戶給的確實太大。做為標(biāo)準(zhǔn)開發(fā)的話,通常還是會改成 www 之類的標(biāo)準(zhǔn)用戶。

當(dāng)然,這個用戶名不是完全一定要用 www 之類的,你完全可以指定自己喜歡的用戶名,不過需要注意的是要設(shè)置成 nologin 的,而且 Nginx 和 PHP-FPM 都要配置成一樣的。這樣才能避免因為權(quán)限而產(chǎn)生的各種問題。

總結(jié)

比較簡單吧?非常入門。但是對于純?nèi)腴T的新手來說可能也會比較懵圈,另外我也沒講過 Nginx 的安裝,這一部分的內(nèi)容大家可以在網(wǎng)上搜搜,不管是視頻還是文章,簡直不要太多了。推薦的還是手動編譯安裝一下,將來學(xué)完了日常在工作中不管是 yum 還是面板工具之類的都沒問題。但是打基礎(chǔ)階段還是用笨方法吧。

好了,接下來就進(jìn)入到我們第一個非常核心的部分,那就是 Server 模塊的學(xué)習(xí)。文章來源地址http://www.zghlxwxcb.cn/news/detail-521076.html

到了這里,關(guān)于【Nginx04】Nginx學(xué)習(xí):HTTP核心模塊(一)簡單搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Nginx15】Nginx學(xué)習(xí):HTTP核心模塊(十二)內(nèi)嵌變量

    關(guān)于內(nèi)嵌變量,其實就是 Nginx 開放給我們的在配置文件中可以使用的變量。源碼中無非就是替換成真實的代碼變量進(jìn)行操作。這些變量可以幫助我們做很多事情。之前的文章中其實也有不少地方用到了,比如說? $uri ?這個變量,是不是已經(jīng)見過很多次了。而且這些變量基本

    2024年02月14日
    瀏覽(21)
  • 【Nginx08】Nginx學(xué)習(xí):HTTP核心模塊(五)長連接與連接處理

    HTTP 基礎(chǔ)知識大家掌握的怎么樣呀?對于長連接這一塊的內(nèi)容應(yīng)該也不是什么新鮮東西了吧。畢竟 HTTP1.1 都已經(jīng)發(fā)布這么久了。今天主要來看的就是長連接相關(guān)的配置,另外還會介紹幾個和連接有關(guān)的內(nèi)容。同時,今天的內(nèi)容除了 HTTP 外,還需要一點 TCP 的知識。沒辦法,畢竟

    2024年02月16日
    瀏覽(15)
  • 【Nginx13】Nginx學(xué)習(xí):HTTP核心模塊(十)Types、AIO及其它配置

    【Nginx13】Nginx學(xué)習(xí):HTTP核心模塊(十)Types、AIO及其它配置

    今天學(xué)習(xí)的內(nèi)容也比較簡單,主要的是 Types 相關(guān)的配置,另外還會了解一下 AIO 以及部分沒有特別大的分類歸屬的配置指令的使用。后面的內(nèi)容都是 HTTP 核心模塊中比較小或者比較簡單的部分了。有很多配置項其實我們平常并不常用,甚至很多在學(xué)習(xí)之前我都不知道有它們的

    2024年02月12日
    瀏覽(27)
  • 【Nginx12】Nginx學(xué)習(xí):HTTP核心模塊(九)瀏覽器緩存與try_files

    【Nginx12】Nginx學(xué)習(xí):HTTP核心模塊(九)瀏覽器緩存與try_files

    瀏覽器緩存在 Nginx 的 HTTP 核心模塊中其實只有兩個簡單的配置,這一塊也是 HTTP 的基礎(chǔ)知識。之前我們就一直在強(qiáng)調(diào),學(xué)習(xí) Nginx 需要的就是各種網(wǎng)絡(luò)相關(guān)的基礎(chǔ)知識,其中更重要的就是 HTTP 和 TCP 相關(guān)的內(nèi)容。另外一個 try_files 配置指令也是 Nginx 中非常常用的一個指令,用于

    2024年02月15日
    瀏覽(24)
  • nginx http模塊

    nginx http模塊

    location的定義包含以下幾種 =:表示精確匹配,只有請求的url路徑與后面的字符串完全相等時,才會命中,不支持location嵌套 ~:表示使用正則定義的,區(qū)分大小寫 ~*:表示是使用正則定義的,不區(qū)分大小寫 ^~:表示該符號后面的字符是最佳匹配,采用該規(guī)則,不再進(jìn)行后續(xù)的查

    2023年04月08日
    瀏覽(12)
  • Android-音視頻學(xué)習(xí)系列-(八)基于-Nginx-搭建(rtmp、http)直播服務(wù)器

    Android-音視頻學(xué)習(xí)系列-(八)基于-Nginx-搭建(rtmp、http)直播服務(wù)器

    #!/bin/sh HTTP_FLV_MODULE_PATH=…/nginx-http-flv-module-1.2.7 OpenSSL_PATH=…/openssl-1.1.1d #–prefix=./bin 代表編譯完成之后輸出的路徑地址 #–add-module 將拓展模塊添加到當(dāng)前一起編譯 ./configure --prefix=./bin –add-module= H T T P F L V M O D U L E P A T H ? ? ? w i t h ? o p e n s s l = HTTP_FLV_MODULE_PATH --with

    2024年04月15日
    瀏覽(32)
  • Nginx安裝http2和ssl模塊

    Nginx安裝http2和ssl模塊

    Nginx在執(zhí)行默認(rèn)安裝命令的時候,并不會編譯啟用ngx_http_v2_module模塊。故在修改Nginx配置文件啟用http2.0協(xié)議的時候會報錯。 一.檢查Nginx安裝了哪些模塊 如圖就是沒有安裝ngx_http_v2_module模塊 二.重新編譯Nginx Nginx有兩個目錄,一個是安裝目錄,一個是源碼目錄,安裝目錄就是執(zhí)

    2024年01月16日
    瀏覽(20)
  • 使用nginx搭建http和https環(huán)境

    目錄 一、nginx 1.1什么是負(fù)載均衡 1.2什么是反向代理 二、安裝nginx,并對nginx進(jìn)行基礎(chǔ)配置 三、為什么搭建http和https環(huán)境 四、配置http和https環(huán)境 五、配置成功后對nginx進(jìn)行檢查和運行 六、測試 Nginx is an open-source web server software that can also be used as a reverse proxy, load balancer, and H

    2024年02月08日
    瀏覽(19)
  • Nginx ngx_http_auth_request_module模塊鑒權(quán)

    Nginx ngx_http_auth_request_module模塊鑒權(quán)

    ngx_http_auth_request_module 模塊 實現(xiàn)了基于一子請求的結(jié)果的客戶端的授權(quán)。如果子請求返回2xx響應(yīng)碼,則允許訪問。如果它返回401或403,則訪問被拒絕并顯示相應(yīng)的錯誤代碼。子請求返回的任何其他響應(yīng)代碼都被認(rèn)為是錯誤的。 auth_request 使用的也是 subrequest 進(jìn)行子請求。 當(dāng)我

    2024年02月17日
    瀏覽(20)
  • Nginx + RTMP + nginx-http-flv-module 環(huán)境搭建(CentOS 7)

    Nginx + RTMP + nginx-http-flv-module 環(huán)境搭建(CentOS 7)

    ??Nginx + RTMP + nginx-http-flv-module 環(huán)境搭建(CentOS 7) ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁:IT·陳寒的博客 ??該系列文章專欄:Java學(xué)習(xí)路線 ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實戰(zhàn)項目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) ??文章作者技術(shù)和水平有限,如果文中出現(xiàn)

    2024年02月05日
    瀏覽(49)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包