抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

一、安装 Nginx

首先,更新 Ubuntu 的包索引,并安装 Nginx。

1
2
sudo apt-get update
sudo apt-get install nginx

安装完成后,你可以通过在浏览器中访问服务器的公网 IP 地址来验证 Nginx 是否已成功安装并运行。默认情况下,Nginx 会在 /var/www/html/ 目录下提供一个欢迎页面。

二、配置多网站

1. 创建网站配置文件

在 Nginx 的配置目录中(通常是 /etc/nginx/sites-available/),为每个网站创建一个新的配置文件。例如,为 jeanhua.cnblog.jeanhua.cn 创建配置文件。

对于 blog.jeanhua.cn

1
sudo nano /etc/nginx/sites-available/blog.jeanhua.cn

添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 80;
server_name blog.jeanhua.cn www.blog.jeanhua.cn;

root /var/www/blog;
index index.html index.htm index.nginx-debian.html;

location / {
try_files $uri $uri/ =404;
}

error_log /var/log/nginx/blog.jeanhua.cn-error.log;
access_log /var/log/nginx/blog.jeanhua.cn-access.log;
}

对于 jeanhua.cn

1
sudo nano /etc/nginx/sites-available/jeanhua.cn

添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 80;
server_name jeanhua.cn www.jeanhua.cn;

root /var/www/html;
index index.html index.htm index.nginx-debian.html;

location / {
try_files $uri $uri/ =404;
}

error_log /var/log/nginx/jeanhua.cn-error.log;
access_log /var/log/nginx/jeanhua.cn-access.log;
}

2. 启用配置并测试

创建符号链接以启用这些配置,并测试 Nginx 配置的正确性。

1
2
3
4
sudo ln -s /etc/nginx/sites-available/blog.jeanhua.cn /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/jeanhua.cn /etc/nginx/sites-enabled/

sudo nginx -t

如果测试通过,重新加载 Nginx 以应用更改。

1
sudo systemctl reload nginx

三、配置 HTTPS

为了提升网站安全性,我们需要配置 HTTPS。这里我们使用 Certbot 来获取 Let’s Encrypt 的 SSL 证书。

1. 安装 Certbot

1
2
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx

2. 获取 SSL 证书并配置 HTTPS

使用 Certbot 自动获取 SSL 证书并配置 Nginx 以启用 HTTPS。

1
2
sudo certbot --nginx -d blog.jeanhua.cn -d www.blog.jeanhua.cn
sudo certbot --nginx -d jeanhua.cn -d www.jeanhua.cn

Certbot 将自动修改 Nginx 配置文件,为每个域名添加 HTTPS 虚拟主机配置。过程中,Certbot 可能会询问你一些问题,比如你的电子邮件地址和是否需要自动重定向 HTTP 流量到 HTTPS。

3. 验证配置

你可以通过查看 Nginx 的配置文件来验证 Certbot 所做的更改。

1
2
sudo nano /etc/nginx/sites-enabled/blog.jeanhua.cn
sudo nano /etc/nginx/sites-enabled/jeanhua.cn

你应该会看到为每个域名添加的 HTTPS 虚拟主机配置。

四、配置端口转发(可选)

如果你需要将子域名转发到本地某端口,可以使用 Nginx 的反向代理功能。

1. 编辑配置文件

在 Nginx 的配置文件中添加反向代理设置。例如,为 test.jeanhua.cn 添加以下配置:

1
sudo nano /etc/nginx/sites-available/test.jeanhua.cn

添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
listen 80;
server_name test.jeanhua.cn www.test.jeanhua.cn;

location / {
proxy_pass http://localhost:1234;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

error_log /var/log/nginx/test.jeanhua.cn-error.log;
access_log /var/log/nginx/test.jeanhua.cn-access.log;
}

2. 启用配置并测试

创建符号链接以启用配置,并测试 Nginx 配置的正确性。

1
2
sudo ln -s /etc/nginx/sites-available/test.jeanhua.cn /etc/nginx/sites-enabled/
sudo nginx -t

如果测试通过,重新加载 Nginx 以应用更改。

1
sudo systemctl reload nginx

3. 配置 HTTPS(可选)

如果你希望为反向代理也配置 HTTPS,可以按照前面的步骤使用 Certbot 获取 SSL 证书并配置 Nginx。Certbot 将自动处理 HTTPS 的配置。

评论