摘要:是一款具有高負載能力的服務器,也是架構的主要角色之一。多站點設置前面我們修改配置文件的代碼位置,都是在下的里。如果想項目和項目均適用端口,則需要利用做反向代理設置。
基本配置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 做了下路由,看懂它的正則,其實不難理解。
如果要 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
摘要:是一款具有高負載能力的服務器,也是架構的主要角色之一。多站點設置前面我們修改配置文件的代碼位置,都是在下的里。如果想項目和項目均適用端口,則需要利用做反向代理設置。 nginx 是一款具有高負載能力的 web 服務器,也是 LNMP 架構的主要角色之一。現(xiàn)在越來越多的開發(fā)者選擇 nginx 作為 php 的好搭檔,替代 apache 的位置。下面我以 Mac 系統(tǒng)為例,介紹下 ngin...
摘要:歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面不僅僅是代碼什么是功能統(tǒng)計作為一名開發(fā),我們的產(chǎn)品發(fā)布出去之后,無論是產(chǎn)品還是運營,其實都是想及時了解產(chǎn)品對用戶產(chǎn)生的影響的。下一章,我們將繼續(xù)聊聊速度統(tǒng)計。 歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面(不僅僅是代碼):https://segmentfault.com/bl...
摘要:歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面不僅僅是代碼什么是功能統(tǒng)計作為一名開發(fā),我們的產(chǎn)品發(fā)布出去之后,無論是產(chǎn)品還是運營,其實都是想及時了解產(chǎn)品對用戶產(chǎn)生的影響的。下一章,我們將繼續(xù)聊聊速度統(tǒng)計。 歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面(不僅僅是代碼):https://segmentfault.com/bl...
閱讀 3729·2021-11-24 09:39
閱讀 2610·2019-08-30 15:54
閱讀 1149·2019-08-30 13:01
閱讀 3429·2019-08-28 18:30
閱讀 1623·2019-08-26 17:44
閱讀 3591·2019-08-26 11:31
閱讀 2413·2019-08-26 10:40
閱讀 1239·2019-08-26 10:27