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

資訊專欄INFORMATION COLUMN

【nginx】nginx 配置那些事兒

lunaticf / 1527人閱讀

摘要:是一款具有高負載能力的服務器,也是架構的主要角色之一。多站點設置前面我們修改配置文件的代碼位置,都是在下的里。如果想項目和項目均適用端口,則需要利用做反向代理設置。

nginx 是一款具有高負載能力的 web 服務器,也是 LNMP 架構的主要角色之一?,F(xiàn)在越來越多的開發(fā)者選擇 nginx 作為 php 的好搭檔,替代 apache 的位置。下面我以 Mac 系統(tǒng)為例,介紹下 nginx 的配置

基本配置

打開 nginx.conf,找到 http 下的 server,前幾行的內容分別是:

listen  8080;                #監(jiān)聽端口
server_name  localhost;      #本地域名
root  /usr/local/var/www;    #項目根目錄

nginx 默認監(jiān)聽8080端口,你可以改成 80 端口。默認項目根目錄也可以更改。不過更改之后要重新載入配置文件才能生效:

sudo nginx -s reload

注意:如果你不喜歡localhost,你想要一個個性的本地域名,比如www.test.com,首先要編輯 hosts 文件:

sudo vim /etc/hosts

添加一條:

127.0.0.1     www.test.com

然后修改 nginx.conf:

server_name    www.test.com

總之 nginx.conf 中設置的域名,必須在 hosts 文件中存在!


隱藏入口文件

在我們開發(fā)項目的時候,一般會有隱藏入口文件的需求。依然是在 http 下的 server,我們找到location /,在大括號內做修改。切記ci框架和tp框架的寫法稍有不同,具體如下:

location / {
       index  index.php index.html index.htm;
       if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php?$1 last;    #ci框架寫法
            #rewrite ^/(.*)$ /index.php?s=/$1 last;    #tp框架寫法
            break;
       }
}

如果你用的是tp5,?入口文件在 public 目錄下,但是你不想在URL中寫localhost/public/訪問入口文件,你想直接通過localhost/訪問,你可以這樣寫:

rewrite ^/(.*)$ /public/index.php?s=/$1 last;

其實隱藏入口文件就是 nginx 做了下路由,看懂它的正則,其實不難理解。


解析php

如果要 nginx 正常解析 php,首先要在安裝好 php 之后,啟動 php-fpm。啟動方法:

sudo php-fpm -D

上一步完成之后,接下來還是要修改 nginx.conf。server 下找到location ~ .php$這一行,包括它后面{}中的內容,去掉注釋,也就是去掉前面的#號,修改成這樣:

location ~ .php(/.*)*$ {
      fastcgi_pass   127.0.0.1:9000;
      fastcgi_index  index.php;
      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

      fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;
      fastcgi_param  PATH_INFO  $fastcgi_path_info;
      fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
      include        fastcgi_params;
}

如圖:

重新載入配置文件。此時 nginx 就可以配合 php-fpm 正確解析 PHP 了。


多站點設置

前面我們修改配置文件的代碼位置,都是在 http 下的 server 里。其實一個 server 就相當于一個站點。nginx.conf 下 http 模塊默認開啟一個 server,就是只有一個站點。如果我們要多站點,就需要添加多個 server。

現(xiàn)在我們要添加一個站點,假設這個站點的域名是 www.test2.com, 但是 server 不寫在 nginx.conf 里。nginx 為我們提供了存放多站點配置文件的目錄,我們切換到這個目錄:

cd /usr/local/etc/nginx/servers/

然后新建配置文件:

vim www.test2.com.conf

里邊寫一個 server:

server {

    listen  80;
    server_name  www.test2.com;

    index  index.html index.php;

    root  /usr/local/var/test2;

    location / {
         index  index.php index.html;
         rewrite ^/(.*)$ /public/index.php?s=/$1 last;
         break;
    }

    location ~ .php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        include        fastcgi_params;
    }
    
}

保存退出,重新載入配置文件。最后在 hosts 中添加:

127.0.0.1   www.test2.com

此時,www.test2.com 就可以訪問到你的新項目目錄 /usr/local/var/test2下了!


反向代理設置

我的應用場景是這樣的。假設我的服務器上存放著一個 node 項目,node 占用著80端口,可以正常運行。但是我想再放一個 php 項目,此時這個php項目就不能是80端口了。如果想 node 項目和 php 項目均適用80端口,則需要利用 nginx 做反向代理設置。

解決方案是,node 項目設置成非 80 端口,比如3000,nginx 添加一個站點,假設是www.test3.com,訪問 80 端口,代理到 3000 端口即可。

設置方法如上一節(jié)添加新站點:

cd /usr/local/etc/nginx/servers/

然后新建配置文件:

vim www.test3.com.conf

寫入一個 server:

server {
    listen 80;
    server_name www.test3.com;
    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}

訪問 www.test3.com,就可以訪問到 node 項目了!


本文由 楊成功 原創(chuàng),更多原創(chuàng)內容請到專欄 楊成功的全棧之路

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

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

相關文章

  • nginxnginx 配置那些事兒

    摘要:是一款具有高負載能力的服務器,也是架構的主要角色之一。多站點設置前面我們修改配置文件的代碼位置,都是在下的里。如果想項目和項目均適用端口,則需要利用做反向代理設置。 nginx 是一款具有高負載能力的 web 服務器,也是 LNMP 架構的主要角色之一。現(xiàn)在越來越多的開發(fā)者選擇 nginx 作為 php 的好搭檔,替代 apache 的位置。下面我以 Mac 系統(tǒng)為例,介紹下 ngin...

    PrototypeZ 評論0 收藏0
  • [聊一聊系列]聊一聊前端功能統(tǒng)計那些事兒

    摘要:歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面不僅僅是代碼什么是功能統(tǒng)計作為一名開發(fā),我們的產(chǎn)品發(fā)布出去之后,無論是產(chǎn)品還是運營,其實都是想及時了解產(chǎn)品對用戶產(chǎn)生的影響的。下一章,我們將繼續(xù)聊聊速度統(tǒng)計。 歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面(不僅僅是代碼):https://segmentfault.com/bl...

    PAMPANG 評論0 收藏0
  • [聊一聊系列]聊一聊前端功能統(tǒng)計那些事兒

    摘要:歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面不僅僅是代碼什么是功能統(tǒng)計作為一名開發(fā),我們的產(chǎn)品發(fā)布出去之后,無論是產(chǎn)品還是運營,其實都是想及時了解產(chǎn)品對用戶產(chǎn)生的影響的。下一章,我們將繼續(xù)聊聊速度統(tǒng)計。 歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面(不僅僅是代碼):https://segmentfault.com/bl...

    妤鋒シ 評論0 收藏0

發(fā)表評論

0條評論

lunaticf

|高級講師

TA的文章

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