1.8 萬 Star!這款 Nginx 可視化配置工具太強了!
簡介
Nginx Config 是一個強大的 Nginx 配置文件生成器,號稱配置 Nginx 服務(wù)器所需的唯一工具。
Nginx 是每一個開發(fā)人員都必須掌握的強大工具,它不僅僅是一個 webserver,更包含了很多其他強大的功能:
- 內(nèi)存使用率低
- 支持高并發(fā)
- 異步事件驅(qū)動架構(gòu)
- 負(fù)載均衡
- 反向代理
- 帶緩存的 FastCGI 支持(PHP)
- 靜態(tài)文件的快速處理
- TSL/SSL
正因為 Nginx 功能強大,所以針對其各個功能的配置項會顯得特別多,對于我們來說要記住那么多配置是一件十分頭疼的事,甚至?xí)?jīng)常出現(xiàn)符號書寫錯誤的情況。而 Nginx Config 正是提供了簡單配置 Nginx 的方法,通過可視化頁面,針對 Nginx 的各個配置項提供了簡潔明了的配置方法。
Nginx Config 支持以下功能的可視化配置:HTTPS、HTTP/2、IPv6、certbot、HSTS、安全請求頭、SSL 配置、OCSP 解析器、緩存、gzip、brotli、回退路由、反向代理、www/non-www 重定向、CDN、PHP(TCP/socket、 WordPress、Drupal、Magento、Joomla)、Node.js、Python (Django) 服務(wù)器等。
項目地址:
https://github.com/digitalocean/nginxconfig.io?
安裝使用
安裝
Nginx Config 提供了官方在線網(wǎng)站,可以直接使用官方網(wǎng)站進行配置即可,也可以自行部署 Nginx Config 的服務(wù)。
- clone 遠(yuǎn)程倉庫:
git clone https://github.com/digitalocean/nginxconfig.io.git
- 安裝依賴包
npm ci
- 開發(fā)環(huán)境版本部署
npm run dev
- 打開 localhost:8080
- 檢查代碼(eslint 和 stylelint)
npm test
- 構(gòu)建生產(chǎn)環(huán)境版本
npm run build
簡單使用
生成 只需要到網(wǎng)站上找到你想到配置的項目,手動勾選或填寫配置內(nèi)容,即可實時生成并在線查看生成的配置

- 下載 下載生成的 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成功更新證書時重新加載:
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