nginx中的多个应用程序; 一个是根,另一个不是

这是我的phpmyadminconfiguration文件:

server { listen 8080; server_name phpmyadmin; access_log /var/log/nginx/phpmyadmin.access.log; error_log /var/log/nginx/phpmyadmin.error_log warn; root /var/www/phpmyadmin; index index.php index.htm; location ~ \.php { include /etc/nginx/fastcgi_params; keepalive_timeout 0; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; } } 

现在,当我去http://domain.com:8080它带来了phpmysdmin网站。 我希望它只打开phpmyadmin,如果我去http://domain.com:8080/phpmyadmin 。 我需要在这里做什么改变?

我有大约4或5个应用程序,我将从nginx运行,我宁愿保留每个在它自己的sites-enabledconfiguration文件,而不是一个大的configuration文件,涵盖了所有。

稍微冗长些:

 server { listen 8080; server_name phpmyadmin; access_log /var/log/nginx/phpmyadmin.access.log; error_log /var/log/nginx/phpmyadmin.error_log warn; location ~ /phpmyadmin/.*\.php { root /var/www; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; } location /phpmyadmin/ { root /var/www; index index.php; } location = /phpmyadmin { rewrite ^ /phpmyadmin/index.php; } location / { return 403; } } 

还要注意根设置:它是相对于请求path,而不是后来的任何事情。 因此, http://phpmyadmin/phpmyadmin/index.php的请求将使nginx尝试在$ root / phpmyadmin / index.php中find文件,其中$ root是位置块中设置的根path。

使用地点:

 location /phpmyadmin { root /var/www/phpmyadmin; include /etc/nginx/fastcgi_params; keepalive_timeout 0; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; }