我剛剛設置nginx服務於一個網站上的靜態請求,但我有很多網站在我的服務器上,我想知道,我應該對新的nginx服務器配置爲他們所有? 我現在在做什麼。我有文件,所有虛擬主機條目阿帕奇一些,這樣的事:Apache和終極配置爲nginx以正確的方式服務所有虛擬主機
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName sky2high.net
DocumentRoot /home/mainsiter/data/www/sky2high.net
</VirtualHost>
<VirtualHost *:8080>
ServerName surdo.asmon.ru
DocumentRoot /home/surdo/data/www/surdo.asmon.ru
</VirtualHost>
<VirtualHost *:8080>
ServerName surdoserver.ru
DocumentRoot /home/surdo/data/www/surdoserver.ru
</VirtualHost>
我在Apache的ports.conf有這樣的:
Listen 8080
所以我已經設置了nginx的工作有一個網站(sky2high.net),創建下一個配置文件(/etc/nginx/sites-enabled/sky2high.net):
server {
listen 80;
server_name sky2high.net www.sky2high.net;
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
access_log /var/log/nginx.access_log;
location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
root /home/mainsiter/data/www/sky2high.net/;
index index.php;
access_log off;
expires 30d;
}
location ~ /\.ht {
deny all;
}
location/{
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;
proxy_connect_timeout 60;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_redirect off;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
}
}
而且它這個領域工作得很好,但當然另一個虛擬主機破碎。
所以,問題是:是否有nginx的最終配置選項,女巫可以幫助處理來自所有虛擬主機(域)的所有請求,並以正確的方式提供服務?我的意思是,允許不爲每個虛擬主機編寫separete配置文件的選項(所有這些都是根和索引選項的加倍),但只有一個適用於所有虛擬主機?
PS:我應該將問題移至serverfault?
更新: 嗯..我不知道它是如何工作,但它是。我做了下一個配置文件:
/etc/nginx/nginx.conf
user www-data;
worker_processes 2;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
和
的/ etc/nginx的/ /默認情況下啓用站點,
server {
listen 80;
location/{
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
}
}
我不明白它是如何工作的,但它是...
更新2:或它不工作!我已經在控制檯中看到「頂部」,並指出apache不僅僅服務於PHP請求,而且還爲靜態內容提供服務=(
你可能想改變一個行: proxy_set_header $ host主機:$ proxy_port使用; – dalore 2012-11-26 17:54:34