{"id":2858,"date":"2025-11-02T20:30:28","date_gmt":"2025-11-02T12:30:28","guid":{"rendered":"https:\/\/linuxjk.cn\/?p=2858"},"modified":"2025-11-23T10:24:42","modified_gmt":"2025-11-23T02:24:42","slug":"nginx-ui%e9%83%a8%e7%bd%b2%e6%b5%81%e7%a8%8b%e5%86%85%e5%90%abgo%ef%bc%8cnodejs%ef%bc%8cpnpm%e5%ae%89%e8%a3%85","status":"publish","type":"post","link":"https:\/\/linuxjk.cn\/?p=2858","title":{"rendered":"nginx-ui\u90e8\u7f72\u6587\u6863(\u542bgo\uff0cnodejs\uff0cpnpm\u5b89\u88c5)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2858\" class=\"elementor elementor-2858\">\n\t\t\t\t<div class=\"elementor-element elementor-element-11f8502 e-flex e-con-boxed e-con e-parent\" data-id=\"11f8502\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8bbea70 elementor-widget elementor-widget-text-editor\" data-id=\"8bbea70\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2\" >\u672c\u5730\u90e8\u7f72<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E8%8E%B7%E5%8F%96%E7%A8%8B%E5%BA%8F%E6%BA%90%E7%A0%81\" >\u83b7\u53d6\u7a0b\u5e8f\u6e90\u7801<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E5%AE%89%E8%A3%85Go%E7%8E%AF%E5%A2%83\" >\u5b89\u88c5Go\u73af\u5883<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E8%BF%98%E9%9C%80%E8%A6%81%E5%AE%89%E8%A3%85nodejs%EF%BC%8Cpnpm\" >\u8fd8\u9700\u8981\u5b89\u88c5nodejs\uff0cpnpm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E4%BD%BF%E7%94%A8%E5%AE%98%E6%96%B9%E8%84%9A%E6%9C%AC%E5%AE%89%E8%A3%85%EF%BC%88%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84installsh%EF%BC%89\" >\u4f7f\u7528\u5b98\u65b9\u811a\u672c\u5b89\u88c5\uff08\u4ee3\u7801\u4e2d\u7684install.sh\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E4%BD%BF%E7%94%A8%E6%BA%90%E4%BB%A3%E7%A0%81%E8%87%AA%E8%A1%8C%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85\" >\u4f7f\u7528\u6e90\u4ee3\u7801\u81ea\u884c\u7f16\u8bd1\u5b89\u88c5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E9%85%8D%E7%BD%AE%E5%92%8C%E5%90%AF%E5%8A%A8\" >\u914d\u7f6e\u548c\u542f\u52a8<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E5%88%9B%E5%BB%BA%E7%B3%BB%E7%BB%9F%E6%9C%8D%E5%8A%A1\" >\u521b\u5efa\u7cfb\u7edf\u670d\u52a1<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6\" >\u4fee\u6539\u914d\u7f6e\u6587\u4ef6<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#docker_%E9%83%A8%E7%BD%B2%E6%B5%81%E7%A8%8B%EF%BC%9A\" >docker \u90e8\u7f72\u6d41\u7a0b\uff1a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#i\" >\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E8%AE%BF%E9%97%AENginx_UI\" >\u8bbf\u95eeNginx UI<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E9%AA%8C%E8%AF%81%E9%83%A8%E7%BD%B2\" >\u9a8c\u8bc1\u90e8\u7f72<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E9%A1%B5%E9%9D%A2%E6%93%8D%E4%BD%9C%EF%BC%9A\" >\u9875\u9762\u64cd\u4f5c\uff1a<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E5%88%9B%E5%BB%BA%E6%81%A2%E5%A4%8D%E5%A4%87%E4%BB%BD%EF%BC%88nginx%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6nginxui%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%EF%BC%89%E6%B3%A8%EF%BC%9A%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2%E6%89%8D%E8%83%BD%E8%BF%9B%E8%A1%8C%E6%AD%A3%E5%B8%B8%E7%9A%84%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D\" >\u521b\u5efa\/\u6062\u590d\u5907\u4efd\uff08nginx\u914d\u7f6e\u6587\u4ef6+nginxui\u6570\u636e\u5e93+\u914d\u7f6e\u6587\u4ef6\uff09\u6ce8\uff1a\u672c\u5730\u90e8\u7f72\u624d\u80fd\u8fdb\u884c\u6b63\u5e38\u7684\u5907\u4efd\/\u6062\u590d<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86%E2%80%93%E2%80%93%E7%BA%A2%E6%A1%86%E4%B8%AD%E7%9A%84ngx_v1%E5%8D%B3nginx%E5%AE%B9%E5%99%A8%E7%9A%84etcnginx%E7%9B%AE%E5%BD%95%EF%BC%8C%E7%82%B9%E5%87%BB%E4%BF%AE%E6%94%B9%E8%BF%9B%E5%85%A5\" >\u914d\u7f6e\u7ba1\u7406\u2013\u2013\u7ea2\u6846\u4e2d\u7684ngx_v1\u5373nginx\u5bb9\u5668\u7684\/etc\/nginx\u76ee\u5f55\uff0c\u70b9\u51fb\u4fee\u6539\u8fdb\u5165<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#docker%E9%83%A8%E7%BD%B2%E5%8F%AF%E4%BB%A5%E5%9C%A8%E8%BF%99%E4%B8%AA%E9%A1%B5%E9%9D%A2%E4%BF%AE%E6%94%B9%E5%85%B6%E4%BB%96%E5%AE%B9%E5%99%A8%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6\" >docker\u90e8\u7f72\u53ef\u4ee5\u5728\u8fd9\u4e2a\u9875\u9762\u4fee\u6539\u5176\u4ed6\u5bb9\u5668\u7684\u914d\u7f6e\u6587\u4ef6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/linuxjk.cn\/?p=2858\/#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BD%EF%BC%9A%E7%82%B9%E5%87%BB%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BD%E9%A1%B5%E9%9D%A2%EF%BC%8C%E9%80%89%E6%8B%A9%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9B%AE%E5%BD%95%EF%BC%88%E8%BF%99%E9%87%8C%E7%9A%84%E5%A4%87%E4%BB%BD%E8%B7%AF%E5%BE%84%E5%92%8C%E5%AD%98%E5%82%A8%E8%B7%AF%E5%BE%84%E5%BF%85%E9%A1%BB%E5%9C%A8appini%E4%B8%AD%E6%8C%87%E5%AE%9A%EF%BC%89\" >\u914d\u7f6e\u6587\u4ef6\u81ea\u52a8\u5907\u4efd\uff1a\u70b9\u51fb\u81ea\u52a8\u5907\u4efd\u9875\u9762\uff0c\u9009\u62e9\u81ea\u5b9a\u4e49\u76ee\u5f55\uff08\u8fd9\u91cc\u7684\u5907\u4efd\u8def\u5f84\u548c\u5b58\u50a8\u8def\u5f84\u5fc5\u987b\u5728app.ini\u4e2d\u6307\u5b9a\uff09<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2\"><\/span><span class=\"md-plain\">\u672c\u5730\u90e8\u7f72<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E8%8E%B7%E5%8F%96%E7%A8%8B%E5%BA%8F%E6%BA%90%E7%A0%81\"><\/span><span class=\"md-plain\">\u83b7\u53d6\u7a0b\u5e8f\u6e90\u7801<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"bash\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\">#\u5728\u672c\u5730\u751f\u6210\u4e00\u4e2aid_rsa\uff0c\u5c06\u516c\u94a5\u6587\u4ef6\u5185\u5bb9id_rsa.pub\u7c98\u8d34\u5230github\u540e\u53f0ssh\u914d\u7f6e\u9875\u9762<\/span><\/span><br \/><span role=\"presentation\">ssh-keygen <span class=\"cm-attribute\">-t<\/span> rsa <span class=\"cm-attribute\">-b<\/span> <span class=\"cm-number\">4096<\/span> <span class=\"cm-attribute\">-C<\/span> <span class=\"cm-string\">\"zhangpeng@linuxjk.cn\"<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">cat<\/span> \/root\/.ssh\/id_rsa.pub<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u4f7f\u7528 SSH \u534f\u8bae\u514b\u9686<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">git<\/span> clone <span class=\"cm-builtin\">git<\/span>@github.com:0xJacky\/nginx-ui.git<\/span><\/pre><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E5%AE%89%E8%A3%85Go%E7%8E%AF%E5%A2%83\"><\/span><span class=\"md-plain\">\u5b89\u88c5Go\u73af\u5883<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"bash\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\"># \u5b89\u88c5Go\uff08\u5982\u679c\u5c1a\u672a\u5b89\u88c5\uff09<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">wget<\/span> https:\/\/golang.org\/dl\/go1.21.linux-amd64.tar.gz<\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">sudo<\/span> tar <span class=\"cm-attribute\">-C<\/span> \/usr\/local <span class=\"cm-attribute\">-xzf<\/span> go1.21.linux-amd64.tar.gz<\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">echo<\/span> <span class=\"cm-string\">'export PATH=$PATH:\/usr\/local\/go\/bin'<\/span> &gt;&gt; ~\/.bashrc<\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">source<\/span> ~\/.bashrc<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u4f7f\u7528\u963f\u91cc\u4e91\u955c\u50cf<\/span><\/span><br \/><span role=\"presentation\">go env <span class=\"cm-attribute\">-w<\/span> <span class=\"cm-def\">GOPROXY<\/span><span class=\"cm-operator\">=<\/span>https:\/\/mirrors.aliyun.com\/goproxy\/,direct<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u9a8c\u8bc1\u7248\u672c<\/span><\/span><br \/><span role=\"presentation\">go version<\/span><\/pre><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E8%BF%98%E9%9C%80%E8%A6%81%E5%AE%89%E8%A3%85nodejs%EF%BC%8Cpnpm\"><\/span><span class=\"md-plain\">\u8fd8\u9700\u8981\u5b89\u88c5nodejs\uff0cpnpm<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"bash\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\">#nodejs\u53ef\u4ee5\u4f7f\u7528nvm\u5b89\u88c5<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">curl<\/span> <span class=\"cm-attribute\">-o-<\/span> https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.39.0\/install.sh | <span class=\"cm-builtin\">bash<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">source<\/span> ~\/.bashrc<\/span><br \/><span role=\"presentation\">nvm install <span class=\"cm-number\">21<\/span><\/span><br \/><span role=\"presentation\">nvm use <span class=\"cm-number\">21<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u4ee5\u4e0a\u4e3a\u4f7f\u7528nvm\u5b89\u88c5node21<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u9a8c\u8bc1\u7248\u672c<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">node<\/span> <span class=\"cm-attribute\">--version<\/span> <\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u5b89\u88c5\u597dnodejs\u540e\u5b89\u88c5pnpm\uff08nodejs\u4e2d\u5e26npm\uff09<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u5b89\u88c5 pnpm<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">npm<\/span> install <span class=\"cm-attribute\">-g<\/span> pnpm<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u9a8c\u8bc1\u5b89\u88c5<\/span><\/span><br \/><span role=\"presentation\">pnpm <span class=\"cm-attribute\">--version<\/span><\/span><\/pre><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"bash\" spellcheck=\"false\"><span role=\"presentation\">root@anolis810:~<span class=\"cm-comment\"># curl -o- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.39.0\/install.sh | bash<\/span><\/span><br \/><span role=\"presentation\">  % Total \u00a0  % Received % Xferd  Average Speed \u00a0 Time \u00a0  Time \u00a0 \u00a0 Time  Current<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Dload  Upload \u00a0 Total \u00a0 Spent \u00a0  Left  Speed<\/span><br \/><span role=\"presentation\"><span class=\"cm-number\">100<\/span> <span class=\"cm-number\">14984<\/span> \u00a0<span class=\"cm-number\">100<\/span> <span class=\"cm-number\">14984<\/span> \u00a0 \u00a0<span class=\"cm-number\">0<\/span> \u00a0 \u00a0 <span class=\"cm-number\">0<\/span> \u00a0 <span class=\"cm-number\">6108<\/span> \u00a0 \u00a0 \u00a0<span class=\"cm-number\">0<\/span> \u00a0<span class=\"cm-number\">0<\/span>:00:02 \u00a0<span class=\"cm-number\">0<\/span>:00:02 <span class=\"cm-attribute\">--<\/span>:--:-- \u00a0<span class=\"cm-number\">6108<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-operator\">=<\/span>&gt; nvm is already installed <span class=\"cm-keyword\">in<\/span> \/root\/.nvm, trying to update the script<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-operator\">=<\/span>&gt; nvm <span class=\"cm-builtin\">source<\/span> string already <span class=\"cm-keyword\">in<\/span> \/root\/.bashrc<\/span><br \/><span role=\"presentation\"><span class=\"cm-operator\">=<\/span>&gt; bash_completion <span class=\"cm-builtin\">source<\/span> string already <span class=\"cm-keyword\">in<\/span> \/root\/.bashrc<\/span><br \/><span role=\"presentation\"><span class=\"cm-operator\">=<\/span>&gt; Close and reopen your terminal to <span class=\"cm-builtin\">start<\/span> using nvm or run the following to use it now:<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-keyword\">export<\/span> <span class=\"cm-def\">NVM_DIR<\/span><span class=\"cm-operator\">=<\/span><span class=\"cm-string\">\"<\/span><span class=\"cm-def\">$HOME<\/span><span class=\"cm-string\">\/.nvm\"<\/span><\/span><br \/><span role=\"presentation\">[ <span class=\"cm-attribute\">-s<\/span> <span class=\"cm-string\">\"<\/span><span class=\"cm-def\">$NVM_DIR<\/span><span class=\"cm-string\">\/nvm.sh\"<\/span> ] &amp;&amp; \\. <span class=\"cm-string\">\"<\/span><span class=\"cm-def\">$NVM_DIR<\/span><span class=\"cm-string\">\/nvm.sh\"<\/span> \u00a0<span class=\"cm-comment\"># This loads nvm<\/span><\/span><br \/><span role=\"presentation\">[ <span class=\"cm-attribute\">-s<\/span> <span class=\"cm-string\">\"<\/span><span class=\"cm-def\">$NVM_DIR<\/span><span class=\"cm-string\">\/bash_completion\"<\/span> ] &amp;&amp; \\. <span class=\"cm-string\">\"<\/span><span class=\"cm-def\">$NVM_DIR<\/span><span class=\"cm-string\">\/bash_completion\"<\/span> \u00a0<span class=\"cm-comment\"># This loads nvm bash_completion<\/span><\/span><br \/><span role=\"presentation\">root@anolis810:~<span class=\"cm-comment\"># source ~\/.bashrc<\/span><\/span><br \/><span role=\"presentation\">root@anolis810:~<span class=\"cm-comment\"># nvm install 21<\/span><\/span><br \/><span role=\"presentation\">Downloading and installing <span class=\"cm-builtin\">node<\/span> v21.7.3...<\/span><br \/><span role=\"presentation\">Downloading https:\/\/nodejs.org\/dist\/v21.7.3\/node-v21.7.3-linux-x64.tar.xz...<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">########################################################################################################################################################################################### 100.0%<\/span><\/span><br \/><span role=\"presentation\">Computing checksum with sha256sum<\/span><br \/><span role=\"presentation\">Checksums matched!<\/span><br \/><span role=\"presentation\">Now using <span class=\"cm-builtin\">node<\/span> v21.7.3 (npm v10.5.0)<\/span><br \/><span role=\"presentation\">root@anolis810:~<span class=\"cm-comment\"># nvm use 21<\/span><\/span><br \/><span role=\"presentation\">Now using <span class=\"cm-builtin\">node<\/span> v21.7.3 (npm v10.5.0)<\/span><br \/><span role=\"presentation\">root@anolis810:~<span class=\"cm-comment\"># node --version<\/span><\/span><br \/><span role=\"presentation\">v21.7.3<\/span><br \/><span role=\"presentation\">root@anolis810:~<span class=\"cm-comment\"># npm install -g pnpm<\/span><\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\">added <span class=\"cm-number\">1<\/span> package <span class=\"cm-keyword\">in<\/span> 1s<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-number\">1<\/span> package is looking <span class=\"cm-keyword\">for<\/span> funding<\/span><br \/><span role=\"presentation\">  run <span class=\"cm-quote\">`npm fund`<\/span> <span class=\"cm-keyword\">for<\/span> details<\/span><br \/><span role=\"presentation\">root@anolis810:~<span class=\"cm-comment\"># pnpm --version<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-number\">10<\/span>.20.0<\/span><br \/><span role=\"presentation\">root@anolis810:~<span class=\"cm-comment\"># <\/span><\/span><\/pre><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E5%AE%98%E6%96%B9%E8%84%9A%E6%9C%AC%E5%AE%89%E8%A3%85%EF%BC%88%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84installsh%EF%BC%89\"><\/span><span class=\"md-plain\">\u4f7f\u7528\u5b98\u65b9\u811a\u672c\u5b89\u88c5\uff08\u4ee3\u7801\u4e2d\u7684install.sh\uff09<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"bash\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-builtin\">bash<\/span> install.sh<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u5b89\u88c5\u76ee\u5f55(\u4e8c\u8fdb\u5236\u6587\u4ef6)\uff1a\/usr\/local\/bin\/nginx-ui<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u914d\u7f6e\u6587\u4ef6\uff1a\/usr\/local\/etc\/nginx-ui\/app.ini<\/span><\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u5982\u679c\u811a\u672c\u8fd0\u884c\u8fc7\u7a0b\u4e2d\u663e\u793a\u914d\u7f6e\u6587\u4ef6\u4e0b\u8f7d\u5931\u8d25\u65e0\u6cd5\u542f\u52a8\uff1a\u624b\u52a8\u4f7f\u7528\u4ee5\u4e0b\u914d\u7f6e\u6587\u4ef6<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#rm -rf \/etc\/systemd\/system\/nginx-ui.service.d\/<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \/etc\/systemd\/system\/nginx-ui.service<\/span><\/span><br \/><span role=\"presentation\">[Unit]<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">Description<\/span><span class=\"cm-operator\">=<\/span>Yet another WebUI <span class=\"cm-keyword\">for<\/span> Nginx<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">Documentation<\/span><span class=\"cm-operator\">=<\/span>https:\/\/github.com\/0xJacky\/nginx-ui<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">After<\/span><span class=\"cm-operator\">=<\/span>network.target<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\">[Service]<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">Type<\/span><span class=\"cm-operator\">=<\/span>simple<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">ExecStart<\/span><span class=\"cm-operator\">=<\/span>\/usr\/local\/bin\/nginx-ui <span class=\"cm-attribute\">--config<\/span> \/usr\/local\/etc\/nginx-ui\/app.ini<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">RuntimeDirectory<\/span><span class=\"cm-operator\">=<\/span>nginx-ui<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">WorkingDirectory<\/span><span class=\"cm-operator\">=<\/span>\/var\/run\/nginx-ui<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">Restart<\/span><span class=\"cm-operator\">=<\/span>on-failure<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">TimeoutStopSec<\/span><span class=\"cm-operator\">=<\/span><span class=\"cm-number\">5<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">KillMode<\/span><span class=\"cm-operator\">=<\/span>mixed<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\">[Install]<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">WantedBy<\/span><span class=\"cm-operator\">=<\/span>multi-user.target<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\">systemctl enable <span class=\"cm-attribute\">--now<\/span> nginx-ui.service<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u5b8c\u6210\u4ee5\u4e0a\u6b65\u9aa4\u5373\u53ef\u4f7f\u7528<\/span><\/span><\/pre><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E6%BA%90%E4%BB%A3%E7%A0%81%E8%87%AA%E8%A1%8C%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85\"><\/span><span class=\"md-plain\">\u4f7f\u7528\u6e90\u4ee3\u7801\u81ea\u884c\u7f16\u8bd1\u5b89\u88c5<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"bash\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\">#\u8fdb\u5165\u4ee3\u7801\u76ee\u5f55<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">cd<\/span> \/server\/tools\/nginx-ui-dev<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u5b89\u88c5\u524d\u7aef\u4f9d\u8d56\u5e76\u6784\u5efa<\/span><\/span><br \/><span role=\"presentation\">pnpm install<\/span><br \/><span role=\"presentation\">pnpm build<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u6253\u5305\u524d\u7aef\u8d44\u6e90\u4e3a dist.tar.xz<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">cd<\/span> app<\/span><br \/><span role=\"presentation\">tar <span class=\"cm-attribute\">-cJf<\/span> dist.tar.xz dist\/<\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">cd<\/span> ..<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u4e0b\u8f7d\u9700\u8981\u7684go\u4f9d\u8d56<\/span><\/span><br \/><span role=\"presentation\">go mod tidy<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u4e0b\u8f7d\u5931\u8d25\u63d0\u793a\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#go: downloading github.com\/sacloud\/packages-go v0.0.11<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#verifying github.com\/sacloud\/packages-go@v0.0.11: checksum mismatch<\/span><\/span><br \/><span class=\"cm-tab-wrap-hack\" role=\"presentation\"><span class=\"cm-comment\">#   downloaded: h1:QUjhifK9qBkZ78I6002uSD90b24FJHYYWjIxpde6Z5s=<\/span><\/span><br \/><span class=\"cm-tab-wrap-hack\" role=\"presentation\"><span class=\"cm-comment\">#   go.sum: \u00a0 \u00a0 h1:hrRWLmfPM9w7GBs6xb5\/ue6pEMl8t1UuDKyR\/KfteHo=<\/span><\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#SECURITY ERROR<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#This download does NOT match an earlier download recorded in go.sum.<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#The bits may have been replaced on the origin server, or an attacker may<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#have intercepted the download attempt.<\/span><\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u4ee3\u7406<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">GOPROXY<\/span><span class=\"cm-operator\">=<\/span>https:\/\/goproxy.cn,direct go mod tidy<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u8bbe\u7f6e CGO \u542f\u7528<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-keyword\">export<\/span> <span class=\"cm-def\">CGO_ENABLED<\/span><span class=\"cm-operator\">=<\/span><span class=\"cm-number\">1<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u5b89\u88c5gcc<\/span><\/span><br \/><span role=\"presentation\">yum install <span class=\"cm-attribute\">-y<\/span> <span class=\"cm-builtin\">gcc<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\">#\u7f16\u8bd1<\/span><\/span><br \/><span role=\"presentation\">go build <span class=\"cm-attribute\">-o<\/span> nginx-ui main.go<\/span><\/pre><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E9%85%8D%E7%BD%AE%E5%92%8C%E5%90%AF%E5%8A%A8\"><\/span><span class=\"md-plain\">\u914d\u7f6e\u548c\u542f\u52a8<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"bash\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\"># \u590d\u5236\u793a\u4f8b\u914d\u7f6e\u6587\u4ef6<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">cp<\/span> app.example.ini nginx-ui.ini<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u7f16\u8f91\u914d\u7f6e\u6587\u4ef6<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">vim<\/span> nginx-ui.ini<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u521b\u5efa Nginx-UI \u7ba1\u7406\u7684\u914d\u7f6e\u76ee\u5f55<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">mkdir<\/span> <span class=\"cm-attribute\">-p<\/span> \/etc\/nginx\/nginx-ui<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u5907\u4efd\u539f\u6709\u914d\u7f6e<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">cp<\/span> \/etc\/nginx\/nginx.conf \/etc\/nginx\/nginx.conf.backup<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u524d\u53f0\u8fd0\u884c\uff08\u6d4b\u8bd5\u7528\uff09<\/span><\/span><br \/><span role=\"presentation\">.\/nginx-ui <span class=\"cm-attribute\">--config<\/span> nginx-ui.ini<br \/><\/span><span role=\"presentation\"><span class=\"cm-comment\">;nginx-ui.ini\u4e3b\u8981\u914d\u7f6e\u9879<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-header\">[server]<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">host <\/span>=<span class=\"cm-quote\"> 0.0.0.0<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">port <\/span>=<span class=\"cm-quote\"> 9000<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">run_mode <\/span>=<span class=\"cm-quote\"> release<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">log_level <\/span>=<span class=\"cm-quote\"> info<\/span><\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-header\">[database]<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">type <\/span>=<span class=\"cm-quote\"> sqlite3<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">path <\/span>=<span class=\"cm-quote\"> \/server\/tools\/nginx-ui-dev\/database.db<\/span><\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-header\">[nginx]<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">config_dir <\/span>=<span class=\"cm-quote\"> \/etc\/nginx\/nginx-ui<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">pid_path <\/span>=<span class=\"cm-quote\"> \/var\/run\/nginx.pid<\/span><\/span><\/pre><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E5%88%9B%E5%BB%BA%E7%B3%BB%E7%BB%9F%E6%9C%8D%E5%8A%A1\"><\/span><span class=\"md-plain\">\u521b\u5efa\u7cfb\u7edf\u670d\u52a1<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"bash\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\">#\u5148\u5c06\u914d\u7f6e\u6587\u4ef6\u653e\u5728\u5408\u9002\u7684\u76ee\u5f55\u4e2d\uff1a<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">mkdir<\/span> <span class=\"cm-attribute\">-p<\/span> \/etc\/nginx-ui<\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">cp<\/span> <span class=\"cm-attribute\">-a<\/span> \/server\/tools\/nginx-ui-dev\/nginx-ui  \/usr\/local\/bin\/<\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">cp<\/span> <span class=\"cm-attribute\">-a<\/span> \/server\/tools\/nginx-ui-dev\/nginx-ui.ini \/etc\/nginx-ui\/<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u521b\u5efa systemd \u670d\u52a1\u6587\u4ef6<\/span><\/span><br \/><span role=\"presentation\"><span class=\"cm-builtin\">cat<\/span> &gt; \/etc\/systemd\/system\/nginx-ui.service &lt;&lt; EOF<\/span><br \/><span role=\"presentation\">[Unit]<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">Description<\/span><span class=\"cm-operator\">=<\/span>Nginx UI<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">After<\/span><span class=\"cm-operator\">=<\/span>network.target<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\">[Service]<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">Type<\/span><span class=\"cm-operator\">=<\/span>simple<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">User<\/span><span class=\"cm-operator\">=<\/span>root<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">WorkingDirectory<\/span><span class=\"cm-operator\">=<\/span>\/etc\/nginx-ui<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">ExecStart<\/span><span class=\"cm-operator\">=<\/span>\/usr\/local\/bin\/nginx-ui <span class=\"cm-attribute\">--config<\/span> \/etc\/nginx-ui\/nginx-ui.ini<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">Restart<\/span><span class=\"cm-operator\">=<\/span>on-failure<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">RestartSec<\/span><span class=\"cm-operator\">=<\/span>5s<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\">[Install]<\/span><br \/><span role=\"presentation\"><span class=\"cm-def\">WantedBy<\/span><span class=\"cm-operator\">=<\/span>multi-user.target<\/span><br \/><span role=\"presentation\">EOF<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u91cd\u65b0\u52a0\u8f7d systemd<\/span><\/span><br \/><span role=\"presentation\">systemctl daemon-reload<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u542f\u52a8\u670d\u52a1<\/span><\/span><br \/><span role=\"presentation\">systemctl <span class=\"cm-builtin\">start<\/span> nginx-ui<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u8bbe\u7f6e\u5f00\u673a\u81ea\u542f<\/span><\/span><br \/><span role=\"presentation\">systemctl enable nginx-ui<\/span><br \/><span role=\"presentation\"><span class=\"cm-comment\"># \u67e5\u770b\u670d\u52a1\u72b6\u6001<\/span><\/span><br \/><span role=\"presentation\">systemctl status nginx-ui<\/span><\/pre><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6\"><\/span><span class=\"md-plain\">\u4fee\u6539\u914d\u7f6e\u6587\u4ef6<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><p class=\"md-end-block md-p md-focus\"><span class=\"md-plain\">\u7f16\u8f91 <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>\/etc\/nginx-ui\/nginx-ui.ini<\/code><\/span><span class=\"md-plain\">\uff1a<\/span><\/p><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"bash\" spellcheck=\"false\"><span role=\"presentation\">[server]<\/span><br \/><span role=\"presentation\">host <span class=\"cm-operator\">=<\/span> <span class=\"cm-number\">0<\/span>.0.0.0<\/span><br \/><span role=\"presentation\">port <span class=\"cm-operator\">=<\/span> <span class=\"cm-number\">9000<\/span><\/span><br \/><span role=\"presentation\">[database]<\/span><br \/><span role=\"presentation\">type <span class=\"cm-operator\">=<\/span> sqlite3<\/span><br \/><span role=\"presentation\">path <span class=\"cm-operator\">=<\/span> \/etc\/nginx-ui\/database.db<\/span><br \/><span role=\"presentation\">[nginx]<\/span><br \/><span role=\"presentation\">config_dir <span class=\"cm-operator\">=<\/span> \/etc\/nginx<\/span><br \/><span role=\"presentation\">pid_path <span class=\"cm-operator\">=<\/span> \/var\/run\/nginx.pid<\/span><\/pre><h2 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"docker_%E9%83%A8%E7%BD%B2%E6%B5%81%E7%A8%8B%EF%BC%9A\"><\/span><span class=\"md-plain\">docker \u90e8\u7f72\u6d41\u7a0b\uff1a<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"bash\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\">#\u914d\u7f6e\u955c\u50cf\u52a0\u901f\uff1a\uff08\u955c\u50cf\u6e90\u6765\u81ea<a href=\"https:\/\/status.anye.xyz\/\">\u955c\u50cf\u8d44\u6e90\u76d1\u63a7\u7ad9<\/a>\uff1ahttps:\/\/status.anye.xyz\/\uff09<\/span><\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0<span class=\"cm-string\">\"registry-mirrors\"<\/span>: [<\/span><br \/><span role=\"presentation\">     \u00a0<span class=\"cm-string\">\"https:\/\/docker.1ms.run\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/docker.1panel.live\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/docker.m.ixdev.cn\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/hub.rat.dev\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/docker.xuanyuan.me\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/dockerproxy.net\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/docker-registry.nmqu.com\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/hub.amingg.com\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/docker.amingg.com\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/docker.hlmirror.com\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/hub1.nat.tf\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/hub2.nat.tf\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/hub3.nat.tf\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/docker.m.daocloud.io\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/docker.kejilion.pro\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/docker.367231.xyz\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/hub.1panel.dev\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/dockerproxy.cool\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/docker.apiba.cn\"<\/span>,<\/span><br \/><span role=\"presentation\"><span class=\"cm-string\">\"https:\/\/proxy.vvvv.ee\"<\/span><\/span><br \/><span role=\"presentation\">  ]<\/span><br \/><span role=\"presentation\">}<\/span><\/pre><pre>#\u5176\u4ed6nginx\u5bb9\u5668\u521b\u5efa\uff1a<br \/>#\u521b\u5efanginx\u6302\u8f7d\u7684\u76ee\u5f55\u548c\u6587\u4ef6<br \/>mkdir -p \/app\/docker\/nginx{1,2,3}\/conf<br \/>cat &gt;&gt; \/app\/docker\/nginx1\/conf\/nginx1.conf\u00a0 \u00a0 &lt;&lt; EOF<br \/>server {<br \/>listen 80;<br \/>server_name nginx1.com;<br \/>  \u00a0 \u00a0 \u00a0root \/app\/code\/a;<br \/>  \u00a0 \u00a0 \u00a0location \\ {<br \/>  \u00a0 \u00a0 \u00a0index index.html;<br \/>  \u00a0 \u00a0 \u00a0}<br \/>}<br \/>EOF<br \/>cat &gt;&gt; \/app\/docker\/nginx2\/conf\/nginx2.conf\u00a0 \u00a0 &lt;&lt; EOF<br \/>server {<br \/>listen 80;<br \/>server_name nginx1.com;<br \/>  \u00a0 \u00a0 \u00a0root \/app\/code\/a;<br \/>  \u00a0 \u00a0 \u00a0location \\ {<br \/>  \u00a0 \u00a0 \u00a0index index.html;<br \/>  \u00a0 \u00a0 \u00a0}<br \/>}<br \/>EOF<br \/>mkdir -p \/app\/docker\/nginx{1,2,3}\/html<br \/>mkdir -p \/app\/docker\/nginx2\/html<br \/>mkdir -p \/app\/docker\/nginx3\/html<br \/>echo\u00a0 test 1 container &gt; \/app\/docker\/nginx1\/html\/index.html <br \/>echo\u00a0 test 2 container &gt; \/app\/docker\/nginx2\/html\/index.html <br \/>echo\u00a0 test 3 container &gt; \/app\/docker\/nginx3\/html\/index.html<br \/>cp -a \/etc\/nginx\/nginx.conf \/app\/docker\/nginx{1,2,3}\/conf<br \/>cp -a \/etc\/nginx\/* \/app\/docker\/nginx3\/conf<br \/>#\u542f\u52a8<br \/>#\u4ee5\u4e0b\u4e24\u4e2a\u5bb9\u5668\u6302\u8f7d\u4e86\u914d\u7f6e\u6587\u4ef6\u548c\u7f51\u7ad9\u76ee\u5f55<br \/><br \/>cd \/app\/docker\/nginx1<br \/>docker run -d --name ngx_1 --restart=always \\<br \/>-p 8888:80 \\<br \/>-v `pwd`\/conf\/nginx.conf:\/etc\/nginx\/nginx.conf \\<br \/>-v `pwd`\/conf\/nginx1.conf:\/etc\/nginx\/conf.d\/nginx1.conf \\<br \/>-v `pwd`\/html:\/app\/code\/a \\<br \/>nginx:alpine<br \/><br \/>cd \/app\/docker\/nginx2<br \/>docker run -d --name ngx_2 --restart=always \\<br \/>-p 7777:80 \\<br \/>-v `pwd`\/conf\/nginx.conf:\/etc\/nginx\/nginx.conf \\<br \/>-v `pwd`\/conf\/nginx2.conf:\/etc\/nginx\/conf.d\/nginx2.conf \\<br \/>-v `pwd`\/html:\/app\/code\/b \\<br \/>nginx:alpine<br \/><br \/>#\u6b64\u5bb9\u5668\u6302\u8f7d\u4e86\u6574\u4e2a\/etc\/nginx\u76ee\u5f55<br \/>cd \/app\/docker\/nginx3<br \/>docker run -d --name ngx_3 --restart=always \\<br \/>-p 5555:80 \\<br \/>-v `pwd`\/conf:\/etc\/nginx\/ \\<br \/>-v `pwd`\/html:\/app\/code\/b \\<br \/>nginx:alpine<\/pre><pre>#\u521b\u5efa\u4ee5\u4e0b\u76ee\u5f55\u7ed3\u6784<br \/>\u251c\u2500\u2500 docker-compose.yml<br \/>\u2514\u2500\u2500 nginx-ui<br \/>\u251c\u2500\u2500 app.ini<br \/>\u251c\u2500\u2500 backup<br \/>\u2514\u2500\u2500 database.db<br \/>stub_status_nginx-ui.conf\uff1a\u4e3a\u5bb9\u5668\u5185nginx\u51c6\u5907\u7684\u914d\u7f6e\u6587\u4ef6<br \/>server {<br \/>listen 51820;<br \/>server_name localhost;<br \/># Status monitoring interface<br \/>location \/stub_status {<br \/>stub_status;<br \/>allow 127.0.0.1;<br \/>deny all;<br \/>}<br \/>}<br \/><br \/>app.ini\uff1anginx-ui\u914d\u7f6e\u6587\u4ef6<br \/>backup\uff1a\u5907\u4efd\u76ee\u5f55\uff0c\u5b58\u50a8\u81ea\u52a8\u5907\u4efd\u7684\u5176\u4ed6nginx\u5bb9\u5668\u7684\u914d\u7f6e\u6587\u4ef6<br \/>database.db\uff1a\u7b2c\u4e00\u6b21\u8fd0\u884c\u540e\u81ea\u52a8\u751f\u6210\u7684\u6570\u636e\u5e93\uff0c\u65e0\u9700\u624b\u52a8\u751f\u6210<br \/><br \/>#\u4f7f\u7528nginx-ui\u5b98\u65b9\u955c\u50cf<br \/>#\u521b\u5efadocker-compose.yml<br \/>cat &gt;&gt; docker-compose.yml &lt;&lt; EOF<br \/>version: '3.8'<br \/><br \/>services:<br \/>nginx-ui:<br \/>image: uozi\/nginx-ui:latest <br \/>container_name: nginx-ui<br \/>restart: unless-stopped<br \/>ports:<br \/>- \"9000:9000\"<br \/>environment:<br \/>- TZ=Asia\/Shanghai<br \/>volumes:<br \/>- .\/nginx-ui:\/etc\/nginx-ui<br \/>- .\/stub_status_nginx-ui.conf:\/etc\/nginx\/conf.d\/stub_status_nginx-ui.conf <br \/>- \/var\/run\/docker.sock:\/var\/run\/docker.sock<br \/># \u6302\u8f7d\u7b2c\u4e00\u4e2anginx\u5bb9\u5668\u7684\u914d\u7f6e<br \/>- \/app\/docker\/nginx_v1\/conf:\/etc\/nodes\/ngx_v1<br \/># \u6302\u8f7d\u7b2c\u4e8c\u4e2anginx\u5bb9\u5668\u7684\u914d\u7f6e<br \/>- \/app\/docker\/nginx_v2\/conf:\/etc\/nodes\/ngx_v2<br \/># \u6302\u8f7d\u7b2c\u4e09\u4e2anginx\u5bb9\u5668\u7684\u914d\u7f6e<br \/>- \/app\/docker\/nginx_v3\/nginx:\/etc\/nodes\/ngx_v3<br \/># \u6302\u8f7dnginx\u65e5\u5fd7\u76ee\u5f55\uff08\u5982\u679c\u9700\u8981\u67e5\u770b\u65e5\u5fd7\uff09<br \/>- \/var\/log\/nginx:\/var\/log\/nginx<br \/>EOF<br \/>#3. \u5176\u4ed6nginx\u5bb9\u5668\u7684\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55\u6302\u8f7d\u597d\u540e\u53ef\u4ee5\u542f\u52a8<br \/>docker-compose up -d<\/pre><h2><span class=\"ez-toc-section\" id=\"i\"><\/span>\u00a0<span class=\"ez-toc-section-end\"><\/span><\/h2><h2 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E8%AE%BF%E9%97%AENginx_UI\"><\/span><span class=\"md-plain\">\u8bbf\u95eeNginx UI<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2><ol class=\"ol-list\" start=\"\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">\u6253\u5f00\u6d4f\u89c8\u5668<\/span><\/strong><\/span><span class=\"md-plain\">\u8bbf\u95ee\uff1a<\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>http:\/\/\u4f60\u7684\u670d\u52a1\u5668IP:9000<\/code><\/span><span class=\"md-plain\">\uff0c\u7a0b\u5e8f\u9ed8\u8ba49000\u7aef\u53e3\uff0c\u5982\u6709\u51b2\u7a81\u53ef\u4ee5\u4fee\u6539 nginx-ui\/app.ini \u548cdocker-compose.yml<\/span><\/p><\/li><\/ol><h2 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E9%AA%8C%E8%AF%81%E9%83%A8%E7%BD%B2\"><\/span><span class=\"md-plain\">\u9a8c\u8bc1\u90e8\u7f72<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2><pre class=\"md-fences mock-cm md-end-block\" lang=\"bash\" spellcheck=\"false\"># \u68c0\u67e5\u670d\u52a1\u72b6\u6001<br \/>systemctl status nginx-ui<br \/># \u67e5\u770b\u65e5\u5fd7<br \/>journalctl -u nginx-ui -f<br \/># \u6d4b\u8bd5\u7aef\u53e3\u662f\u5426\u5f00\u653e<br \/>netstat -tlnp | grep 8080<\/pre><h2 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E9%A1%B5%E9%9D%A2%E6%93%8D%E4%BD%9C%EF%BC%9A\"><\/span><span class=\"md-plain\">\u9875\u9762\u64cd\u4f5c\uff1a<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E5%88%9B%E5%BB%BA%E6%81%A2%E5%A4%8D%E5%A4%87%E4%BB%BD%EF%BC%88nginx%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6nginxui%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%EF%BC%89%E6%B3%A8%EF%BC%9A%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2%E6%89%8D%E8%83%BD%E8%BF%9B%E8%A1%8C%E6%AD%A3%E5%B8%B8%E7%9A%84%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D\"><\/span><span class=\"md-plain\">\u521b\u5efa\/\u6062\u590d\u5907\u4efd\uff08nginx\u914d\u7f6e\u6587\u4ef6+nginxui\u6570\u636e\u5e93+\u914d\u7f6e\u6587\u4ef6\uff09\u6ce8\uff1a\u672c\u5730\u90e8\u7f72\u624d\u80fd\u8fdb\u884c\u6b63\u5e38\u7684\u5907\u4efd\/\u6062\u590d<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><p class=\"md-end-block md-p\"><span class=\"md-image md-img-loaded\" data-src=\"E:\/typora\/typora_images\/image-20251030090553570.png\"><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-2865\" src=\"https:\/\/linuxjk.cn\/wp-content\/uploads\/2025\/11\/image-20251030090553570.png\" alt=\"\" width=\"1897\" height=\"1044\" srcset=\"https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251030090553570.png 1897w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251030090553570-300x165.png 300w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251030090553570-1024x564.png 1024w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251030090553570-768x423.png 768w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251030090553570-1536x845.png 1536w\" sizes=\"(max-width: 1897px) 100vw, 1897px\" \/><\/span><\/p><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86%E2%80%93%E2%80%93%E7%BA%A2%E6%A1%86%E4%B8%AD%E7%9A%84ngx_v1%E5%8D%B3nginx%E5%AE%B9%E5%99%A8%E7%9A%84etcnginx%E7%9B%AE%E5%BD%95%EF%BC%8C%E7%82%B9%E5%87%BB%E4%BF%AE%E6%94%B9%E8%BF%9B%E5%85%A5\"><\/span><span class=\"md-plain\">\u914d\u7f6e\u7ba1\u7406<\/span><span class=\"md-pants \" data-text=\"--\" data-content=\"\u2013\" data-desc=\"en_dash\">\u2013<\/span><span class=\"md-pants \" data-text=\"--\" data-content=\"\u2013\" data-desc=\"en_dash\">\u2013<\/span><span class=\"md-plain\">\u7ea2\u6846\u4e2d\u7684ngx_v1\u5373nginx\u5bb9\u5668\u7684\/etc\/nginx\u76ee\u5f55\uff0c\u70b9\u51fb\u4fee\u6539\u8fdb\u5165<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><p class=\"md-end-block md-p\"><span class=\"md-image md-img-loaded\" data-src=\"E:\/typora\/typora_images\/image-20251031161805540-1761920827145-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2866\" src=\"https:\/\/linuxjk.cn\/wp-content\/uploads\/2025\/11\/image-20251031161805540-1761920827145-1.png\" alt=\"\" width=\"2560\" height=\"1398\" srcset=\"https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031161805540-1761920827145-1.png 2560w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031161805540-1761920827145-1-300x164.png 300w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031161805540-1761920827145-1-1024x559.png 1024w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031161805540-1761920827145-1-768x419.png 768w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031161805540-1761920827145-1-1536x839.png 1536w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031161805540-1761920827145-1-2048x1118.png 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/span><\/p><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"docker%E9%83%A8%E7%BD%B2%E5%8F%AF%E4%BB%A5%E5%9C%A8%E8%BF%99%E4%B8%AA%E9%A1%B5%E9%9D%A2%E4%BF%AE%E6%94%B9%E5%85%B6%E4%BB%96%E5%AE%B9%E5%99%A8%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6\"><\/span><span class=\"md-plain\">docker\u90e8\u7f72\u53ef\u4ee5\u5728\u8fd9\u4e2a\u9875\u9762\u4fee\u6539\u5176\u4ed6\u5bb9\u5668\u7684\u914d\u7f6e\u6587\u4ef6<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><p class=\"md-end-block md-p\"><span class=\"md-image md-img-loaded\" data-src=\"E:\/typora\/typora_images\/image-20251031162534924-1761920827145-2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-2867\" src=\"https:\/\/linuxjk.cn\/wp-content\/uploads\/2025\/11\/image-20251031162534924-1761920827145-2.png\" alt=\"\" width=\"2560\" height=\"1398\" srcset=\"https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031162534924-1761920827145-2.png 2560w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031162534924-1761920827145-2-300x164.png 300w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031162534924-1761920827145-2-1024x559.png 1024w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031162534924-1761920827145-2-768x419.png 768w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031162534924-1761920827145-2-1536x839.png 1536w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031162534924-1761920827145-2-2048x1118.png 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/span><\/p><h3 class=\"md-end-block md-heading\"><span class=\"ez-toc-section\" id=\"%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BD%EF%BC%9A%E7%82%B9%E5%87%BB%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BD%E9%A1%B5%E9%9D%A2%EF%BC%8C%E9%80%89%E6%8B%A9%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9B%AE%E5%BD%95%EF%BC%88%E8%BF%99%E9%87%8C%E7%9A%84%E5%A4%87%E4%BB%BD%E8%B7%AF%E5%BE%84%E5%92%8C%E5%AD%98%E5%82%A8%E8%B7%AF%E5%BE%84%E5%BF%85%E9%A1%BB%E5%9C%A8appini%E4%B8%AD%E6%8C%87%E5%AE%9A%EF%BC%89\"><\/span><span class=\"md-plain\">\u914d\u7f6e\u6587\u4ef6\u81ea\u52a8\u5907\u4efd\uff1a\u70b9\u51fb\u81ea\u52a8\u5907\u4efd\u9875\u9762\uff0c\u9009\u62e9\u81ea\u5b9a\u4e49\u76ee\u5f55\uff08\u8fd9\u91cc\u7684\u5907\u4efd\u8def\u5f84\u548c\u5b58\u50a8\u8def\u5f84\u5fc5\u987b\u5728app.ini\u4e2d\u6307\u5b9a\uff09<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3><pre class=\"md-fences mock-cm md-end-block\" lang=\"app.ini\" spellcheck=\"false\">[backup]<br \/>GrantedAccessPath = \/etc\/nodes <br \/>GrantedAccessPath = \/etc\/nginx-ui\/backup<\/pre><p class=\"md-end-block md-p\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2868\" src=\"https:\/\/linuxjk.cn\/wp-content\/uploads\/2025\/11\/image-20251031165025554-1761920827145-3.png\" alt=\"\" width=\"2560\" height=\"1398\" srcset=\"https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031165025554-1761920827145-3.png 2560w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031165025554-1761920827145-3-300x164.png 300w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031165025554-1761920827145-3-1024x559.png 1024w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031165025554-1761920827145-3-768x419.png 768w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031165025554-1761920827145-3-1536x839.png 1536w, https:\/\/linuxjk.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2025\/11\/image-20251031165025554-1761920827145-3-2048x1118.png 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u672c\u5730\u90e8\u7f72 \u83b7\u53d6\u7a0b\u5e8f\u6e90\u7801 #\u5728\u672c\u5730\u751f\u6210\u4e00\u4e2aid_rsa\uff0c\u5c06\u516c\u94a5\u6587\u4ef6\u5185\u5bb9id_rsa.pub\u7c98\u8d34\u5230github\u540e\u53f0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[20],"class_list":["post-2858","post","type-post","status-publish","format-standard","hentry","category-vxhs888p","tag-create_project"],"_links":{"self":[{"href":"https:\/\/linuxjk.cn\/index.php?rest_route=\/wp\/v2\/posts\/2858","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linuxjk.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linuxjk.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linuxjk.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linuxjk.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2858"}],"version-history":[{"count":8,"href":"https:\/\/linuxjk.cn\/index.php?rest_route=\/wp\/v2\/posts\/2858\/revisions"}],"predecessor-version":[{"id":2871,"href":"https:\/\/linuxjk.cn\/index.php?rest_route=\/wp\/v2\/posts\/2858\/revisions\/2871"}],"wp:attachment":[{"href":"https:\/\/linuxjk.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxjk.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxjk.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}