Initial Home page
commit
2ba9b07b8c
|
@ -0,0 +1,780 @@
|
|||
# Instalación de GeoNode
|
||||
|
||||
## Requisitos Mínimos
|
||||
|
||||
* SO: Ubuntu 18.04
|
||||
* RAM: 6 GB
|
||||
* Dominio: ejemplo.com
|
||||
|
||||
## Componentes
|
||||
|
||||
* Servidor GeoNode v2.10.x
|
||||
* PostgreSQL
|
||||
* nginx
|
||||
* GeoSafe
|
||||
* Risk Tools
|
||||
* Java 8
|
||||
|
||||
## Servidor GeoNode
|
||||
|
||||
Proceso de instalación del servidor GeoNode
|
||||
|
||||
### Instalación de dependencias
|
||||
|
||||
Paquetes usados para GeoNode Core,
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
sudo apt-get install -y python-gdal gdal-bin \
|
||||
python-paver python-pip python-dev python-virtualenv virtualenvwrapper \
|
||||
libxml2 libxml2-dev gettext \
|
||||
libxslt1-dev libjpeg-dev libpng-dev libpq-dev libgdal-dev libgdal20 \
|
||||
software-properties-common build-essential \
|
||||
git unzip gcc zlib1g-dev libgeos-dev libproj-dev \
|
||||
sqlite3 spatialite-bin libsqlite3-mod-spatialite
|
||||
```
|
||||
|
||||
Paquete del Kit de Desarrollo Java (OpenJDK), asegurese que se usa la versión de Java 8.0 (y no la versión 11).
|
||||
|
||||
```
|
||||
sudo apt install -y openjdk-8-jdk-headless default-jdk-headless && \
|
||||
sudo update-java-alternatives --jre-headless --jre --set java-1.8.0-openjdk-amd64
|
||||
java -version
|
||||
```
|
||||
|
||||
Let's Encrypt stack,
|
||||
|
||||
```
|
||||
sudo add-apt-repository ppa:certbot/certbot && \
|
||||
sudo apt update -y ; sudo apt install python-certbot-nginx -y
|
||||
```
|
||||
|
||||
Actualizar y limpiar sistema en general
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
sudo apt -y dist-upgrade
|
||||
sudo apt -y autoremove
|
||||
sudo apt -y autoclean
|
||||
```
|
||||
|
||||
### Crear usuario dedicado
|
||||
|
||||
El usuario definido para estas tareas tendrá pertenecerá al grupo sudo, por lo que tendrá derechos administrativos.
|
||||
|
||||
```
|
||||
sudo adduser geonode
|
||||
sudo usermod -aG sudo geonode
|
||||
su geonode
|
||||
```
|
||||
|
||||
### Establecimiento de Ambiente de Trabajo GeoNode
|
||||
|
||||
Creación de folder geonode
|
||||
|
||||
```
|
||||
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
|
||||
mkvirtualenv geonode
|
||||
```
|
||||
|
||||
Guardar permanentemente el ambiente virtualenvwrapper,
|
||||
|
||||
```
|
||||
cat << VENV >> ~/.bashrc
|
||||
|
||||
export WORKON_HOME=/home/geonode/.virtualenvs
|
||||
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
|
||||
VENV
|
||||
```
|
||||
|
||||
Crear directorio base GeoNode,
|
||||
|
||||
```
|
||||
sudo mkdir -p /opt/geonode/
|
||||
sudo usermod -a -G www-data geonode
|
||||
sudo chown -Rf geonode:www-data /opt/geonode/
|
||||
sudo chmod -Rf 775 /opt/geonode/
|
||||
```
|
||||
|
||||
Clonamos repositorio, Importante: Usaremos la rama estable 2.10.x
|
||||
|
||||
```
|
||||
cd /opt
|
||||
git clone https://github.com/GeoNode/geonode.git -b 2.10.x geonode
|
||||
|
||||
cd /opt/geonode
|
||||
git checkout 2.10.x
|
||||
pip install -r requirements.txt --upgrade --no-cache --no-cache-dir
|
||||
pip install -e . --upgrade
|
||||
|
||||
pip install pygdal=="`gdal-config --version`.*"
|
||||
cd $HOME
|
||||
```
|
||||
|
||||
### Base de Datos PostgreSQL - PostGIS
|
||||
|
||||
Agregar versión superior a los repositorios, v11.
|
||||
|
||||
```
|
||||
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
|
||||
sudo wget --no-check-certificate --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
||||
|
||||
sudo apt update
|
||||
sudo apt install -y postgresql-11 postgresql-11-postgis-2.5 postgresql-11-postgis-2.5-scripts postgresql-contrib-11 postgresql-client-11
|
||||
```
|
||||
|
||||
Creación de bases de datos:
|
||||
|
||||
* geonode
|
||||
* geonode_data
|
||||
|
||||
#### Usuario de base de datos
|
||||
|
||||
```
|
||||
sudo -u postgres createuser -P geonode
|
||||
```
|
||||
|
||||
Elija una contraseña y guárdela, para fines de ejemplo usaremos '*geonode*'.
|
||||
|
||||
Crear base de datos,
|
||||
|
||||
```
|
||||
sudo -u postgres createdb -O geonode geonode
|
||||
sudo -u postgres createdb -O geonode geonode_data
|
||||
```
|
||||
|
||||
Configurar base para extensión PostGIS,
|
||||
|
||||
```
|
||||
sudo -u postgres psql -d geonode_data -c 'CREATE EXTENSION postgis;'
|
||||
sudo -u postgres psql -d geonode_data -c 'GRANT ALL ON geometry_columns TO PUBLIC;'
|
||||
sudo -u postgres psql -d geonode_data -c 'GRANT ALL ON spatial_ref_sys TO PUBLIC;'
|
||||
sudo -u postgres psql -d geonode_data -c 'GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO geonode;'
|
||||
```
|
||||
|
||||
Finalmente editar las políticas de acceso de usuario,
|
||||
|
||||
```
|
||||
sudo nano /etc/postgresql/11/main/pg_hba.conf
|
||||
```
|
||||
|
||||
Encuentra la línea peer y edítela para verse de la siguiente manera,
|
||||
|
||||
```
|
||||
#local all all peer
|
||||
local all all trust
|
||||
```
|
||||
|
||||
Reiniciar postgresql,
|
||||
|
||||
```
|
||||
sudo service postgresql restart
|
||||
```
|
||||
|
||||
En caso de necesitar probar la conexión se puede ejecutar,
|
||||
|
||||
```
|
||||
psql -U geonode geonode
|
||||
\q
|
||||
```
|
||||
|
||||
### GeoServer
|
||||
|
||||
GeoServer es un componente básico para GeoNode y para ejecutarse de manera estable se usará Apache Tomcat 8 como contenedor Java Servlet, asegurese de estár usando Java 8
|
||||
|
||||
```
|
||||
java -version
|
||||
|
||||
sudo wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.54/bin/apache-tomcat-8.5.54.tar.gz
|
||||
sudo tar xzf apache-tomcat-8.5.54.tar.gz
|
||||
sudo mv apache-tomcat-8.5.54 /usr/local/apache-tomcat8
|
||||
|
||||
sudo useradd -m -U -s /bin/false tomcat
|
||||
sudo usermod -a -G www-data tomcat
|
||||
sudo sed -i -e 's/xom-\*\.jar/xom-\*\.jar,bcprov\*\.jar/g' /usr/local/apache-tomcat8/conf/catalina.properties
|
||||
|
||||
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
|
||||
echo 'JAVA_HOME='$JAVA_HOME | sudo tee -a /usr/local/apache-tomcat8/bin/setenv.sh
|
||||
|
||||
sudo usermod -a -G www-data tomcat
|
||||
|
||||
sudo sh -c 'chmod +x /usr/local/apache-tomcat8/bin/*.sh'
|
||||
sudo chown -Rf tomcat:www-data /usr/local/apache-tomcat8
|
||||
```
|
||||
|
||||
Crear un servicio para el inicio de tomcat,
|
||||
|
||||
```
|
||||
sudo nano /etc/systemd/system/tomcat.service
|
||||
|
||||
|
||||
[Unit]
|
||||
Description=Tomcat 8.5 servlet container
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
|
||||
User=tomcat
|
||||
Group=tomcat
|
||||
|
||||
Environment="JAVA_HOME=/usr/lib/jvm/default-java"
|
||||
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
|
||||
|
||||
Environment="CATALINA_BASE=/usr/local/apache-tomcat8"
|
||||
Environment="CATALINA_HOME=/usr/local/apache-tomcat8"
|
||||
Environment="CATALINA_PID=/usr/local/apache-tomcat8/temp/tomcat.pid"
|
||||
|
||||
ExecStart=/usr/local/apache-tomcat8/bin/startup.sh
|
||||
ExecStop=/usr/local/apache-tomcat8/bin/shutdown.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
Probar el servicio con,
|
||||
|
||||
```
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart tomcat
|
||||
sudo systemctl status tomcat.service
|
||||
```
|
||||
|
||||
activarlo por default con,
|
||||
|
||||
```
|
||||
sudo systemctl enable tomcat
|
||||
```
|
||||
|
||||
Preparar directororio GeoServer data y logs,
|
||||
|
||||
```
|
||||
sudo mkdir -p /opt/data
|
||||
sudo chown -Rf geonode:www-data /opt/data
|
||||
sudo chmod -Rf 775 /opt/data
|
||||
sudo mkdir -p /opt/data/logs
|
||||
sudo chown -Rf geonode:www-data /opt/data/logs
|
||||
sudo chmod -Rf 775 /opt/data/logs
|
||||
|
||||
# Download and extract the default GEOSERVER_DATA_DIR
|
||||
#GeoNode 2.10.x !> GeoServer 2.14.x
|
||||
sudo wget --no-check-certificate https://build.geo-solutions.it/geonode/geoserver/latest/data-2.14.4.zip
|
||||
sudo unzip -q data-2.14.4.zip -d /opt/data/
|
||||
|
||||
sudo mv /opt/data/data/ /opt/data/geoserver_data
|
||||
sudo chown -Rf tomcat:www-data /opt/data/geoserver_data
|
||||
sudo chmod -Rf 775 /opt/data/geoserver_data
|
||||
|
||||
sudo mkdir -p /opt/data/geoserver_logs
|
||||
sudo chown -Rf tomcat:www-data /opt/data/geoserver_logs
|
||||
sudo chmod -Rf 775 /opt/data/geoserver_logs
|
||||
|
||||
sudo mkdir -p /opt/data/gwc_cache_dir
|
||||
sudo chown -Rf tomcat:www-data /opt/data/gwc_cache_dir
|
||||
sudo chmod -Rf 775 /opt/data/gwc_cache_dir
|
||||
|
||||
# Download and install GeoServer
|
||||
sudo wget --no-check-certificate https://build.geo-solutions.it/geonode/geoserver/latest/geoserver-2.14.4.war
|
||||
sudo mv geoserver-2.14.4.war /usr/local/apache-tomcat8/webapps/geoserver.war
|
||||
```
|
||||
|
||||
\
|
||||
Configurar opciones del servelt java,
|
||||
|
||||
```
|
||||
sudo sed -i -e "s/JAVA_OPTS=/#JAVA_OPTS=/g" /usr/local/apache-tomcat8/bin/setenv.sh
|
||||
|
||||
echo '
|
||||
GEOSERVER_DATA_DIR="/opt/data/geoserver_data"
|
||||
GEOSERVER_LOG_LOCATION="/opt/data/geoserver_logs/geoserver.log"
|
||||
GEOWEBCACHE_CACHE_DIR="/opt/data/gwc_cache_dir"
|
||||
GEOFENCE_DIR="$GEOSERVER_DATA_DIR/geofence"
|
||||
TIMEZONE="UTC"
|
||||
|
||||
JAVA_OPTS="-server -Djava.awt.headless=true -Dorg.geotools.shapefile.datetime=true -XX:+UseParallelGC -XX:ParallelGCThreads=4 -Dfile.encoding=UTF8 -Duser.timezone=$TIMEZONE -Xms512m -Xmx4096m -Djavax.servlet.request.encoding=UTF-8 -Djavax.servlet.response.encoding=UTF-8 -DGEOSERVER_CSRF_DISABLED=true -DGEOSERVER_DATA_DIR=$GEOSERVER_DATA_DIR -Dgeofence.dir=$GEOFENCE_DIR -DGEOSERVER_LOG_LOCATION=$GEOSERVER_LOG_LOCATION -DGEOWEBCACHE_CACHE_DIR=$GEOWEBCACHE_CACHE_DIR"'| sudo tee -a /usr/local/apache-tomcat8/bin/setenv.sh
|
||||
```
|
||||
|
||||
Reiniciar servidor para aplicar cambios,
|
||||
|
||||
```
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart tomcat
|
||||
sudo systemctl status tomcat.service
|
||||
```
|
||||
|
||||
Revisar que no haya errores en los registros de inicio,
|
||||
|
||||
```
|
||||
sudo tail -F -n 300 /opt/data/geoserver_logs/geoserver.log
|
||||
```
|
||||
|
||||
Debería lucir algo como,
|
||||
|
||||
```
|
||||
2019-05-31 10:06:34,281 INFO [geoserver.wps] - Found 89 bindable processes in Deprecated processes
|
||||
2019-05-31 10:06:34,298 INFO [geoserver.wps] - Found 31 bindable processes in Vector processes
|
||||
2019-05-31 10:06:34,307 INFO [geoserver.wps] - Found 48 bindable processes in Geometry processes
|
||||
2019-05-31 10:06:34,307 INFO [geoserver.wps] - Found 1 bindable processes in PolygonLabelProcess
|
||||
2019-05-31 10:06:34,311 INFO [geoserver.wps] - Blacklisting process ras:ConvolveCoverage as the input kernel of type class javax.media.jai.KernelJAI cannot be handled
|
||||
2019-05-31 10:06:34,319 INFO [geoserver.wps] - Blacklisting process ras:RasterZonalStatistics2 as the input zones of type class java.lang.Object cannot be handled
|
||||
2019-05-31 10:06:34,320 INFO [geoserver.wps] - Blacklisting process ras:RasterZonalStatistics2 as the input nodata of type class it.geosolutions.jaiext.range.Range cannot be handled
|
||||
2019-05-31 10:06:34,320 INFO [geoserver.wps] - Blacklisting process ras:RasterZonalStatistics2 as the input rangeData of type class java.lang.Object cannot be handled
|
||||
2019-05-31 10:06:34,320 INFO [geoserver.wps] - Blacklisting process ras:RasterZonalStatistics2 as the output zonal statistics of type interface java.util.List cannot be handled
|
||||
2019-05-31 10:06:34,321 INFO [geoserver.wps] - Found 18 bindable processes in Raster processes
|
||||
2019-05-31 10:06:34,917 INFO [ows.OWSHandlerMapping] - Mapped URL path [/TestWfsPost] onto handler 'wfsTestServlet'
|
||||
2019-05-31 10:06:34,918 INFO [ows.OWSHandlerMapping] - Mapped URL path [/wfs/*] onto handler 'dispatcher'
|
||||
2019-05-31 10:06:34,918 INFO [ows.OWSHandlerMapping] - Mapped URL path [/wfs] onto handler 'dispatcher'
|
||||
2019-05-31 10:06:42,237 INFO [geoserver.security] - Start reloading user/groups for service named default
|
||||
2019-05-31 10:06:42,241 INFO [geoserver.security] - Reloading user/groups successful for service named default
|
||||
2019-05-31 10:06:42,357 WARN [auth.GeoFenceAuthenticationProvider] - INIT FROM CONFIG
|
||||
2019-05-31 10:06:42,494 INFO [geoserver.security] - AuthenticationCache Initialized with 1000 Max Entries, 300 seconds idle time, 600 seconds time to live and 3 concurrency level
|
||||
2019-05-31 10:06:42,495 INFO [geoserver.security] - AuthenticationCache Eviction Task created to run every 600 seconds
|
||||
2019-05-31 10:06:42,506 INFO [config.GeoserverXMLResourceProvider] - Found configuration file in /opt/data/gwc_cache_dir
|
||||
2019-05-31 10:06:42,516 INFO [config.GeoserverXMLResourceProvider] - Found configuration file in /opt/data/gwc_cache_dir
|
||||
2019-05-31 10:06:42,542 INFO [config.XMLConfiguration] - Wrote configuration to /opt/data/gwc_cache_dir
|
||||
2019-05-31 10:06:42,547 INFO [geoserver.importer] - Enabling import store: memory
|
||||
```
|
||||
|
||||
Aplicamos los últimos cambios, y creamos
|
||||
|
||||
```
|
||||
cd /opt/geonode
|
||||
python manage.py makemigrations
|
||||
python manage.py migrate
|
||||
```
|
||||
|
||||
De ser así, entonces el servidor GeoServer debería estarse ejecutando en,
|
||||
|
||||
```
|
||||
http://localhost:8080/geoserver/
|
||||
```
|
||||
|
||||
Nota: En caso de errores o no existir el archivo de registros, revisar /usr/local/apache-tomcat8/logs/catalina.out
|
||||
|
||||
### Servidor Web
|
||||
|
||||
Instalar y configurar NGINX
|
||||
|
||||
```
|
||||
sudo apt install -y nginx uwsgi uwsgi-plugin-python
|
||||
```
|
||||
|
||||
#### Servir GeoNode y GeoServer con NGINX
|
||||
|
||||
Creamos el archivo con la configuración deseada para /etc/uwsgi/apps-available/geonode.ini
|
||||
|
||||
```
|
||||
sudo nano /etc/uwsgi/apps-available/geonode.ini
|
||||
|
||||
[uwsgi]
|
||||
socket = 0.0.0.0:8000
|
||||
uid = geonode
|
||||
gid = www-data
|
||||
|
||||
plugins = python
|
||||
virtualenv = /home/geonode/.virtualenvs/geonode
|
||||
env = DEBUG=False
|
||||
env = DJANGO_SETTINGS_MODULE=geonode.settings
|
||||
env = SECRET_KEY='RanD0m%3cr3tK3y'
|
||||
env = SITE_HOST_NAME=localhost
|
||||
env = SITEURL=http://localhost/
|
||||
env = LOCKDOWN_GEONODE=False
|
||||
env = SESSION_EXPIRED_CONTROL_ENABLED=True
|
||||
env = FORCE_SCRIPT_NAME=
|
||||
env = EMAIL_ENABLE=False
|
||||
env = DJANGO_EMAIL_HOST_USER=
|
||||
env = DJANGO_EMAIL_HOST_PASSWORD=
|
||||
env = DJANGO_EMAIL_HOST=localhost
|
||||
env = DJANGO_EMAIL_PORT=25
|
||||
env = DJANGO_EMAIL_USE_TLS=False
|
||||
env = DEFAULT_FROM_EMAIL=GeoNode <no-reply@localhost>
|
||||
env = MONITORING_ENABLED=True
|
||||
env = GEOSERVER_PUBLIC_HOST=localhost
|
||||
env = GEOSERVER_PUBLIC_PORT=
|
||||
env = GEOSERVER_ADMIN_PASSWORD=geoserver
|
||||
env = GEOSERVER_LOCATION=http://localhost/geoserver/
|
||||
env = GEOSERVER_PUBLIC_LOCATION=http://localhost/geoserver/
|
||||
env = GEOSERVER_WEB_UI_LOCATION=http://localhost/geoserver/
|
||||
env = RESOURCE_PUBLISHING=False
|
||||
env = ADMIN_MODERATE_UPLOADS=False
|
||||
env = GROUP_PRIVATE_RESOURCES=False
|
||||
env = GROUP_MANDATORY_RESOURCES=False
|
||||
env = OGC_REQUEST_TIMEOUT=60
|
||||
env = OGC_REQUEST_MAX_RETRIES=3
|
||||
env = OGC_REQUEST_POOL_MAXSIZE=100
|
||||
env = OGC_REQUEST_POOL_CONNECTIONS=100
|
||||
env = EXIF_ENABLED=True
|
||||
env = CREATE_LAYER=False
|
||||
env = FAVORITE_ENABLED=True
|
||||
|
||||
chdir = /opt/geonode
|
||||
module = geonode.wsgi:application
|
||||
|
||||
processes = 4
|
||||
threads = 2
|
||||
enable-threads = true
|
||||
master = true
|
||||
|
||||
# logging
|
||||
# path to where uwsgi logs will be saved
|
||||
logto = /opt/data/logs/geonode.log
|
||||
daemonize = /opt/data/logs/geonode.log
|
||||
touch-reload = /opt/geonode/geonode/wsgi.py
|
||||
buffer-size = 32768
|
||||
max-requests = 500
|
||||
harakiri = 300 # respawn processes taking more than 5 minutes (300 seconds)
|
||||
max-requests = 500 # respawn processes after serving 5000 requests
|
||||
# limit-as = 1024 # avoid Errno 12 cannot allocate memory
|
||||
harakiri-verbose = true
|
||||
vacuum = true
|
||||
thunder-lock = true
|
||||
```
|
||||
|
||||
a continuación habilitamos la configuración UWSGI y reiniciamos el servicio para que se activen los cambios,
|
||||
|
||||
```
|
||||
sudo ln -s /etc/uwsgi/apps-available/geonode.ini /etc/uwsgi/apps-enabled/geonode.ini
|
||||
sudo service uwsgi restart
|
||||
```
|
||||
|
||||
Respaldamos la configuración original y configuramos el servidor nginx,
|
||||
|
||||
```
|
||||
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
|
||||
|
||||
echo "" |sudo tee /etc/nginx/nginx.conf
|
||||
sudo nano /etc/nginx/nginx.conf
|
||||
#Copiar y pegar
|
||||
|
||||
user www-data;
|
||||
worker_processes auto;
|
||||
pid /run/nginx.pid;
|
||||
include /etc/nginx/modules-enabled/*.conf;
|
||||
|
||||
events {
|
||||
worker_connections 768;
|
||||
# multi_accept on;
|
||||
}
|
||||
|
||||
http {
|
||||
##
|
||||
# Basic Settings
|
||||
##
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
keepalive_timeout 65;
|
||||
types_hash_max_size 2048;
|
||||
# server_tokens off;
|
||||
|
||||
# server_names_hash_bucket_size 64;
|
||||
# server_name_in_redirect off;
|
||||
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
##
|
||||
# SSL Settings
|
||||
##
|
||||
|
||||
ssl_protocols TLSv1.3 TLSv1.2; # Dropping SSLv3, ref: POODLE
|
||||
ssl_prefer_server_ciphers on;
|
||||
|
||||
##
|
||||
# Logging Settings
|
||||
##
|
||||
|
||||
access_log /var/log/nginx/access.log;
|
||||
error_log /var/log/nginx/error.log;
|
||||
|
||||
##
|
||||
# Gzip Settings
|
||||
##
|
||||
|
||||
gzip on;
|
||||
gzip_vary on;
|
||||
gzip_proxied any;
|
||||
gzip_http_version 1.1;
|
||||
gzip_disable "MSIE [1-6]\.";
|
||||
gzip_buffers 16 8k;
|
||||
gzip_min_length 1100;
|
||||
gzip_comp_level 6;
|
||||
gzip_types video/mp4 text/plain application/javascript application/x-javascript text/javascript text/xml text/css image/jpeg;
|
||||
|
||||
##
|
||||
# Virtual Host Configs
|
||||
##
|
||||
|
||||
include /etc/nginx/conf.d/*.conf;
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
}
|
||||
```
|
||||
|
||||
Removemos sitio predefinido y creamos el archivo de configuración de NGINX,
|
||||
|
||||
```
|
||||
sudo rm /etc/nginx/sites-enabled/default
|
||||
|
||||
sudo nano /etc/nginx/sites-available/geonode
|
||||
|
||||
uwsgi_intercept_errors on;
|
||||
|
||||
upstream geoserver_proxy {
|
||||
server localhost:8080;
|
||||
}
|
||||
|
||||
# Expires map
|
||||
map $sent_http_content_type $expires {
|
||||
default off;
|
||||
text/html epoch;
|
||||
text/css max;
|
||||
application/javascript max;
|
||||
~image/ max;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
|
||||
root /var/www/html;
|
||||
index index.html index.htm index.nginx-debian.html;
|
||||
|
||||
server_name _;
|
||||
|
||||
charset utf-8;
|
||||
|
||||
etag on;
|
||||
expires $expires;
|
||||
proxy_read_timeout 600s;
|
||||
# set client body size to 2M #
|
||||
client_max_body_size 50000M;
|
||||
|
||||
location / {
|
||||
etag off;
|
||||
uwsgi_pass 127.0.0.1:8000;
|
||||
uwsgi_read_timeout 600s;
|
||||
include uwsgi_params;
|
||||
}
|
||||
|
||||
location /static/ {
|
||||
alias /opt/geonode/geonode/static_root/;
|
||||
}
|
||||
|
||||
location /uploaded/ {
|
||||
alias /opt/geonode/geonode/uploaded/;
|
||||
}
|
||||
|
||||
location /geoserver {
|
||||
proxy_pass http://geoserver_proxy;
|
||||
include proxy_params;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Revisamos que no haya errores en la sintaxis,
|
||||
|
||||
```
|
||||
sudo nginx -t
|
||||
```
|
||||
|
||||
Habilitamos sitio y reiniciamos servicios,
|
||||
|
||||
```
|
||||
sudo ln -s /etc/nginx/sites-available/geonode /etc/nginx/sites-enabled/geonode
|
||||
sudo systemctl restart tomcat
|
||||
sudo service nginx restart
|
||||
```
|
||||
|
||||
Actualizamos la información estática de GeoNode,
|
||||
|
||||
```
|
||||
workon geonode
|
||||
cd /opt/geonode
|
||||
python manage.py collectstatic --no-input
|
||||
```
|
||||
|
||||
Actualizamos la configuración OAuth2 de GeoNode y GeoServer,
|
||||
|
||||
```
|
||||
workon geonode
|
||||
cd /opt/geonode
|
||||
|
||||
# Solo ejecutarse una ocasión al inicio de la configuración
|
||||
sudo cp package/support/geonode.binary /usr/bin/geonode
|
||||
sudo cp package/support/geonode.updateip /usr/bin/geonode_updateip
|
||||
sudo chmod +x /usr/bin/geonode
|
||||
sudo chmod +x /usr/bin/geonode_updateip
|
||||
pip install -e git+https://github.com/justquick/django-activity-stream.git#egg=django-activity-stream
|
||||
|
||||
# Update the GeoNode ip or hostname
|
||||
sudo PYTHONWARNINGS=ignore VIRTUAL_ENV=$VIRTUAL_ENV DJANGO_SETTINGS_MODULE=geonode.settings GEONODE_ETC=/opt/geonode GEOSERVER_DATA_DIR=/opt/data/geoserver_data TOMCAT_SERVICE="service tomcat" APACHE_SERVICE="service nginx" geonode_updateip -p localhost
|
||||
```
|
||||
|
||||
#### Configurar para usar la base de datos PostgreSQL
|
||||
|
||||
Crear archivo de configuraciones locales desde un archivo de ejemplo,
|
||||
|
||||
```
|
||||
workon geonode
|
||||
cd /opt/geonode
|
||||
|
||||
cp geonode/local_settings.py.geoserver.sample geonode/local_settings.py
|
||||
```
|
||||
|
||||
Cambie el password "genode_pass" por el suyo,
|
||||
|
||||
```
|
||||
sudo sed -i -e "s/'PASSWORD': 'geonode',/'PASSWORD': 'geonode_pass',/g" geonode/local_settings.py
|
||||
```
|
||||
|
||||
Se detiene tomcat y se inicia GeoNode
|
||||
|
||||
```
|
||||
sudo systemctl stop tomcat
|
||||
|
||||
DJANGO_SETTINGS_MODULE=geonode.local_settings paver reset
|
||||
DJANGO_SETTINGS_MODULE=geonode.local_settings paver setup
|
||||
DJANGO_SETTINGS_MODULE=geonode.local_settings paver sync
|
||||
DJANGO_SETTINGS_MODULE=geonode.local_settings python manage.py collectstatic --noinput
|
||||
```
|
||||
|
||||
Actualizamos la configuración UWSGI,
|
||||
|
||||
```
|
||||
sudo sed -i "s|geonode.settings|geonode.local_settings|g" /etc/uwsgi/apps-enabled/geonode.ini
|
||||
```
|
||||
|
||||
Reiniciamos servicio uwsg para aplicar actualización ,
|
||||
|
||||
```
|
||||
sudo service uwsgi restart
|
||||
|
||||
sudo PYTHONWARNINGS=ignore VIRTUAL_ENV=$VIRTUAL_ENV DJANGO_SETTINGS_MODULE=geonode.local_settings GEONODE_ETC=/opt/geonode GEOSERVER_DATA_DIR=/opt/data/geoserver_data TOMCAT_SERVICE="service tomcat" APACHE_SERVICE="service nginx" geonode_updateip -p localhost
|
||||
```
|
||||
|
||||
Con estos cambios debería estar diponible,
|
||||
|
||||
GeoNode en http://localhost/
|
||||
|
||||
Para inicio de sesión puede acceder con el usuario y contraseña: **admin**
|
||||
|
||||
GeoServer en http://localhost/geoserver/
|
||||
|
||||
Para inicio de sesión puede acceder con el usuario **admin** y contraseña: **geoserver**
|
||||
|
||||
#### Configurar GeoNode y GeoServer para dominio propio
|
||||
|
||||
1. NGINX
|
||||
|
||||
Entrar a la configuración del dominio y actualizar la directiva, 'server_name' y reiniciar el servicio,
|
||||
|
||||
```
|
||||
sudo nano /etc/nginx/sites-enabled/geonode
|
||||
|
||||
server_name ejemplo.com www.ejemplo.com;
|
||||
sudo service nginx restart
|
||||
|
||||
|
||||
```
|
||||
2. UWSGI\
|
||||
Cambiar localhost por el dominio a utilizar en todo el documento y reiniciar el servicio,
|
||||
|
||||
```
|
||||
sudo sed -i "s|localhost|www.ejemplo.com|g" /etc/uwsgi/apps-enabled/geonode.ini
|
||||
sudo service uwsgi restart
|
||||
|
||||
|
||||
```
|
||||
3. Actualizar OAuth2,
|
||||
|
||||
```
|
||||
workon geonode
|
||||
cd /opt/geonode
|
||||
|
||||
# Update the GeoNode ip or hostname
|
||||
sudo PYTHONWARNINGS=ignore VIRTUAL_ENV=$VIRTUAL_ENV DJANGO_SETTINGS_MODULE=geonode.local_settings GEONODE_ETC=/opt/geonode GEOSERVER_DATA_DIR=/opt/data/geoserver_data TOMCAT_SERVICE="service tomcat" APACHE_SERVICE="service nginx" geonode_updateip -l localhost -p www.ejemplo.com
|
||||
|
||||
|
||||
```
|
||||
4. Actualizar los enlaces existentes en GeoNode para el nuevo hostname,
|
||||
|
||||
```
|
||||
workon geonode
|
||||
cd /opt/geonode
|
||||
|
||||
# Update the GeoNode ip or hostname
|
||||
DJANGO_SETTINGS_MODULE=geonode.local_settings python manage.py migrate_baseurl --source-address=http://localhost --target-address=http://www.example.org
|
||||
|
||||
|
||||
```
|
||||
|
||||
### Asegurar por medio de HTTPS
|
||||
|
||||
Creamos el certificado,
|
||||
|
||||
```
|
||||
sudo certbot --nginx -d example.org -d www.example.org
|
||||
```
|
||||
|
||||
1. Actualizar los URIs de redireccionamiento OAuth2 de GeoNode\
|
||||
Desde el dashboard vaya a, Home › Django/GeoNode OAuth Toolkit › Applications › GeoServer\
|
||||
Agregue los **Redirecs URIs**:\
|
||||
\
|
||||
*https://ejemplo.com/geoserver/\
|
||||
https://www.ejemplo.com/geoserver/*
|
||||
2. Actualice el URL base del proxy, del GeoServer,\
|
||||
\
|
||||
**Proxy Base URL**\
|
||||
*https://www.ejemplo.com/geoserver*
|
||||
3. Actualizar el enlace base del GeoServer,\
|
||||
Desde la interfaz de administración, vaya a \
|
||||
Security > Users, Groups, Roles > geonode REST role service\
|
||||
\
|
||||
**Base Server URL**\
|
||||
*https://www.ejemplo.com*
|
||||
4. Actualizar los parametros OAuth2 de GeoServer.\
|
||||
Desde la interfaz de administración, vaya a \
|
||||
Security > Authentication > Authentication Filters > geonode-oauth2
|
||||
5. [x] Force Access Token URI HTTPS Secure Protocol\
|
||||
Access Token URI\
|
||||
*https://www.ejemplo.com/o/token/*
|
||||
6. [x] Force User Authorization URI HTTPS Secured Protocol\
|
||||
User Authorization URI\
|
||||
*https://www.ejemplo.com/o/authorize/*
|
||||
|
||||
Redirect URI\
|
||||
*https://www.ejemplo.com/o/geoserver/*
|
||||
|
||||
CheckToken Endpoint URL\
|
||||
*https://www.ejemplo.com/api/o/v4/tokeninfo/*
|
||||
|
||||
Logout URI\
|
||||
*https://www.ejemplo.com/account/logout/*
|
||||
7. Actualizar la configuración UWSGI,\
|
||||
Reemplazar http a https en /etc/uwsgi/apps-enabled/geonode.ini
|
||||
|
||||
```
|
||||
sed -i "s|http|https|g" /etc/uwsgi/apps-enabled/geonode.ini
|
||||
|
||||
|
||||
```
|
||||
|
||||
Agregar variables adicionales para SSL,
|
||||
|
||||
```
|
||||
env = SECURE_SSL_REDIRECT=True
|
||||
#Evitar su uso en ambientes de desarrollo
|
||||
#env = SECURE_HSTS_INCLUDE_SUBDOMAINS=True
|
||||
env = AVATAR_GRAVATAR_SSL=True
|
||||
|
||||
|
||||
```
|
||||
|
||||
Reiniciar servicio,
|
||||
|
||||
```
|
||||
sudo service uwsgi restart
|
||||
|
||||
|
||||
```
|
Loading…
Reference in New Issue