Nginx(发音同“engine X”)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。下面我就教大家利用反向代理实现域名访问网站。

准备材料

1.一台服务器
2.一个cloudflare账号
3.一个域名

部署实操

1.申请一个域名,并将其托管到cloudflare进行DNS解析。

不要打开小云朵哟


2.打开FinalShell,连接云服务器,申请一个ssl证书
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo -i 
mkdir cert && cd cert #创建证书文件夹,并进入证书文件夹
curl https://get.acme.sh | sh #安装acme
apt install socat #安装socat
ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh #添加软链接
acme.sh --register-account -m [email protected] #注册账号
ufw allow 80 #开放80端口
acme.sh --issue -d 你的域名 --standalone -k ec-256 #申请证书
bash ~/.acme.sh/acme.sh --issue -d 你的域名 --standalone -k ec-256 --listen-v6 #申请证书
acme.sh --installcert -d 你的域名 --ecc --key-file /root/cert/private.key --fullchain-file /root/cert/public.crt #安装证书
acme.sh --set-default-ca --server letsencrypt #切换 Let’s Encrypt
acme.sh --set-default-ca --server buypass #切换切换 Buypass
acme.sh --set-default-ca --server zerossl # 切换 ZeroSSL
bash ~/.acme.sh/acme.sh --list #查看目前申请到的证书
bash ~/.acme.sh/acme.sh --renew -d 你的域名 --force --ecc #手动续期证书
openssl ecparam -genkey -name prime256v1 -out ca.key #生成私钥
openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/CN=bing.com" #生成公钥

记得打开小云朵


3.安装Nginx
1
apt install nginx -y

4.配置Nginx
1
vim /etc/nginx/nginx.conf

Nginx配置(替换http{}里的内容):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
server {
listen 443 ssl;
listen [::]:443 ssl;

server_name 你的域名;
ssl_certificate /root/cert/public.crt;
ssl_certificate_key /root/cert/private.key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:10000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}

server {
listen 80;
server_name 你的域名;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}

重新加载nginx配置
1
systemctl reload nginx.service

5.打开你的域名,看看效果吧