default[:nominatim][:dbadmins] = []
-default[:nominatim][:dbcluster] = "14/main"
+default[:nominatim][:dbcluster] = "17/main"
default[:nominatim][:dbname] = "nominatim"
default[:nominatim][:postgis] = "3"
default[:nominatim][:logdir] = "/var/log/nominatim"
default[:nominatim][:ui_revision] = "master"
default[:nominatim][:qa_repository] = "https://github.com/osm-search/Nominatim-Data-Analyser"
default[:nominatim][:qa_revision] = "deploy"
-default[:nominatim][:api_workers] = 10
+default[:nominatim][:api_workers]["nominatim"] = 8
+default[:nominatim][:api_workers]["nominatim_fastlane"] = 2
default[:nominatim][:api_pool_size] = 10
default[:nominatim][:api_query_timeout] = 5
default[:nominatim][:api_request_timeout] = 20
end
end
-systemd_service "nominatim" do
- description "Nominatim running as a gunicorn application"
- user "www-data"
- group "www-data"
- working_directory project_directory
- standard_output "append:#{node[:nominatim][:logdir]}/gunicorn.log"
- standard_error "inherit"
- exec_start "#{python_directory}/bin/gunicorn --max-requests 500000 -b unix:/run/gunicorn-nominatim.openstreetmap.org.sock -w #{node[:nominatim][:api_workers]} --worker-class asgi --worker-connections 1000 --protocol uwsgi 'nominatim_api.server.falcon.server:run_wsgi()'"
- exec_reload "/bin/kill -s HUP $MAINPID"
- kill_mode "mixed"
- timeout_stop_sec 5
- private_tmp true
- requires "nominatim.socket"
- after "network.target"
-end
-
-systemd_socket "nominatim" do
- description "Gunicorn socket for Nominatim"
- listen_stream "/run/gunicorn-nominatim.openstreetmap.org.sock"
- socket_user "www-data"
+%w[nominatim nominatim_fastlane].each do |name|
+ systemd_service name do
+ description "Nominatim running as a gunicorn application (#{name})"
+ user "www-data"
+ group "www-data"
+ working_directory project_directory
+ exec_start "#{python_directory}/bin/gunicorn --max-requests 500000 -b unix:/run/gunicorn-#{name}.openstreetmap.org.sock -w #{node[:nominatim][:api_workers][name]} --worker-class asgi --worker-connections 1000 --protocol uwsgi 'nominatim_api.server.falcon.server:run_wsgi()'"
+ exec_reload "/bin/kill -s HUP $MAINPID"
+ kill_mode "mixed"
+ timeout_stop_sec 5
+ private_tmp true
+ requires "#{name}.socket"
+ after "network.target"
+ end
+
+ systemd_socket name do
+ description "Gunicorn socket for Nominatim (#{name})"
+ listen_stream "/run/gunicorn-#{name}.openstreetmap.org.sock"
+ socket_user "www-data"
+ end
end
ssl_certificate node[:fqdn] do
-upstream nominatim_service {
- server unix:/run/gunicorn-nominatim.openstreetmap.org.sock fail_timeout=0;
+<% %w(nominatim nominatim_fastlane).each do |sname| -%>
+upstream <%= sname %>_service {
+ server unix:/run/gunicorn-<%= sname %>.openstreetmap.org.sock fail_timeout=0;
}
+<% end -%>
map $uri $nominatim_script_name {
~^/*(.+?)\.php $1;
35.153.15.118 1; # gnome - https://github.com/openstreetmap/operations/issues/1160
}
+geo $proxyname {
+ default nominatim_service;
+<% @frontends.each do |frontend| -%>
+<% frontend.ipaddresses(:role => :external).sort.each do |address| -%>
+ <%= address %> nominatim_fastlane_service;
+<% end -%>
+<% end -%>
+}
+
map $server_protocol$http_user_agent $cleaned_user_agent {
default $http_user_agent;
"~^HTTP/1..Mozilla/" Script$http_user_agent;
return 204;
}
- uwsgi_pass nominatim_service;
+ uwsgi_pass $proxyname;
include uwsgi_params;
add_header Vary "accept-language";
:dbcluster => "17/main",
:flatnode_file => "/srv/nominatim.openstreetmap.org/planet-project/nodes.store",
:enable_qa_tiles => false,
- :api_workers => 12,
+ :api_workers => {
+ "nominatim" => 11
+ },
:api_pool_size => 8
}
)
:dbcluster => "17/main",
:enable_qa_tiles => true,
:flatnode_file => "/srv/nominatim.openstreetmap.org/planet-project/nodes.store",
- :api_workers => 24,
+ :api_workers => {
+ "nominatim" => 22
+ },
:api_pool_size => 8
}
)
:nominatim => {
:dbcluster => "17/main",
:flatnode_file => "/srv/nominatim.openstreetmap.org/planet-project/nodes.store",
- :api_workers => 19,
+ :api_workers => {
+ "nominatim" => 17
+ },
:api_pool_size => 5
}
)
:dbcluster => "17/main",
:flatnode_file => "/srv/nominatim.openstreetmap.org/planet-project/nodes.store",
:api_flavour => "python",
- :api_workers => 24,
+ :api_workers => {
+ "nominatim" => 22
+ },
:api_pool_size => 8
}
)