<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>运维 on JiangYM's Blog</title><link>https://jiangym.top/categories/%E8%BF%90%E7%BB%B4/</link><description>Recent content from JiangYM's Blog</description><generator>Hugo</generator><language>zh-cn</language><managingEditor>xxx@example.com (JiangYM)</managingEditor><webMaster>xxx@example.com (JiangYM)</webMaster><copyright>本博客所有文章除特别声明外，均采用 BY-NC-SA 许可协议。转载请注明出处！</copyright><lastBuildDate>Tue, 11 Aug 2026 14:00:00 +0800</lastBuildDate><atom:link href="https://jiangym.top/categories/%E8%BF%90%E7%BB%B4/index.xml" rel="self" type="application/rss+xml"/><item><title>用 Nginx Proxy Manager 轻松管理反向代理和 HTTPS</title><link>https://jiangym.top/post/nginx-proxy-manager-guide/</link><pubDate>Tue, 11 Aug 2026 14:00:00 +0800</pubDate><author>xxx@example.com (JiangYM)</author><guid>https://jiangym.top/post/nginx-proxy-manager-guide/</guid><description>
<![CDATA[<h1>用 Nginx Proxy Manager 轻松管理反向代理和 HTTPS</h1><p>作者：JiangYM（xxx@example.com）</p>
        
          <h2 id="什么是-nginx-proxy-manager">
<a class="header-anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af-nginx-proxy-manager"></a>
什么是 Nginx Proxy Manager？
</h2><p><strong>Nginx Proxy Manager</strong>（简称 NPM）是一个基于 Nginx 的图形化反向代理管理工具，用 Docker 一键部署，让你通过 Web 界面管理代理主机和 SSL 证书，不用再手写复杂的 Nginx 配置。</p>
<h3 id="为什么用它">
<a class="header-anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e7%94%a8%e5%ae%83"></a>
为什么用它？
</h3><ul>
<li>🖥️ <strong>图形化界面</strong>：点几下就配好反代</li>
<li>🔐 <strong>自动 HTTPS</strong>：自动申请和续期 Let&rsquo;s Encrypt 证书</li>
<li>🐳 <strong>Docker 部署</strong>：一条命令启动</li>
<li>📊 <strong>访问统计</strong>：内置流量和错误日志</li>
<li>👥 <strong>多用户</strong>：支持多用户权限管理</li>
<li>🔧 <strong>高级配置</strong>：支持自定义 Nginx 配置、Access List</li>
</ul>
<hr>
<h2 id="docker-部署">
<a class="header-anchor" href="#docker-%e9%83%a8%e7%bd%b2"></a>
Docker 部署
</h2><h3 id="docker-compose-部署">
<a class="header-anchor" href="#docker-compose-%e9%83%a8%e7%bd%b2"></a>
docker-compose 部署
</h3><p>创建 <code>docker-compose.yml</code>：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;3.8&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">services</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">app</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;jc21/nginx-proxy-manager:latest&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">restart</span><span class="p">:</span><span class="w"> </span><span class="l">unless-stopped</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">ports</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="s1">&#39;80:80&#39;</span><span class="w">     </span><span class="c"># HTTP</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="s1">&#39;443:443&#39;</span><span class="w">   </span><span class="c"># HTTPS</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="s1">&#39;81:81&#39;</span><span class="w">     </span><span class="c"># 管理面板</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">volumes</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="l">./data:/data</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="l">./letsencrypt:/etc/letsencrypt</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>启动：</p>
        
        <hr><p>本文2026-08-11首发于<a href='https://jiangym.top/'>JiangYM's Blog</a>，最后修改于2026-08-11</p>]]></description><category>运维</category></item><item><title>Docker 入门到进阶：容器化部署完全指南</title><link>https://jiangym.top/post/docker-guide/</link><pubDate>Sun, 09 Aug 2026 14:00:00 +0800</pubDate><author>xxx@example.com (JiangYM)</author><guid>https://jiangym.top/post/docker-guide/</guid><description>
<![CDATA[<h1>Docker 入门到进阶：容器化部署完全指南</h1><p>作者：JiangYM（xxx@example.com）</p>
        
          <h2 id="什么是-docker">
<a class="header-anchor" href="#%e4%bb%80%e4%b9%88%e6%98%af-docker"></a>
什么是 Docker？
</h2><p>Docker 是一个容器化平台，可以把应用和它的依赖打包成一个轻量、可移植的容器，然后在任何 Linux 机器上运行。</p>
<h3 id="为什么用-docker">
<a class="header-anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e7%94%a8-docker"></a>
为什么用 Docker？
</h3><ul>
<li>🚀 <strong>环境一致</strong>：开发、测试、生产环境完全一样</li>
<li>📦 <strong>快速部署</strong>：一条命令启动服务</li>
<li>🔄 <strong>易于迁移</strong>：在哪都能跑，不依赖系统环境</li>
<li>🗑️ <strong>干净清爽</strong>：删掉容器就是完全卸载，不留垃圾</li>
<li>📊 <strong>隔离性好</strong>：各个服务互不影响</li>
</ul>
<h3 id="容器-vs-虚拟机">
<a class="header-anchor" href="#%e5%ae%b9%e5%99%a8-vs-%e8%99%9a%e6%8b%9f%e6%9c%ba"></a>
容器 vs 虚拟机
</h3><table>
	<thead>
			<tr>
					<th>特性</th>
					<th>容器</th>
					<th>虚拟机</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>启动速度</td>
					<td>秒级</td>
					<td>分钟级</td>
			</tr>
			<tr>
					<td>资源占用</td>
					<td>MB 级</td>
					<td>GB 级</td>
			</tr>
			<tr>
					<td>隔离性</td>
					<td>进程级隔离</td>
					<td>完全隔离</td>
			</tr>
			<tr>
					<td>数量</td>
					<td>单机可跑几百个</td>
					<td>十几个</td>
			</tr>
	</tbody>
</table>
<hr>
<h2 id="安装-docker">
<a class="header-anchor" href="#%e5%ae%89%e8%a3%85-docker"></a>
安装 Docker
</h2><h3 id="ubuntudebian">
<a class="header-anchor" href="#ubuntudebian"></a>
Ubuntu/Debian
</h3><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># 官方脚本一键安装（最简单）</span>
</span></span><span class="line"><span class="cl">curl -fsSL https://get.docker.com <span class="p">|</span> bash
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 启动并设置开机自启</span>
</span></span><span class="line"><span class="cl">sudo systemctl start docker
</span></span><span class="line"><span class="cl">sudo systemctl <span class="nb">enable</span> docker
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 将当前用户加入 docker 组（免 sudo）</span>
</span></span><span class="line"><span class="cl">sudo usermod -aG docker <span class="nv">$USER</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 重新登录后生效</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>验证安装：</p>
        
        <hr><p>本文2026-08-09首发于<a href='https://jiangym.top/'>JiangYM's Blog</a>，最后修改于2026-08-09</p>]]></description><category>运维</category></item><item><title>Nginx 配置速查：从基础到进阶常用配置</title><link>https://jiangym.top/post/nginx-config-cheatsheet/</link><pubDate>Wed, 05 Aug 2026 12:00:00 +0800</pubDate><author>xxx@example.com (JiangYM)</author><guid>https://jiangym.top/post/nginx-config-cheatsheet/</guid><description>
<![CDATA[<h1>Nginx 配置速查：从基础到进阶常用配置</h1><p>作者：JiangYM（xxx@example.com）</p>
        
          <h2 id="前言">
<a class="header-anchor" href="#%e5%89%8d%e8%a8%80"></a>
前言
</h2><p>Nginx 是目前最流行的 Web 服务器和反向代理工具，性能高、配置灵活。本文整理了实际开发中最高频用到的配置，按场景分类，方便查阅。</p>
<hr>
<h2 id="一基础配置">
<a class="header-anchor" href="#%e4%b8%80%e5%9f%ba%e7%a1%80%e9%85%8d%e7%bd%ae"></a>
一、基础配置
</h2><h3 id="主配置文件结构">
<a class="header-anchor" href="#%e4%b8%bb%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e7%bb%93%e6%9e%84"></a>
主配置文件结构
</h3><pre tabindex="0"><code>/etc/nginx/
├── nginx.conf          # 主配置
├── sites-available/    # 可用站点
└── sites-enabled/      # 已启用站点（软链接）
</code></pre><h3 id="检查配置和重载">
<a class="header-anchor" href="#%e6%a3%80%e6%9f%a5%e9%85%8d%e7%bd%ae%e5%92%8c%e9%87%8d%e8%bd%bd"></a>
检查配置和重载
</h3><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># 检查配置语法</span>
</span></span><span class="line"><span class="cl">nginx -t
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 平滑重载（不中断服务）</span>
</span></span><span class="line"><span class="cl">nginx -s reload
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 重启</span>
</span></span><span class="line"><span class="cl">systemctl restart nginx
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 查看状态</span>
</span></span><span class="line"><span class="cl">systemctl status nginx
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="最简单的静态站点">
<a class="header-anchor" href="#%e6%9c%80%e7%ae%80%e5%8d%95%e7%9a%84%e9%9d%99%e6%80%81%e7%ab%99%e7%82%b9"></a>
最简单的静态站点
</h3><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-nginx" data-lang="nginx"><span class="line"><span class="cl"><span class="k">server</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="kn">listen</span> <span class="mi">80</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="kn">server_name</span> <span class="s">example.com</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="kn">root</span> <span class="s">/var/www/html</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="kn">index</span> <span class="s">index.html</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kn">location</span> <span class="s">/</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="kn">try_files</span> <span class="nv">$uri</span> <span class="nv">$uri/</span> <span class="p">=</span><span class="mi">404</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>启用站点：</p>
        
        <hr><p>本文2026-08-05首发于<a href='https://jiangym.top/'>JiangYM's Blog</a>，最后修改于2026-08-05</p>]]></description><category>运维</category></item></channel></rss>