nginx_config_generator 1.0 → 1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/{Manifest.txt → Manifest} +1 -1
- data/README +4 -1
- data/Rakefile +1 -1
- data/lib/config.yml.example +21 -0
- data/lib/nginx.erb +37 -4
- data/lib/nginx_config_generator.rb +2 -2
- metadata +3 -3
data/{Manifest.txt → Manifest}
RENAMED
data/README
CHANGED
data/Rakefile
CHANGED
data/lib/config.yml.example
CHANGED
@@ -46,3 +46,24 @@ sites:
|
|
46
46
|
server_name: qa.famupdate.com
|
47
47
|
auth_file: /home/builder/conf/htpasswd
|
48
48
|
root: /home/builder/site
|
49
|
+
|
50
|
+
ssl_sites:
|
51
|
+
errtheblog:
|
52
|
+
# ssl configuration
|
53
|
+
ssl:
|
54
|
+
key: /path/to/err.key
|
55
|
+
cert: /path/to/err.crt
|
56
|
+
# SSL only allows one vhost per IP this can be solved if you have multiple IPs.
|
57
|
+
listen: 10.10.10.1:443
|
58
|
+
# Two upstream servers to proxy balance.
|
59
|
+
upstream:
|
60
|
+
- 127.0.0.1:8000
|
61
|
+
- 127.0.0.1:8001
|
62
|
+
no_www: true
|
63
|
+
# Just strings that get spit out as rewrites
|
64
|
+
rewrites:
|
65
|
+
- ^/feed/feedburner http://feeds.feedburner.com/errtheblog
|
66
|
+
- ^/feed/atom.xml http://feeds.feedburner.com/errtheblog
|
67
|
+
# Which root to use. You can add a custom one here, too.
|
68
|
+
root: rails
|
69
|
+
|
data/lib/nginx.erb
CHANGED
@@ -34,7 +34,7 @@ http {
|
|
34
34
|
|
35
35
|
# main error log
|
36
36
|
error_log logs/error.log debug;
|
37
|
-
|
37
|
+
#error_log logs/error.log debug_http;
|
38
38
|
|
39
39
|
# no sendfile on OSX
|
40
40
|
sendfile on;
|
@@ -62,15 +62,37 @@ http {
|
|
62
62
|
}
|
63
63
|
<% end %>
|
64
64
|
|
65
|
-
<%
|
65
|
+
<% %w(sites ssl_sites).each do |site_type| %>
|
66
|
+
|
67
|
+
<% config[site_type].each do |name, site| %>
|
66
68
|
# the server directive is nginx's virtual host directive.
|
67
69
|
server {
|
70
|
+
|
71
|
+
<% if site['ssl'] %>
|
72
|
+
|
73
|
+
<% if site['listen'] %>
|
74
|
+
listen <%= site['listen'] %>;
|
75
|
+
<% else %>
|
76
|
+
listen 443;
|
77
|
+
<% end %>
|
78
|
+
ssl on;
|
79
|
+
|
80
|
+
# path to your certificate
|
81
|
+
ssl_certificate <%= site['ssl']['cert'] %>;
|
82
|
+
|
83
|
+
# path to your ssl key
|
84
|
+
ssl_certificate_key <%= site['ssl']['key'] %>;
|
85
|
+
|
86
|
+
<% else %>
|
87
|
+
|
68
88
|
# port to listen on. Can also be set to an IP:PORT
|
69
89
|
listen 80;
|
70
90
|
|
71
91
|
# sets the domain[s] that this vhost server requests for
|
72
92
|
server_name <%= site['server_name'] %>;
|
73
|
-
|
93
|
+
|
94
|
+
<% end %>
|
95
|
+
|
74
96
|
# doc root
|
75
97
|
root <%= (config['root'][ site['root'] || 'default' ] || site['root']) % name %>;
|
76
98
|
|
@@ -90,7 +112,14 @@ http {
|
|
90
112
|
|
91
113
|
<% if site['no_www'] %>
|
92
114
|
if ($host ~* "www") {
|
93
|
-
rewrite ^(.*)$ http://<%= site['server_name'].split.first %>$1
|
115
|
+
rewrite ^(.*)$ http://<%= site['server_name'].split.first %>$1 permanent;
|
116
|
+
break;
|
117
|
+
}
|
118
|
+
<% end %>
|
119
|
+
|
120
|
+
<% if site['always_www'] %>
|
121
|
+
if ($host != "www.<%= site['server_name'].split.first %>") {
|
122
|
+
rewrite ^(.*)$ http://www.<%= site['server_name'].split.first %>$1 permanent;
|
94
123
|
break;
|
95
124
|
}
|
96
125
|
<% end %>
|
@@ -113,6 +142,10 @@ http {
|
|
113
142
|
proxy_set_header Host $http_host;
|
114
143
|
proxy_redirect false;
|
115
144
|
proxy_max_temp_file_size 0;
|
145
|
+
<% if site['ssl'] %>
|
146
|
+
# set X-FORWARDED_PROTO so ssl_requirement plugin works
|
147
|
+
proxy_set_header X-FORWARDED_PROTO https;
|
148
|
+
<% end %>
|
116
149
|
|
117
150
|
# check for index.html for directory index
|
118
151
|
# if its there on the filesystem then rewite
|
@@ -16,12 +16,12 @@ error "Usage: generate_nginx_config [config file] [out file]" if ARGV.empty? &&
|
|
16
16
|
|
17
17
|
overwrite = !(%w(-y -o -f --force --overwrite) & ARGV).empty?
|
18
18
|
|
19
|
-
config = YAML.
|
19
|
+
config = YAML.load(ERB.new(env_in || ARGV.shift || 'config.yml').result)
|
20
20
|
template = file:'nginx.erb'
|
21
21
|
|
22
22
|
if File.exists?(out_file = env_out || ARGV.shift || 'nginx.conf') && !overwrite
|
23
23
|
error "=> #{out_file} already exists, won't overwrite it. Quitting."
|
24
24
|
else
|
25
|
-
open(out_file, 'w+').write(ERB.new(File.read(template), nil, '>').result
|
25
|
+
open(out_file, 'w+').write(ERB.new(File.read(template), nil, '>').result)
|
26
26
|
error "=> Wrote #{out_file} successfully."
|
27
27
|
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: nginx_config_generator
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: "1.
|
7
|
-
date: 2007-
|
6
|
+
version: "1.1"
|
7
|
+
date: 2007-08-17 00:00:00 -07:00
|
8
8
|
summary: ""
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -30,7 +30,7 @@ authors:
|
|
30
30
|
- Chris Wanstrath
|
31
31
|
files:
|
32
32
|
- LICENSE
|
33
|
-
- Manifest
|
33
|
+
- Manifest
|
34
34
|
- README
|
35
35
|
- Rakefile
|
36
36
|
- bin/generate_nginx_config
|