我试图设置一个puppet配置来定义一个有多个location子句的nginx vhost,其中一个提供来自本地目录的静态内容,另一个提供另一个本地服务器的代理。 nginx module的文档非常差,因此我很难理解如何执行此操作。
这里基本上是我试图实现的nginx配置(我手动创建):
server {
listen 8080;
server_name myapp.example.com;
location /admin/ {
alias /path/to/my/app/;
index index.html;
}
location / {
# pass everything else to backend server
proxy_pass http://localhost:3000;
}
}
这是我到目前为止的nginx配置:
node 'web00' {
class { 'nginx': }
nginx::resource::vhost { 'myapp.example.com':
www_root => '/path/to/my/app',
}
nginx::resource::upstream { 'backend_nodejs':
members => [
'localhost:9000',
],
}
}
如何在myapp.example.com vhost puppet配置子句中添加其他位置子句?
答案 0 :(得分:3)
使用nginx :: resource :: location definition:
node 'web00' {
class { 'nginx': }
nginx::resource::upstream { 'backend_nodejs':
members => [
'localhost:9000',
],
}
nginx::resource::vhost { 'myapp.example.com':
proxy => 'http://backend_nodejs'
}
nginx::resource::location { '/admin':
location => '/admin/',
vhost => 'myapp.example.com',
location_alias => '/path/to/my/app/'
index_files => ['index.html']
}
}