使用 nginx
一、安装 nginx
更新 apt 源:
sudo apt-get update
安装 nginx:
sudo apt-get install nginx
使能 nginx:
sudo systemctl enable nginx
启动 nginx:
sudo systemctl start nginx
查看 nginx 状态:
sudo systemctl status nginx
二、使用 nginx
准备网站资源
首先我们需要准备一个可用的静态网站,这里我就使用我 GitHub 上基于 mdbook 的项目,你也可以使用自己的网站:
git clone https://github.com/mr-addict/Doc-Share.git
cd Doc-Share
mdbook build
运行mdbook build
后会在当前文件夹自动编译出一个 book 文件夹,也即是我的网页内容,然后我们需要把这个网页放到 ngixn 默认的网页目录下/var/www/
sudo cp -r /home/ubuntu/Doc-Share/book /var/www/
配置网站
然后我们需要配置一下 nginx 的配置文件,nginx 将配置文件放在了两个文件夹下,分别是:
- sites-available
- sites-enabled
sites-available 文件夹用于放置所有的网站配置,sites-enabled 文件夹用于放置所有正在使用的网站配置。
首先我们在 sites-available 中新建一个文件:
sudo vim /etc/nginx/sites-availale/notes.conf
然后添加以下内容:
server {
listen 80;
listen [::]:80;
location / {
root /var/www/book;
index index.html;
}
}
完成配置后我们可以通过链接的命令,将 sites-available 中的配置文件链接到 sites-enabled 文件夹中:
sudo ln -sf /etc/nginx/sites-available/* /etc/nginx/sites-enabled/
最后我们重新启动一下 nginx 就可以在本地 80 端口http://localhost正常访问我们的网页内容了:
sudo systemctl restart nginx
三、nginx 模板
nginx 基本配置模板:
server{
listen 80;
listen [::]:80;
server_name mraddict.top;
location / {
root /var/www/book;
index index.html;
}
}
nginx 基于 SSL 签证模板:
server{
listen 80;
listen [::]:80;
server_name mraddict.top;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name mraddict.top;
ssl_certificate /etc/nginx/certs/cloudflare/mraddict.one/mraddict.one.cert.pem;
ssl_certificate_key /etc/nginx/certs/cloudflare/mraddict.one/mraddict.one.key.pem;
location / {
root /var/www/book;
index index.html;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
nginx 基于 SSL 签证的反向代理:
server{
listen 80;
listen [::]:80;
server_name mraddict.top;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name mraddict.top;
ssl_certificate /etc/nginx/certs/cloudflare/mraddict.one/mraddict.one.cert.pem;
ssl_certificate_key /etc/nginx/certs/cloudflare/mraddict.one/mraddict.one.key.pem;
location / {
proxy_pass http://localhost:8080;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}