Generate Nginx conguration using Ruby
Add this line to your application's Gemfile:
gem 'nginx_config_maker'
And then execute:
$ bundle
Or install it yourself as:
$ gem install nginx_config_maker
To generate upstream configuration like this:
upstream app_123 {
server 127.0.0.1:12380;
}
do:
upstream = NginxConfigMaker::Upstream.new(
name: "app_123",
host: "127.0.0.1",
port: "12380",
)
upstream.to_s
To generate server configuration like this:
server {
listen [::]:80;
listen 80;
server_name app_123;
location / {
proxy_pass http://$APP;
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host \$http_host;
proxy_set_header X-Forwarded-Proto \$scheme;
proxy_set_header X-Forwarded-For \$remote_addr;
proxy_set_header X-Forwarded-Port \$server_port;
proxy_set_header X-Request-Start \$msec;
}
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
}
do:
server = NginxConfigMaker::Server.new(
listen: ["[::]:80", "80"],
server_name: "app_123",
location: [
{
at: "/",
proxy: {
pass: "http://app_123",
http_version: "1.1",
set_headers: {
"Upgrade" => "\$http_upgrade",
"Connection" => %Q("upgrade"),
"Host" => "\$http_host",
"X-Forwarded-Proto" => "\$scheme",
"X-Forwarded-For" => "\$remote_addr",
"X-Forwarded-Port" => "\$server_port",
"X-Request-Start" => "\$msec",
}
}
},
{
at: '^~ /assets/',
gzip_static: 'on',
expires: 'max',
add_header: 'Cache-Control public'
}
]
)
server.to_s
- Fork it ( http://github.com//nginx_config_maker/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request