Last active
February 7, 2023 01:52
-
-
Save pmNiko/0481c45a6d135b64ae560d1427c5d676 to your computer and use it in GitHub Desktop.
Apache server + user service
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# root en este caso public_html/.htaccess | |
RewriteEngine on | |
RewriteCond %{HTTP_HOST} <IP_HOST> [NC] | |
RewriteCond %{REQUEST_URI} ^/$ | |
Rewriterule ^(.*)$ https://<IP_HOST>/tasks [L,R=301] | |
ErrorDocument 404 https://<IP_HOST>errors/404.html | |
ErrorDocument 500 https://<IP_HOST>/errors/500.html | |
# subdirectorios en este caso public_html/tasks/.htaccess | |
RewriteEngine On | |
RewriteCond %{REQUEST_FILENAME} !-f | |
RewriteRule ^ index.html [QSA,L] | |
RewriteCond %{HTTPS} off | |
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.................___ Complementaciones para la configuración ___.................... | |
__________________________________________________________________________________________ | |
Complementando a la configuración del server Apache en Centos se describen | |
algunas consideraciones. | |
1 - Primero a tener en cuenta la configuración del archivo httpd.conf | |
a_ Se agrega el usuario cambiandolo por apache, o puede agregarse al grupo | |
b_ Se habilita el uso de .htaccess | |
c_ Se agrega al final la inclusión de los sitios habilitados | |
-> IncludeOptional sites-enabled | |
* Se adosa un archivo de muestra para entender mejor el ejemplo | |
2 - Para servir la app de front con React generamos el conf en sites-availables/tasks.conf | |
a_ En este caso se ha cambiado el directorio que sirve las apps y/o sitios estáticos. | |
* Se adosa un archivo de muestra para entender mejor el ejemplo | |
3 - Para los servicios rest vamos a realizar una configuración parecida, adosamos un archivo | |
de configuración para mejor entendimiento. | |
4 - Luego generamos los link simbólicos de los host virtuales que creamos en sites-availables | |
$ sudo ln -s /etc/httpd/sites-available/* /etc/httpd/sites-enabled/ | |
5 - Ahora reiniciamos el servicio | |
$ sudo systemctl restart httpd | |
6 - Para tener un redireccionamiento correcto del router de React JS debemos colocar | |
un archivo .htaccess en el root de directorios y otro en la raiz de cada subdirectorio | |
* Se agraga dos posibles configuraciones de redireccionamiento. | |
7 - Por último se debe tener en cuenta el archivo .env-cmdrc para las variables de entorno | |
"production": { | |
"PUBLIC_URL": ".", | |
"REACT_APP_BASENAME": "/tasks", | |
"REACT_APP_RRHH_API_WEBSERVICE": "www.apitasks.myDommain.com/tasks", | |
"REACT_APP_RECAPTCHA_API_KEY": "kljgbaslhjñlasjfañlskjlasfñkasf54as54f54sf" | |
}, | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<VirtualHost *:80> | |
ServerName apitasks.myDommain.com | |
ServerAlias www.apitasks.myDommain.com | |
ProxyRequests Off | |
ProxyPreserveHost On | |
ProxyPass / <HOST>:<PORT>/api/v1/ | |
ProxyPassReverse / <HOST>:<PORT>/api/v1/ | |
ErrorLog /var/www/log/error.log | |
CustomLog /var/www/log/requests.log combined | |
# agregado por certbot para SSL | |
RewriteEngine on | |
RewriteCond %{SERVER_NAME} =apitasks.myDommain.com[OR] | |
RewriteCond %{SERVER_NAME} =www.apitasks.myDommain.com | |
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] | |
</VirtualHost> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ServerRoot "/etc/httpd" | |
# | |
# Listen: Allows you to bind Apache to specific IP addresses and/or | |
Listen 80 | |
Include conf.modules.d/*.conf | |
# | |
# If you wish httpd to run as a different user or group, you must run | |
# httpd as root initially and it will switch. | |
# | |
# User/Group: The name (or #number) of the user/group to run httpd as. | |
# It is usually good practice to create a dedicated user and group for | |
# running httpd, as with most system services. | |
# | |
User userservice | |
Group userservice | |
# as error documents. e.g. [email protected] | |
# | |
ServerAdmin root@localhost | |
# <Directory> blocks below. | |
# | |
<Directory /> | |
AllowOverride none | |
Require all denied | |
</Directory> | |
# symbolic links and aliases may be used to point to other locations. | |
# | |
DocumentRoot "/home/userservice/public_html" | |
# htaccess enabled | |
AccessFileName .htaccess | |
# | |
# Relax access to content within /var/www. | |
# | |
<Directory "/var/www"> | |
AllowOverride None | |
# Allow open access: | |
Require all granted | |
</Directory> | |
# Further relax access to the default document root: | |
<Directory "/var/www/html"> | |
# | |
# Possible values for the Options directive are "None", "All", | |
# or any combination of: | |
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews | |
# | |
# Note that "MultiViews" must be named *explicitly* --- "Options All" | |
# doesn't give it to you. | |
# | |
# The Options directive is both complicated and important. Please see | |
# http://httpd.apache.org/docs/2.4/mod/core.html#options | |
# for more information. | |
# | |
Options Indexes FollowSymLinks | |
# | |
# AllowOverride controls what directives may be placed in .htaccess files. | |
# It can be "All", "None", or any combination of the keywords: | |
# Options FileInfo AuthConfig Limit | |
# | |
AllowOverride None | |
# | |
# Controls who can get stuff from this server. | |
# | |
Require all granted | |
</Directory> | |
# | |
# DirectoryIndex: sets the file that Apache will serve if a directory | |
# is requested. | |
# | |
<IfModule dir_module> | |
DirectoryIndex index.html | |
</IfModule> | |
# | |
# The following lines prevent .htaccess and .htpasswd files from being | |
# viewed by Web clients. | |
# | |
<Files ".ht*"> | |
Require all denied | |
</Files> | |
# | |
# ErrorLog: The location of the error log file. | |
# If you do not specify an ErrorLog directive within a <VirtualHost> | |
# container, error messages relating to that virtual host will be | |
# logged here. If you *do* define an error logfile for a <VirtualHost> | |
# container, that host's errors will be logged there and not here. | |
# | |
ErrorLog "logs/error_log" | |
# | |
# LogLevel: Control the number of messages logged to the error_log. | |
# Possible values include: debug, info, notice, warn, error, crit, | |
# alert, emerg. | |
# | |
LogLevel warn | |
<IfModule log_config_module> | |
# | |
# The following directives define some format nicknames for use with | |
# a CustomLog directive (see below). | |
# | |
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined | |
LogFormat "%h %l %u %t \"%r\" %>s %b" common | |
<IfModule logio_module> | |
# You need to enable mod_logio.c to use %I and %O | |
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio | |
</IfModule> | |
# | |
# The location and format of the access logfile (Common Logfile Format). | |
# If you do not define any access logfiles within a <VirtualHost> | |
# container, they will be logged here. Contrariwise, if you *do* | |
# define per-<VirtualHost> access logfiles, transactions will be | |
# logged therein and *not* in this file. | |
# | |
#CustomLog "logs/access_log" common | |
# | |
# If you prefer a logfile with access, agent, and referer information | |
# (Combined Logfile Format) you can use the following directive. | |
# | |
CustomLog "logs/access_log" combined | |
</IfModule> | |
<IfModule alias_module> | |
# | |
# Redirect: Allows you to tell clients about documents that used to | |
# exist in your server's namespace, but do not anymore. The client | |
# will make a new request for the document at its new location. | |
# Example: | |
# Redirect permanent /foo http://www.example.com/bar | |
# | |
# Alias: Maps web paths into filesystem paths and is used to | |
# access content that does not live under the DocumentRoot. | |
# Example: | |
# Alias /webpath /full/filesystem/path | |
# | |
# If you include a trailing / on /webpath then the server will | |
# require it to be present in the URL. You will also likely | |
# need to provide a <Directory> section to allow access to | |
# the filesystem path. | |
# | |
# ScriptAlias: This controls which directories contain server scripts. | |
# ScriptAliases are essentially the same as Aliases, except that | |
# documents in the target directory are treated as applications and | |
# run by the server when requested rather than as documents sent to the | |
# client. The same rules about trailing "/" apply to ScriptAlias | |
# directives as to Alias. | |
# | |
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" | |
</IfModule> | |
# | |
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased | |
# CGI directory exists, if you have that configured. | |
# | |
<Directory "/var/www/cgi-bin"> | |
AllowOverride None | |
Options None | |
Require all granted | |
</Directory> | |
<IfModule mime_module> | |
# | |
# TypesConfig points to the file containing the list of mappings from | |
# filename extension to MIME-type. | |
# | |
TypesConfig /etc/mime.types | |
# | |
# AddType allows you to add to or override the MIME configuration | |
# file specified in TypesConfig for specific file types. | |
# | |
#AddType application/x-gzip .tgz | |
# | |
# AddEncoding allows you to have certain browsers uncompress | |
# information on the fly. Note: Not all browsers support this. | |
# | |
#AddEncoding x-compress .Z | |
#AddEncoding x-gzip .gz .tgz | |
# | |
# If the AddEncoding directives above are commented-out, then you | |
# probably should define those extensions to indicate media types: | |
# | |
AddType application/x-compress .Z | |
AddType application/x-gzip .gz .tgz | |
# | |
# AddHandler allows you to map certain file extensions to "handlers": | |
# actions unrelated to filetype. These can be either built into the server | |
# or added with the Action directive (see below) | |
# | |
# To use CGI scripts outside of ScriptAliased directories: | |
# (You will also need to add "ExecCGI" to the "Options" directive.) | |
# | |
#AddHandler cgi-script .cgi | |
# For type maps (negotiated resources): | |
#AddHandler type-map var | |
# | |
# Filters allow you to process content before it is sent to the client. | |
# | |
# To parse .shtml files for server-side includes (SSI): | |
# (You will also need to add "Includes" to the "Options" directive.) | |
# | |
AddType text/html .shtml | |
AddOutputFilter INCLUDES .shtml | |
</IfModule> | |
# | |
# Specify a default charset for all content served; this enables | |
# interpretation of all content as UTF-8 by default. To use the | |
# default browser choice (ISO-8859-1), or to allow the META tags | |
# in HTML content to override this choice, comment out this | |
# directive: | |
# | |
AddDefaultCharset UTF-8 | |
<IfModule mime_magic_module> | |
# | |
# The mod_mime_magic module allows the server to use various hints from the | |
# contents of the file itself to determine its type. The MIMEMagicFile | |
# directive tells the module where the hint definitions are located. | |
# | |
MIMEMagicFile conf/magic | |
</IfModule> | |
# | |
# Customizable error responses come in three flavors: | |
# 1) plain text 2) local redirects 3) external redirects | |
# | |
# Some examples: | |
#ErrorDocument 500 "The server made a boo boo." | |
#ErrorDocument 404 /missing.html | |
#ErrorDocument 404 "/cgi-bin/missing_handler.pl" | |
#ErrorDocument 402 http://www.example.com/subscription_info.html | |
# | |
# | |
# EnableMMAP and EnableSendfile: On systems that support it, | |
# memory-mapping or the sendfile syscall may be used to deliver | |
# files. This usually improves server performance, but must | |
# be turned off when serving from networked-mounted | |
# filesystems or if support for these functions is otherwise | |
# broken on your system. | |
# Defaults if commented: EnableMMAP On, EnableSendfile Off | |
# | |
#EnableMMAP off | |
EnableSendfile on | |
# Supplemental configuration | |
# | |
# Load config files in the "/etc/httpd/conf.d" directory, if any. | |
IncludeOptional conf.d/*.conf | |
IncludeOptional sites-enabled/*.conf # agregado manualmente | |
Include /etc/httpd/sites-available/tasks-le-ssl.conf # agregado por certbot | |
Include /etc/httpd/sites-available/apitasks-le-ssl.conf # agregado por certbot |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<VirtualHost *:80> | |
ServerName myDommain.com | |
ServerAlias www.myDommain.com | |
Alias "/tasks" "/home/userservice/public_html/tasks" | |
DocumentRoot /home/userservice/public_html | |
ErrorLog /var/www/log/error.log | |
CustomLog /var/www/log/requests.log combined | |
# agregado por certbot para SSL | |
RewriteEngine on | |
RewriteCond %{SERVER_NAME} =www.myDommain.com [OR] | |
RewriteCond %{SERVER_NAME} =myDommain.com | |
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] | |
</VirtualHost> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment