免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
【Nginx04】Nginx學(xué)習(xí):HTTP核心模塊(一)簡(jiǎn)單搭建

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

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

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

HTTP模塊

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

http { ... }

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

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

簡(jiǎn)單搭建起來一個(gè)服務(wù)器

只需要寫下下面這些配置,就可以運(yùn)行起來一個(gè)標(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;
        }
    }
}

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

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

nginx -s quit

然后使用我們這個(gè)新的配置文件來啟動(dòng)。

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

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

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

基本模塊

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

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

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

return 指令

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

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

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

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

連接 PHP

這個(gè)連接 PHP 的配置,對(duì)于我們大部分 PHPer 來說應(yīng)該非常熟悉了。但對(duì)于使用其它語言的,可能會(huì)用得比較少。其實(shí)這套配置在默認(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;
}

這個(gè) location 使用了正則,后面學(xué)習(xí)的時(shí)候再詳細(xì)說,意思就是所有以 .php 結(jié)尾的文件,走這個(gè) location 。在這里,我們需要先修改一個(gè)地方,就是 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 目錄下新建一個(gè) script 目錄(我這里是 /usr/local/nginx/html ),里面放一個(gè) 1.php 文件,文件內(nèi)容就簡(jiǎn)單地打印一個(gè) $_SERVER 的內(nèi)容好了。

<?php
print_r($_SERVER);

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

這里的修改其實(shí)很簡(jiǎn)單,再加一個(gè)變量 $document_root ,它會(huì)獲得 root 配置所指定的目錄的絕對(duì)路徑,即使我們?cè)谏厦娴呐渲弥兄付ǖ?root 是一個(gè)相對(duì)路徑,它也會(huì)返回完整的 /usr/local/nginx/ 目錄。好了,修改一下這里。

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

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

目錄權(quán)限問題

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

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

總結(jié)

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

好了,接下來就進(jìn)入到我們第一個(gè)非常核心的部分,那就是 Server 模塊的學(xué)習(xí)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
CentOS7.6_php7.2_php5.6 編譯安裝
搭建nginx php環(huán)境時(shí)遇到”file not found''''的問題
ubuntu系統(tǒng)下安裝php7.4
yum安裝nginx-mysql-php-fastcgi構(gòu)建LNMP服務(wù)器
Ubuntu11.10 源碼編譯安裝PHP5.3.8
在fedora16下安裝nginx + php-fpm
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服