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
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.打开你的域名,看看效果吧