跳到主要内容

静态网站配置

配置静态网站

配置网站(HTTP)

nginx
server {
listen 80;
listen [::]:80;
server_name www.zxzsk.com; #指定域名
root /var/www/www.zxzsk.com; #网站目录
index index.html index.htm; #首页可识别文件
charset utf-8;
location / {
try_files $uri $uri/ =404;
}

# 错误页面配置
error_page 404 /404.html;
location = /404.html {
internal;
}
}

前提:已将域名 www.zxzsk.com 解析到 Nginx 服务器。

效果:用户访问 www.zxzsk.com ,Nginx 从网站目录返回静态内容。

技巧:将配置文件配置到 sites-available 目录,符号链接到 sites-enabled 则启用配置;删除符号链接则禁用配置。

nginx
# 符号链接
sudo ln -s /etc/nginx/sites-available/www.zxzsk.com.conf /etc/nginx/sites-enabled/

# 测试 Nginx 配置文件是否有语法错误
sudo nginx -t

# 如果测试通过,重新加载 Nginx 以应用新的配置
sudo systemctl reload nginx

配置网站证书(https)

前提:完成了 http 配置

技巧:使用 Certbot 自动申请和配置 ssl 证书

安装 Certbot

bash
sudo apt update
sudo apt install certbot
sudo apt install python3-certbot-nginx

获取 ssl 证书

bash
sudo certbot --nginx -d blog.zxzsk.com -d www.example.com

-d 域名 申请证书,可以同时申请多个域名的证书。如果使用的是 Apache 服务器,则将 --nginx 改为 --apache

获取证书成功后,自动添加 ssl 到 http 配置文件。

nginx
server {
# listen [::]:80;
server_name www.zxzsk.com; #指定域名
root /var/www/www.zxzsk.com; #网站目录
index index.html index.htm; #首页可识别文件
charset utf-8;
location / {
try_files $uri $uri/ =404;
}

# 错误页面配置
error_page 404 /404.html;
location = /404.html {
internal;
}

# 访问日志和错误日志路径
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/www.zxzsk.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/www.zxzsk.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
if ($host = www.zxzsk.com) {
return 301 https://$host$request_uri;
} # managed by Certbot


listen 80;
server_name www.zxzsk.com;
return 404; # managed by Certbot

自动续期 ssl 证书

证书由 Let's Encrypt 颁发,效期为 90 天。默认情况下 Certbot 自动创建证书效期监测和续期服务。你可以通过以下命令测试证书续期:

bash
sudo certbot renew --dry-run