[問題] Nginx + Apache2設定
安安 版主早 先進早 及在場的各位版眾早
小弟最近在架frontend, backend Server
用了Nginx及apache來做測試
安裝方面就不多做說明了
其它規格如下:
OS: Ubuntu 12.04
Cpu: 1
Ram: 512MB
Storage: 8G
(說這些好像沒什麼幫助)
有兩個子網域在"同一台"機器上
兩個分別打到"同一台機器"上不同的資料夾去
nginx的 server設定如下:
vim test.com
server {
listen 80;
root /var/www/test1;
index index.php;
server_name test1.my.com;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
echo $uri;
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
location ~ /\.ht {
deny all;
}
}
server {
listen 80;
root /var/www/test2;
index index.php;
server_name test2.my.com;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
echo $uri;
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
location ~ /\.ht {
deny all;
}
}
===============================================================
Apache2的設定如下
NameVirtualHost *:8080
Listen 8080
<VirtualHost *:8080>
DocumentRoot /var/www/test1
ServerName test1.my.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot /var/www/test2
ServerName test2.my.com
</VirtualHost>
apache2這也調效過很多次,一開始defalut的設定都有帶進去過
.htaccess也有開關試過
rewritemod也有開關試過
最後問題是:
可以正常work任何在URL下有指定 *.php的東西進來
可是碰到要rewrite url的app
好比test1是wordpress (有用.htaccess設定 rewrite)
test2是drupal或yii之類也有rewrite url的
只要是乾淨的url(除了root)
ex: test1.my.com/controller/action
ex: test2.my.com/login
也就是為了要吃index.php來rewrite 乾淨url的
後面的在nginx pass給apache後,都會讓apache執行完index.php後
不知道要去解決 index.php/controller/action 後的東西
因為nginx已經把index.php 這URI (不是url喔) 吃掉了
而URI 也沒帶給Apache
所以Apache那邊不管怎樣都只會解析.index.php
而不會解析 .index.php/controller/action
這問題已經弄了兩天
試過幾百種方法都無法解決
想請問先進們能不能指點一下問題出在哪呢?
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.232.121
※ 文章網址: http://www.ptt.cc/bbs/Linux/M.1398917518.A.651.html
→
05/01 15:24, , 1F
05/01 15:24, 1F
要也可以用apache跑fpm
或是用兩台nginx,一台當前一台當後
不過問題不是在這邊
這些考量會在這次測試後去進行
當下問題要解決的還是當clean url後
pass到app server無法帶進uri(或其它等方法...)
※ 編輯: dlikeayu (114.25.232.121), 05/01/2014 15:51:53
→
05/01 17:09, , 2F
05/01 17:09, 2F
nginx可以當loadbalance或web server
apache是拿來跑backend application server
就算不用apache
我一樣得用二台(以上)的nginx
不過就會分別在不同主機上實做了
p.s以IBM來說,處理靜態檔案的叫web server
處理struts之類程式或運算的叫application server
這在處理大量用戶時,可以省下很多不必要的成本
※ 編輯: dlikeayu (1.34.4.90), 05/01/2014 22:37:22
→
05/02 00:12, , 3F
05/02 00:12, 3F
Linux 近期熱門文章
21
56
PTT數位生活區 即時熱門文章