nginx中配置pathinfo模式示例
緣由
很久不使用apache了,漸漸對(duì)apache感到陌生,因?yàn)榕笥延袀€(gè)ZendFramework框架從apache移到nginx下,需要pathinfo模式支持。
網(wǎng)上海搜
于是開(kāi)始搜索nginx+pathinfo相關(guān)文章,一開(kāi)以為很容易就會(huì)配置好。因?yàn)樗阉骱蟀l(fā)現(xiàn)有大量文章介紹nginx開(kāi)啟pathinfo模式,感覺(jué)不是什么難事。但是經(jīng)過(guò)幾個(gè)小時(shí)下來(lái),還是沒(méi)有配置好。并且大量文章的內(nèi)容都極其相似,基本都是轉(zhuǎn)載的。
開(kāi)始有點(diǎn)急了!因?yàn)橐惶爝^(guò)去了沒(méi)有配好。
繼續(xù)摸索
沒(méi)辦法,繼續(xù)搜索。為了驗(yàn)證方便,我用a.com下載thinkphp框架搭了個(gè)環(huán)境。并且加了UserAction.class.php控制器類(lèi),在類(lèi)里加了一個(gè)app方法并輸出一行文字。
于是,我開(kāi)始不斷地改寫(xiě)nginx.conf文件重啟nginx,不斷的刷新a.com/index.php/User/app 地址。結(jié)果要么是地址損壞提示、502、Access defind.
又是一天過(guò)去了,開(kāi)始感覺(jué)有點(diǎn)彷徨。
最后堅(jiān)持
按理說(shuō)我感覺(jué)應(yīng)該有nginx+thinkphp的先例,只是我沒(méi)有搜索到答案而已。突然間感覺(jué)網(wǎng)上好迷茫,一個(gè)小小的問(wèn)題尋求不到解答。今晚,又試著使用nginx thinkphp關(guān)鍵字搜索,我一下點(diǎn)到十多頁(yè)以后,找到一處代碼
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
保存修改,重啟nginx,刷新瀏覽器
意想不到的頁(yè)面出現(xiàn)了
居然能訪問(wèn)了,終于松了一口氣,實(shí)在太不容易了。
貼出nginx.conf代碼:
user www www;
worker_processes 2;
worker_cpu_affinity 01 10;
error_log /data1/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
server
{
listen 80;
server_name a.com;
index index.php;
root /data0/htdocs/a.com/www;
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
}
}
養(yǎng)成好習(xí)慣
1、雖然最終還是解決問(wèn)題了,但平日要記錄一下重要的東西,網(wǎng)絡(luò)不是萬(wàn)靈
2、就算出現(xiàn)問(wèn)題也要大概知道什么原因?能不能實(shí)現(xiàn)?如何實(shí)現(xiàn)?
3、常遇到的問(wèn)題要反思,舉一反三,思考。
相關(guān)文章
基于nginx實(shí)現(xiàn)上游服務(wù)器動(dòng)態(tài)自動(dòng)上下線無(wú)需reload的實(shí)現(xiàn)方法
這篇文章主要介紹了基于nginx實(shí)現(xiàn)上游服務(wù)器動(dòng)態(tài)自動(dòng)上下線無(wú)需reload,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02nginx+lua+redis防刷和限流的實(shí)現(xiàn)
本文將介紹如何使用nginx lua redis實(shí)現(xiàn)防刷和限流,首先,我們將了解防刷和限流的基本概念和必要性,然后,我們將詳細(xì)介紹如何使用nginx lua redis實(shí)現(xiàn)防刷和限流,感興趣的可以了解一下2023-09-09filebeat收集多個(gè)域名網(wǎng)站日志并存儲(chǔ)到不同es索引庫(kù)過(guò)程
這篇文章主要為大家介紹了filebeat收集多個(gè)域名網(wǎng)站日志并存儲(chǔ)到不同es索引庫(kù)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Nginx服務(wù)器中限制連接數(shù)與限制請(qǐng)求的模塊配置教程
這篇文章主要介紹了Nginx服務(wù)器中限制連接數(shù)與限制請(qǐng)求的模塊配置教程,分別為limit conn模塊與limit req模塊的相關(guān)用法講解,需要的朋友可以參考下2016-01-01nginx配置文件nginx.conf中文注釋說(shuō)明
nginx配置文件nginx.conf中文注釋說(shuō)明,大家參考使用吧2013-12-12