一台小服务器上的 nginx:主页、博客与论坛
这个站现在是这样的:主页是纯静态页面,博客是 Typecho,论坛是 Flarum,全部跑在一台 2 核 2 GB 的云服务器上,前面只有一个 nginx。
一个 server,三个 location
server {
server_name mosink.top www.mosink.top;
location / {
root /var/www/personal;
index index.html;
error_page 404 /404.html;
}
location /blog {
alias /var/www/typecho;
index index.php;
try_files $uri $uri/ /blog/index.php?$args;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
location /forum {
alias /var/www/flarum/public;
try_files $uri $uri/ @flarum;
}
}alias 的坑
alias 和 root 的区别是:alias 会把 location 匹配到的前缀替换掉,而 root 是拼接。所以在 alias 下面嵌套 PHP 的 location 时,SCRIPT_FILENAME 要用 $request_filename,不能用 $document_root$fastcgi_script_name。
PHP-FPM
博客和论坛共用一个 PHP-FPM 池:
pm = ondemand
pm.max_children = 8
pm.process_idle_timeout = 30s平时内存占用六百多兆,访问量一高也不会爆。
证书
证书用 certbot 申请,/.well-known/acme-challenge/ 必须在 80 端口单独放行,写在跳转 HTTPS 之前:
location ^~ /.well-known/acme-challenge/ {
root /var/www/personal;
}静态资源缓存
主页的字体和脚本都带版本号,可以放心地缓存 30 天:
location /assets/ {
root /var/www/personal;
expires 30d;
}
评论 · Comments0