安装:sudo apt-get install apache2
管理:管理系统服务
# 一些基础的管理Apache 2的命令 # 没有root/sudo权限的话,基本是不可能管理Apache 2的 sudo systemctl restart apache2 sudo service apache2 restart # 是这样写么?不太确定了...
mail_gzher@wikihost-us:/etc/apache2/sites-enabled$ sudo ln -s ../sites-available/com.gzher.cv.conf com.gzher.cv.conf
DirectoryIndex home.html
在sited-enabled里面放置多个配置文件就可以了
直接在ServerName那里填IP就可以了
<virtualhost *:80>
ServerName 115.28.85.69:80
<location></location>
Order Allow,Deny
Deny from all
</virtualhost>
上述记录了一些核心操作,现在实操一下,创建一个简单的绑定域名的HTTP网站
/etc/apache2/sites-available/mywebsite.conf配置模板
<VirtualHost *:80>
ServerAdmin webmaster@localhost
# 修改为实际域名,是不是顶级域名不重要
ServerName mydomain.com
# 修改为实际域名,如果是顶级域名,这个建议写上(相应的上面也要多加一条DNS记录)
# 如果不是,这个不写也行,看需求
# 主要是,需不需要 www.mydomain.com 也能访问到
ServerAlias www.mydomain.com
DocumentRoot /var/www/mywebsite # 注意路径
<Directory /var/www/mywebsite> # 注意路径
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
这一步的证书是手动申请的,自动申请证书可以参考:安装SSL证书
sudo a2enmod rewrite sudo a2enmod ssl
# 80端口自动重定向到HTTPS
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
# 注意端口号是443
# 启用SSL并安装证书
<VirtualHost *:443>
...
SSLEngine on
SSLCertificateFile /etc/ssl/certificate.crt
SSLCertificateKeyFile /etc/ssl/private/private.key
SSLCertificateChainFile /etc/ssl/ca_bundle.crt
</VirtualHost>
对于简单的静态网页,首先准备好你的资源(放在一个目录下)
然后使用一个基础的配置文件开启HTTP
<VirtualHost *:80>
ServerName osakayaki.com
ServerAlias www.osakayaki.com
DocumentRoot /var/www/home
<Directory /var/www/home>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/osakayaki.com_error.log
CustomLog ${APACHE_LOG_DIR}/osakayaki.com_access.log combined
</VirtualHost>
然后申请证书(使用acme.sh,静态网站使用web root模式最简单) + 安装(注意证书统一安装到某个地方便于管理)
然后修改配置文件,配置HTTP到HTTPS的转发
<VirtualHost *:80>
ServerName osakayaki.com
ServerAlias www.osakayaki.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
ServerName osakayaki.com
ServerAlias www.osakayaki.com
DocumentRoot /var/www/home/
DirectoryIndex index.html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /root/cert/osakayaki.com/cert.pem
SSLCertificateKeyFile /root/cert/osakayaki.com/key.pem
SSLCertificateChainFile /root/cert/osakayaki.com/fullchain.pem
</VirtualHost>