Difference between revisions of "Apache2"
Jump to navigation
Jump to search
Rafahsolis (talk | contribs) |
Rafahsolis (talk | contribs) m Tag: visualeditor |
||
| Line 4: | Line 4: | ||
/etc/apache2/sites-enabled (symbolic links to sites-available/*.conf files)<br /> | /etc/apache2/sites-enabled (symbolic links to sites-available/*.conf files)<br /> | ||
| − | == Virtual Hosts == | + | ==Virtual Hosts== |
Apache allows to have multiple web sites on the same server. To do this go to sites-available and create a<br /> | Apache allows to have multiple web sites on the same server. To do this go to sites-available and create a<br /> | ||
.conf file for each host you whant containing the following: | .conf file for each host you whant containing the following: | ||
| Line 30: | Line 30: | ||
Basic SSL VirtualHost: | Basic SSL VirtualHost: | ||
<nowiki><VirtualHost *:80> | <nowiki><VirtualHost *:80> | ||
| − | + | ServerName home.rra.lan | |
| − | + | ServerAdmin webmaster@rra.lan | |
| − | + | DocumentRoot /var/www/home.rra.lan | |
| − | + | ||
| − | + | Redirect permanent / https://home.rra.lan | |
| − | + | ErrorLog ${APACHE_LOG_DIR}/error.log | |
| − | + | CustomLog ${APACHE_LOG_DIR}/access.log combined | |
| − | </VirtualHost> | + | </VirtualHost> |
| − | <VirtualHost *:443> | + | <VirtualHost *:443> |
| − | + | ServerName home.rra.lan | |
| − | + | ServerAdmin webmaster@rra.lan | |
| − | + | DocumentRoot /var/www/home.rra.lan | |
| − | + | ErrorLog ${APACHE_LOG_DIR}/error.log | |
| − | + | CustomLog ${APACHE_LOG_DIR}/access.log combined | |
| − | + | ||
| − | + | SSLEngine on | |
| − | + | SSLCertificateKeyFile /etc/ssl/private/home.rra.lan.key | |
| − | + | SSLCertificateFile /etc/ssl/certs/home.rra.lan.crt | |
| − | + | SSLCertificateChainFile /etc/ssl/certs/FreeIPA-CA.crt | |
| − | </VirtualHost> | + | </VirtualHost> |
| − | </nowiki> | + | </nowiki> |
| − | == Redirect HTTP to HTTPS == | + | ==Redirect HTTP to HTTPS== |
sudo nano /etc/apache2/sites-available/redirect_HTTP_to_HTTPS.conf | sudo nano /etc/apache2/sites-available/redirect_HTTP_to_HTTPS.conf | ||
<nowiki><VirtualHost *:80> | <nowiki><VirtualHost *:80> | ||
| − | + | RewriteEngine on | |
| − | + | RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] | |
| − | </VirtualHost></nowiki> | + | </VirtualHost></nowiki> |
sudo ln -s /etc/apache2/sites-available/redirect_HTTP_to_HTTPS.conf /etc/apache2/sites-enable/redirect_HTTP_to_HTTPS | sudo ln -s /etc/apache2/sites-available/redirect_HTTP_to_HTTPS.conf /etc/apache2/sites-enable/redirect_HTTP_to_HTTPS | ||
| − | == Authentication == | + | ==Authentication== |
Create user account with: | Create user account with: | ||
| Line 66: | Line 66: | ||
Protect with the directory directive: | Protect with the directory directive: | ||
<nowiki><Directory "/usr/local/apache/htdocs/secret"> | <nowiki><Directory "/usr/local/apache/htdocs/secret"> | ||
| − | + | AuthType Basic | |
| − | + | AuthName "Restricted Files" | |
| − | + | # (Following line optional) | |
| − | + | AuthBasicProvider file | |
| − | + | AuthUserFile "/usr/local/apache/passwd/passwords" | |
| − | + | # Require user rbowen | |
| − | + | Require valid-user | |
| − | </Directory></nowiki> | + | </Directory></nowiki> |
| − | See more options at: https://httpd.apache.org/docs/2.4/es/howto/auth.html | + | |
| + | == Reverse Proxy == | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | a2enmod proxy proxy_http # HTTP | ||
| + | a2enmod proxy proxy_ftp # FTP | ||
| + | a2enmod proxy proxy_html # rewrite HTML links in proxy address space | ||
| + | a2enmod proxy proxy_ajp # Tomcat | ||
| + | a2enmod proxy | ||
| + | a2enmod rewrite | ||
| + | a2enmod deflate | ||
| + | a2enmod headers | ||
| + | a2enmod proxy_balancer | ||
| + | a2enmod proxy_connect | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ==== VirtualHost ProxyPass ==== | ||
| + | <syntaxhighlight lang="apache"> | ||
| + | <VirtualHost *:*> | ||
| + | ProxyPreserveHost On | ||
| + | |||
| + | # Servers to proxy the connection, or; | ||
| + | # List of application servers: | ||
| + | # Usage: | ||
| + | # ProxyPass / http://[IP Addr.]:[port]/ | ||
| + | # ProxyPassReverse / http://[IP Addr.]:[port]/ | ||
| + | # Example: | ||
| + | ProxyPass / http://0.0.0.0:8080/ | ||
| + | ProxyPassReverse / http://0.0.0.0:8080/ | ||
| + | |||
| + | ServerName localhost | ||
| + | </VirtualHost> | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | |||
| + | See more options at: | ||
| + | |||
| + | https://httpd.apache.org/docs/2.4/es/howto/auth.html | ||
| + | |||
| + | https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension | ||
| + | <br /> | ||
Revision as of 09:25, 22 March 2019
Web Server for linux.
Paths:
/etc/apache2/sites-available
/etc/apache2/sites-enabled (symbolic links to sites-available/*.conf files)
Virtual Hosts
Apache allows to have multiple web sites on the same server. To do this go to sites-available and create a
.conf file for each host you whant containing the following:
<VirtualHost *:80>
ServerAdmin rafael@herrerosolis.com
DocumentRoot /var/www/webfolder
ServerName www.yourwebpagename.com
ServerAlias www.yourwebpagename.com
ErrorLog /var/www/yourwebfolder/logs/error.log
# Posible values include: debug, info, notice, warn, error, crit.
# alert, emerg.
CustomLog /var/www/yourwebfolder/logs/access.log combined
</VirtualHost>
You should also enter in your domain administration panel and create the CNAMES to redirect trafic
to the public ip of this server
Basic SSL VirtualHost:
<VirtualHost *:80>
ServerName home.rra.lan
ServerAdmin webmaster@rra.lan
DocumentRoot /var/www/home.rra.lan
Redirect permanent / https://home.rra.lan
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName home.rra.lan
ServerAdmin webmaster@rra.lan
DocumentRoot /var/www/home.rra.lan
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateKeyFile /etc/ssl/private/home.rra.lan.key
SSLCertificateFile /etc/ssl/certs/home.rra.lan.crt
SSLCertificateChainFile /etc/ssl/certs/FreeIPA-CA.crt
</VirtualHost>
Redirect HTTP to HTTPS
sudo nano /etc/apache2/sites-available/redirect_HTTP_to_HTTPS.conf
<VirtualHost *:80>
RewriteEngine on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>
sudo ln -s /etc/apache2/sites-available/redirect_HTTP_to_HTTPS.conf /etc/apache2/sites-enable/redirect_HTTP_to_HTTPS
Authentication
Create user account with:
htpasswd -c /usr/local/apache/passwd/passwords rbowen
Protect with the directory directive:
<Directory "/usr/local/apache/htdocs/secret">
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile "/usr/local/apache/passwd/passwords"
# Require user rbowen
Require valid-user
</Directory>
Reverse Proxy
a2enmod proxy proxy_http # HTTP
a2enmod proxy proxy_ftp # FTP
a2enmod proxy proxy_html # rewrite HTML links in proxy address space
a2enmod proxy proxy_ajp # Tomcat
a2enmod proxy
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
VirtualHost ProxyPass
<VirtualHost *:*>
ProxyPreserveHost On
# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example:
ProxyPass / http://0.0.0.0:8080/
ProxyPassReverse / http://0.0.0.0:8080/
ServerName localhost
</VirtualHost>
See more options at: