我对nginx的配置感到沮丧,因此我在编写配置文件以在同一根目录的子目录中为多个项目提供服务时寻求帮助。这不是虚拟主机,因为它们都使用相同的主机值。也许有一个例子可以阐明我的尝试:
- 请求
192.168.1.1/
应当成为index.php
从/var/www/public/
- 请求
192.168.1.1/wiki/
应当成为index.php
从/var/www/wiki/public/
- 请求
192.168.1.1/blog/
应当成为index.php
从/var/www/blog/public/
这些项目使用PHP并使用fastcgi。
我当前的配置非常小。
server {
listen 80 default;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
root /var/www;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
}
我已经试过各种事情alias
和rewrite
,但没能得到的东西正确的FastCGI的设置。这似乎应该有比写位置的块,复制更雄辩的方式root
,index
,SCRIPT_FILENAME
,等。
任何使我朝正确方向前进的指针都值得赞赏。
出于好奇,您希望通过哪个URL可以访问文件/var/www/public/wiki/foo.html?
—
natacado 2011年
那塔卡多,那是一个好点。主公共目录将只是一些其他文件,无论如何也绝对不应使用。这是一个内部设置,因此我将对此进行控制。希望我们不必找出:)
—
蒂莫西