Nginx 配置
重要目录及文件说明
| 目录 | 说明 |
|---|---|
| /etc/nginx | 目录。nginx 默认配置文件的目录 |
| /etc/nginx/nginx.conf | 文件。nginx 主配置文件,文件最后配置了自动加载 conf.d 下*.conf 的配置 |
| /etc/nginx/conf.d | 目录。nginx 的*.conf 多个子配置存放目录 |
| /etc/nginx/conf.d/default.conf | 文件。nginx 子配置文件,主要用于端口、日志、负载均衡、反向代理等配置。 |
| /usr/sbin/nginx | 文件。可执行二进制文件,nginx 的启停等执行命令前缀 |
| /usr/share/nginx/html | 目录。部署静态资源目录 |
| /var/log/nginx | 目录。日志文件存放目录 |
【Vitepress 工程】配置示例
- 修改 /etc/nginx/conf.d/default.conf
- 或者新建 .conf 文件,在 /etc/nginx/conf.d/ 目录下所有 .conf 后缀的文件都会被读取为配置文件。(因为 /opt/nginx/nginx.conf 中配置了 include /etc/nginx/conf.d/.conf)
这里以修改 default.conf 文件为例:
- rewrite: 转发 http 到 https;
- ssl_ 相关配置:开启 https 访问,需要提前准备好证书。
vim /etc/nginx/conf.d/default.conf
shell
server {
listen 80;
listen [::]:80;
server_name aday.fun;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name aday.fun;
# 修改大一点,默认 1M 不够用
client_max_body_size 1024m;
ssl_certificate /etc/nginx/ssl/aday.fun.cer;
ssl_certificate_key /etc/nginx/ssl/aday.fun.key;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
# vitepress 项目这样配置
try_files $uri $uri.html $uri/ =404;
}
}【Vita 管理系统】前端 - 配置示例
以增加 /etc/nginx/conf.d/vita.conf 为例。
shell
server {
listen 80;
listen [::]:80;
server_name aday.fun;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name aday.fun;
# 修改大一点,默认 1M 不够用
client_max_body_size 1024m;
ssl_certificate /etc/nginx/ssl/aday.fun.cer;
ssl_certificate_key /etc/nginx/ssl/aday.fun.key;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}【Vita 管理系统】后端 - 配置示例
以增加 /etc/nginx/conf.d/vita.conf 为例。
shell
server {
listen 80;
listen [::]:80;
server_name vita.aday.fun;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name vita.aday.fun;
# 修改大一点,默认 1M 不够用
client_max_body_size 1024m;
ssl_certificate /etc/nginx/ssl/aday.fun.cer;
ssl_certificate_key /etc/nginx/ssl/aday.fun.key;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
}重启 nginx 并访问网页
shell
sudo systemctl restart nginx.service浏览器访问:
部署 vitepress 需要注意的地方
普通 vue 应用一般配置 try_files 如下:
shell
try_files $uri $uri/ /index.html;但是,部署 vitepress 时,try_files 不要默认为 index.html。
try_files 解析不能像其他 Vue 应用那样默认为 index.html。这会导致页面状态处于无效。
应该配置如下:
shell
try_files $uri $uri.html $uri/ =404;
# non existent pages
error_page 404 /404.html;
# a folder without index.html raises 403 in this setup
error_page 403 /404.html;