簡(jiǎn)介
Nginx Config 是一個(gè)強(qiáng)大的 Nginx 配置文件生成器饺蔑,號(hào)稱配置 Nginx 服務(wù)器是所需的唯一工具锌介。
Nginx 是每一個(gè)開(kāi)發(fā)人員都必須掌握的強(qiáng)大工具,它不僅僅是一個(gè) webserver猾警,更包含了很多其他強(qiáng)大的功能:
- 內(nèi)存使用率低
- 支持高并發(fā)
- 異步事件驅(qū)動(dòng)架構(gòu)
- 負(fù)載均衡
- 反向代理
- 帶緩存的 FastCGI 支持(PHP)
- 靜態(tài)文件的快速處理
- TSL/SSL
正因?yàn)?Nginx 功能強(qiáng)大孔祸,所以針對(duì)其各個(gè)功能的配置項(xiàng)會(huì)顯得特別多,對(duì)于我們來(lái)說(shuō)要記住那么多配置是一件十分頭疼的事发皿,甚至?xí)?jīng)常出現(xiàn)符號(hào)書寫錯(cuò)誤的情況崔慧。而 Nginx Config 正是提供了簡(jiǎn)單配置 Nginx 的方法,通過(guò)可視化頁(yè)面穴墅,針對(duì) Nginx 的各個(gè)配置項(xiàng)提供了簡(jiǎn)潔明了的配置方法惶室。
Nginx Config 支持以下功能的可視化配置:HTTPS、HTTP/2玄货、IPv6拇涤、certbot、HSTS誉结、安全請(qǐng)求頭、SSL 配置券躁、OCSP 解析器惩坑、緩存、gzip也拜、brotli以舒、回退路由、反向代理慢哈、www/non-www 重定向蔓钟、CDN、PHP(TCP/socket卵贱、 WordPress滥沫、Drupal侣集、Magento、Joomla)兰绣、Node.js世分、Python (Django) 服務(wù)器等。
項(xiàng)目地址:
https://github.com/digitalocean/nginxconfig.io
安裝使用
安裝
Nginx Config 提供了官方在線網(wǎng)站缀辩,可以直接使用官方網(wǎng)站進(jìn)行配置即可臭埋,也可以自行部署 Nginx Config 的服務(wù)。
- clone 遠(yuǎn)程倉(cāng)庫(kù):
git clone https://github.com/digitalocean/nginxconfig.io.git
- 安裝依賴包
npm ci
- 開(kāi)發(fā)環(huán)境版本部署
npm run dev
- 打開(kāi) localhost:8080
- 檢查代碼(eslint 和 stylelint)
npm test
- 構(gòu)建生產(chǎn)環(huán)境版本
npm run build
簡(jiǎn)單使用
生成 只需要到網(wǎng)站上找到你想到配置的項(xiàng)目臀玄,手動(dòng)勾選或填寫配置內(nèi)容瓢阴,即可實(shí)時(shí)生成并在線查看生成的配置
- 下載 下載生成的 nginxconfig.io-example.com.tar.gz 文件,然后上傳到服務(wù)器的 /etc/nginx 目錄健无,執(zhí)行以下命令:
cd /etc/nginx
tar -czvf nginx_$(date +'%F_%H-%M-%S').tar.gz nginx.conf sites-available/ sites-enabled/ nginxconfig.io/
tar -xzvf nginxconfig.io-example.com.tar.gz | xargs chmod 0644
- 復(fù)制壓縮配置的 base64 字符串荣恐,粘貼到服務(wù)器上執(zhí)行。
- ssl 初始化
// 生成 Diffie-Hellman 密鑰:
openssl dhparam -out /etc/nginx/dhparam.pem 2048
// 創(chuàng)建目錄用于配置加密證書(Let's Encrypt)
mkdir -p /var/www/_letsencrypt
chown www-data /var/www/_letsencrypt
- certbot
// 注釋掉配置中的SSL相關(guān)指令:
sed -i -r 's/(listen .*443)/\1; #/g; s/(ssl_(certificate|certificate_key|trusted_certificate) )/#;#\1/g; s/(server \{)/\1\n ssl off;/g' /etc/nginx/sites-available/example.com.conf
// 重新加載NGINX服務(wù)器:
sudo nginx -t && sudo systemctl reload nginx
// 使用Certbot從 Let's Encrypt 獲得SSL證書:
certbot certonly --webroot -d example.com --email info@example.com -w /var/www/_letsencrypt -n --agree-tos --force-renewal
// 在配置中取消注釋SSL相關(guān)指令:
sed -i -r -z 's/#?; ?#//g; s/(server \{)\n ssl off;/\1/g' /etc/nginx/sites-available/example.com.conf
// 重新加載NGINX服務(wù)器:
sudo nginx -t && sudo systemctl reload nginx
// 配置Certbot睬涧,當(dāng)NGINX成功更新證書時(shí)重新加載:
echo -e '#!/bin/bash\nnginx -t && systemctl reload nginx' | sudo tee /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh
sudo chmod a+x /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh
- 完成上線
// 重新加載NGINX載入新的配置:
sudo nginx -t && sudo systemctl reload nginx