{"id":35658,"date":"2026-01-08T01:23:25","date_gmt":"2026-01-07T18:23:25","guid":{"rendered":"https:\/\/dps.media\/huong-dan-cai-dat-mailcow-phien-ban-cuoi\/"},"modified":"2026-01-08T01:23:25","modified_gmt":"2026-01-07T18:23:25","slug":"huong-dan-cai-dat-mailcow-phien-ban-cuoi","status":"publish","type":"post","link":"https:\/\/dps.media\/zh\/huong-dan-cai-dat-mailcow-phien-ban-cuoi\/","title":{"rendered":"Mailcow \u5b89\u88c5\u6307\u5357\uff08\u6700\u7ec8\u7248\u672c\uff09"},"content":{"rendered":"<p>\u672c\u6307\u5357\u9488\u5bf9\u5728\u8fd0\u884c Nginx Proxy Manager (NPM) \u548c Portainer \u7684 VPS \u4e0a\u5b89\u88c5 Mailcow: Dockerized \u8fdb\u884c\u4e86\u4f18\u5316\u3002\u5b83\u5305\u542b\u4e86\u9488\u5bf9\u91cd\u5b9a\u5411\u5faa\u73af (Redirect Loops) \u548c 504 Gateway Timeout \u9519\u8bef\u7b49\u5e38\u89c1\u95ee\u9898\u7684\u4fee\u590d\u3002.<\/p>\n<p><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch.jpg\" alt=\"mailcow-architecture\" class=\"wp-image-35655\" title=\"\" srcset=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch.jpg 1024w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-300x300.jpg 300w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-150x150.jpg 150w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-768x768.jpg 768w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-12x12.jpg 12w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-754x754.jpg 754w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-356x356.jpg 356w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-200x200.jpg 200w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-70x70.jpg 70w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><\/figcaption><\/figure>\n<\/p>\n<h2>1. \u524d\u63d0\u6761\u4ef6<\/h2>\n<ul>\n<li>\u9884\u88c5\u4e86 Docker \u548c Docker Compose \u7684 VPS\u3002.<\/li>\n<li>\u57df\u540d\uff1a <code data-no-translation=\"\">mail.khaisanfood.vn<\/code> (\u6307\u5411 VPS IP)\u3002.<\/li>\n<li>Nginx Proxy Manager \u6b63\u5728 Docker \u5bb9\u5668\u4e2d\u8fd0\u884c\u3002.<\/li>\n<\/ul>\n<h3>DNS\u8bb0\u5f55<\/h3>\n<table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>\u7c7b\u578b<\/th>\n<th>\u59d3\u540d<\/th>\n<th>Value<\/th>\n<th>Proxy Status<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>A<\/td>\n<td>mail<\/td>\n<td>\u60a8\u7684 VPS IP<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autodiscover<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autoconfig<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>MX<\/td>\n<td>@<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>Priority 10<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>@<\/td>\n<td>v=spf1 mx ~all<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>2. \u5b89\u88c5\u6b65\u9aa4<\/h2>\n<h3>\u7b2c 1 \u6b65\uff1a\u514b\u9686 Mailcow<\/h3>\n<pre data-no-translation=\"\"><code data-no-translation=\"\">cd \/opt\ngit clone https:\/\/github.com\/mailcow\/mailcow-dockerized\ncd mailcow-dockerized<\/code><\/pre>\n<h3>\u7b2c 2 \u6b65\uff1a\u751f\u6210\u914d\u7f6e<\/h3>\n<pre data-no-translation=\"\"><code data-no-translation=\"\">.\/generate_config.sh\nHostname: mail.khaisanfood.vn\nTimezone: Asia\/Ho<em>Chi<\/em>Minh\nClamAV: Y (n\u1ebfu RAM > 4GB) ho\u1eb7c N.<\/code><\/pre>\n<h3>\u7b2c 3 \u6b65\uff1a\u914d\u7f6e mailcow.conf (\u91cd\u8981)<\/h3>\n<p>\u7f16\u8f91\u914d\u7f6e\u4ee5\u907f\u514d\u51b2\u7a81\u548c\u5faa\u73af\u3002.<\/p>\n<pre data-no-translation=\"\"><code data-no-translation=\"\">nano mailcow.conf<\/code><\/pre>\n<p>\u4fee\u6539\u4ee5\u4e0b\u53d8\u91cf\uff1a<\/p>\n<ul>\n<li><strong>\u9632\u6b62\u91cd\u5b9a\u5411\u5faa\u73af\uff1a<\/strong><br \/>\n<code data-no-translation=\"\">HTTP_REDIRECT=n<\/code><br \/>\n(\u6211\u4eec\u8ba9 Nginx Proxy Manager \u5904\u7406 HTTPS\uff0c\u56e0\u6b64\u8bf7\u5173\u95ed Mailcow \u7684\u5185\u90e8\u91cd\u5b9a\u5411)\u3002.<\/li>\n<li><strong>\u7ed1\u5b9a\u5230\u6240\u6709\u63a5\u53e3\uff08\u4ee5\u4fbf NPM \u53ef\u4ee5\u8bbf\u95ee\uff09\uff1a<\/strong>\n<p><code data-no-translation=\"\">HTTP_BIND=0.0.0.0<\/code><\/p>\n<p><code data-no-translation=\"\">HTTPS_BIND=0.0.0.0<\/code><\/li>\n{<br>  \"slug\": \"blog\",<br>  \"translations\": [<br>    \"<\/p>\"<br>  ]<br>}\n<li><strong>\u66f4\u6539\u7aef\u53e3\uff08\u4ee5\u907f\u514d 80\/443 \u51b2\u7a81\uff09\uff1a<\/strong>\n<p><code data-no-translation=\"\">HTTP_PORT=8080<\/code><\/p>\n<p><code data-no-translation=\"\">HTTPS_PORT=8443<\/code><\/li>\n{<br>  \"slug\": \"blog\",<br>  \"translations\": [<br>    \"<\/p>\"<br>  ]<br>}\n<li><strong>\u907f\u514d IP \u51b2\u7a81\uff08\u4fee\u590d \u201cPool overlaps\u201d \u9519\u8bef\uff09\uff1a<\/strong>\n<p><code data-no-translation=\"\">IPV4_NETWORK=192.168.201<\/code><\/li>\n<p>\n<\/ul>\n{<br>  \"slug\": \"blog\",<br>  \"translations\": [<br>    \"<\/p>\"<br>  ]<br>}\n<p><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal.jpg\" alt=\"mailcow-installation-terminal\" class=\"wp-image-35656\" title=\"\" srcset=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal.jpg 1024w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-300x300.jpg 300w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-150x150.jpg 150w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-768x768.jpg 768w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-12x12.jpg 12w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-754x754.jpg 754w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-356x356.jpg 356w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-200x200.jpg 200w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-70x70.jpg 70w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><\/figcaption><\/figure>\n<\/p>\n<h3>\u7b2c 4 \u6b65\uff1a\u8bbe\u7f6e\u9632\u706b\u5899\uff08\u4fee\u590d 504 \u9519\u8bef\uff09<\/h3>\n<p>\u786e\u4fdd Docker \u5bb9\u5668\u53ef\u4ee5\u76f8\u4e92\u901a\u4fe1\u3002.<\/p>\n<pre data-no-translation=\"\"><code data-no-translation=\"\">ufw allow from 172.16.0.0\/12 to any<\/code><\/pre>\n<h3>\u7b2c 5 \u6b65\uff1a\u542f\u52a8 Mailcow<\/h3>\n<pre data-no-translation=\"\"><code data-no-translation=\"\">docker compose pull\ndocker compose up -d<\/code><\/pre>\n<h2>3. \u914d\u7f6e Nginx Proxy Manager<\/h2>\n<p>\u8bbf\u95ee Nginx Proxy Manager \u5e76\u6dfb\u52a0\u65b0\u7684 Proxy Host\u3002.<\/p>\n<h3>Details \u9009\u9879\u5361<\/h3>\n<ul>\n<li>Domain Names: <code data-no-translation=\"\">mail.khaisanfood.vn<\/code><\/li>\n<li>Scheme: <code data-no-translation=\"\">http<\/code> (\u91cd\u8981\uff01\u901a\u8fc7 HTTP \u8fde\u63a5)<\/li>\n<li>Forward Hostname \/ IP: <code data-no-translation=\"\">172.17.0.1<\/code><br \/>\n(\u8fd9\u662f\u6807\u51c6\u7684 Docker Gateway IP\u3002\u68c0\u67e5 <code data-no-translation=\"\">ip addr show docker0<\/code> \u4ee5\u786e\u8ba4)\u3002.<\/li>\n<li>Forward Port: <code data-no-translation=\"\">8080<\/code><\/li>\n<li>Cache Assets: Disabled<\/li>\n<li>Block Common Exploits: Enabled<\/li>\n<\/ul>\n<h3>SSL \u9009\u9879\u5361<\/h3>\n<ul>\n<li>SSL Certificate: \u8bf7\u6c42\u65b0\u7684 Let's Encrypt \u8bc1\u4e66\u3002.<\/li>\n<li>Force SSL: Enabled.<\/li>\n<li>HTTP\/2 Support: Enabled.<\/li>\n<\/ul>\n<p>\u70b9\u51fb Save\u3002\u73b0\u5728\u60a8\u53ef\u4ee5\u8bbf\u95ee <code data-no-translation=\"\">https:\/\/mail.khaisanfood.vn<\/code>.<\/p>\n<p><figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security.jpg\" alt=\"ssl-security\" class=\"wp-image-35657\" title=\"\" srcset=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security.jpg 1024w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-300x300.jpg 300w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-150x150.jpg 150w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-768x768.jpg 768w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-12x12.jpg 12w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-754x754.jpg 754w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-356x356.jpg 356w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-200x200.jpg 200w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-70x70.jpg 70w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><\/figcaption><\/figure>\n<\/p>\n<h2>4. \u5b89\u88c5\u540e\u64cd\u4f5c<\/h2>\n<h3>\u540c\u6b65 SSL \u8bc1\u4e66\uff08\u7528\u4e8e\u90ae\u4ef6\u5ba2\u6237\u7aef\uff09<\/h3>\n<p>NPM \u5904\u7406 Web SSL\uff0c\u4f46 Mailcow \u9700\u8981 SMTP\/IMAP \u8bc1\u4e66\u3002\u60a8\u9700\u8981\u4ece\u5bbf\u4e3b\u673a\u4e0a\u7684 NPM Docker \u5377\u4e2d\u590d\u5236\u5b83\u4eec\u3002.<\/p>\n<p>\u67e5\u627e\u60a8\u7684 NPM \u8bc1\u4e66 ID\uff1a\u68c0\u67e5 NPM \u4eea\u8868\u76d8\u6216\u5728\u76ee\u5f55\u4e2d\u67e5\u627e\u3002\u4f8b\u5982\u4e3b\u673a\u8def\u5f84\uff1a <code data-no-translation=\"\">\/var\/lib\/docker\/volumes\/nginx-proxy-manager<em>npm<\/em>letsencrypt\/_data\/live\/npm-21<\/code> (id 21 \u56e0\u57df\u540d\u800c\u5f02)\u3002.<\/p>\n<p>\u540c\u6b65\u547d\u4ee4\uff1a<\/p>\n<pre data-no-translation=\"\"><code data-no-translation=\"\"># C\u1eadp nh\u1eadt \u0111\u01b0\u1eddng d\u1eabn n\u00e0y kh\u1edbp v\u1edbi Host Path c\u1ee7a b\u1ea1n t\u00ecm th\u1ea5y \u1edf tr\u00ean\nNPM<em>CERT<\/em>PATH=\"\/var\/lib\/docker\/volumes\/nginx-proxy-manager<em>npm<\/em>letsencrypt\/_data\/live\/npm-21\"\ncp \"$NPM<em>CERT<\/em>PATH\/fullchain.pem\" \/opt\/mailcow-dockerized\/data\/assets\/ssl\/cert.pem\ncp \"$NPM<em>CERT<\/em>PATH\/privkey.pem\" \/opt\/mailcow-dockerized\/data\/assets\/ssl\/key.pem\ncd \/opt\/mailcow-dockerized\ndocker compose restart postfix-mailcow dovecot-mailcow nginx-mailcow<\/code><\/pre>\n<h3>\u91cd\u7f6e Admin \u5bc6\u7801<\/h3>\n<p>\u5982\u679c <code data-no-translation=\"\">admin \/ moohoo<\/code> \u4e0d\u8d77\u4f5c\u7528\uff1a<\/p>\n<pre data-no-translation=\"\"><code data-no-translation=\"\">cd \/opt\/mailcow-dockerized\/helper-scripts\nbash mailcow-reset-admin.sh<\/code><\/pre>\n<h3>DNS \/ DKIM<\/h3>\n<p>\u767b\u5f55 Mailcow UI -&gt; Configuration -&gt; Mail Setup -&gt; DNS \u4ee5\u83b7\u53d6 DKIM \u8bb0\u5f55\u5e76\u5c06\u5176\u6dfb\u52a0\u5230\u60a8\u7684 DNS \u63d0\u4f9b\u5546\u3002.<\/p>\n<h2>5. \u6dfb\u52a0\u989d\u5916\u57df\u540d (\u591a\u57df\u540d\u8bbe\u7f6e)<\/h2>\n<p>\u60a8\u53ef\u4ee5\u5728\u540c\u4e00\u53f0\u670d\u52a1\u5668\u4e0a\u6258\u7ba1\u591a\u4e2a\u7535\u5b50\u90ae\u4ef6\u57df\u540d\uff08\u4f8b\u5982\uff1a <code data-no-translation=\"\">@dpsmedia.vn<\/code>\uff09\u3002.<\/p>\n<h3>A. \u5728 Mailcow \u4e2d\u6dfb\u52a0\u57df\u540d<\/h3>\n<ul>\n<li>\u4ee5\u7ba1\u7406\u5458\u6743\u9650\u767b\u5f55 Mailcow UI\u3002.<\/li>\n<li>\u8fdb\u5165 Configuration -&gt; Mail Setup -&gt; Domains\u3002.<\/li>\n<li>\u70b9\u51fb Add Domain\u3002.<\/li>\n<li>\u57df\u540d\uff1a <code data-no-translation=\"\">dpsmedia.vn<\/code> (\u6216\u60a8\u7684\u65b0\u57df\u540d)\u3002.<\/li>\n<li>\u70b9\u51fb Add Domain \u5e76\u91cd\u542f SOGo\u3002.<\/li>\n<\/ul>\n<h3>B. \u65b0\u57df\u540d\u7684 DNS (dpsmedia.vn)<\/h3>\n<p>\u8fdb\u5165 <code data-no-translation=\"\">dpsmedia.vn<\/code> \u7684 DNS \u63d0\u4f9b\u5546\u5e76\u6dfb\u52a0\u8fd9\u4e9b\u8bb0\u5f55\u3002\u91cd\u8981\uff1a\u5c06\u5b83\u4eec\u6307\u5411\u60a8\u5f53\u524d\u7684\u90ae\u4ef6\u670d\u52a1\u5668 URL (<code data-no-translation=\"\">mail.khaisanfood.vn<\/code>).<\/p>\n<table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>\u7c7b\u578b<\/th>\n<th>\u59d3\u540d<\/th>\n<th>Value<\/th>\n<th>\u72b6\u6001<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>MX<\/td>\n<td>@<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>Priority 10<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>@<\/td>\n<td>v=spf1 mx include:mail.khaisanfood.vn ~all<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autodiscover<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autoconfig<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>dkim._domainkey<\/td>\n<td>(\u4ece Mailcow UI -&gt; DNS \u590d\u5236\u503c)<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>_dmarc<\/td>\n<td>v=DMARC1; p=none;<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>(\u60a8\u4e0d\u9700\u8981\u65b0\u7684 IP \u5730\u5740\u3002\u6240\u6709\u5185\u5bb9\u90fd\u901a\u8fc7\u4e3b IP)\u3002.<\/p>\n<h3>C. (\u53ef\u9009) \u901a\u8fc7 mail.dpsmedia.vn \u8bbf\u95ee Mailcow UI<\/h3>\n<p>\u5982\u679c\u60a8\u60f3\u901a\u8fc7 <code data-no-translation=\"\">https:\/\/mail.dpsmedia.vn<\/code>:<\/p>\n<p>\u8bbf\u95ee\u7ba1\u7406\u754c\u9762\uff0c\u8bf7\u7f16\u8f91\u914d\u7f6e\uff1a<\/p>\n<pre data-no-translation=\"\"><code data-no-translation=\"\">nano mailcow.conf\nADDITIONAL<em>SERVER<\/em>NAMES=mail.dpsmedia.vn\ndocker compose up -d<\/code><\/pre>\n<p>Nginx Proxy Manager: \u590d\u5236\u4e0e <code data-no-translation=\"\">mail.khaisanfood.vn<\/code>.<\/p>\n<h3>\u76f8\u540c\u7684\u8bbe\u7f6e\u3002D. \u989d\u5916\u57df\u540d\u7684 SSL \u8bc1\u4e66<\/h3>\n<p><strong>\u9009\u9879 1\uff1a<\/strong> (\u63a8\u8350) \u4f7f\u7528 <code data-no-translation=\"\">mail.khaisanfood.vn<\/code> \u4f5c\u4e3a\u6536\u53d1\u670d\u52a1\u5668\u3002.<\/p>\n<p><strong>\u9009\u9879 2\uff1a<\/strong> (\u9ad8\u7ea7) \u5728\u914d\u7f6e\u4e2d\u542f\u7528 <code data-no-translation=\"\">ENABLE<em>SSL<\/em>SNI=y<\/code> \uff0c\u521b\u5efa\u5355\u72ec\u7684 SSL \u76ee\u5f55\u5e76\u5c06\u65b0\u8bc1\u4e66\u540c\u6b65\u5230\u5176\u4e2d\u3002.<\/p>\n<h2>6. \u4fee\u590d\u90ae\u4ef6\u53d1\u9001\u95ee\u9898 (Gmail \u5c4f\u853d)<\/h2>\n<p>\u5982\u679c\u9047\u5230\u9519\u8bef <code data-no-translation=\"\">550-5.7.1<\/code>, \uff0c\u610f\u5473\u7740\u60a8\u7684 IP \u4fe1\u8a89\u8f83\u4f4e\u3002.<\/p>\n<h3>A. \u8bbe\u7f6e\u53cd\u5411 DNS (PTR) \u2013 \u5f3a\u5236\u6027<\/h3>\n<p>\u8fdb\u5165 VPS \u63d0\u4f9b\u5546\u7684\u4eea\u8868\u677f\uff0c\u5c06\u60a8\u7684 IP \u7684 PTR \u8bb0\u5f55\u8bbe\u7f6e\u4e3a <code data-no-translation=\"\">mail.khaisanfood.vn<\/code>.<\/p>\n<h3>B. \u4f7f\u7528 SMTP \u4e2d\u7ee7<\/h3>\n<p>\u5982\u679c IP \u88ab\u5217\u5165\u9ed1\u540d\u5355\uff0c\u8bf7\u4f7f\u7528 Amazon SES\u3001SendGrid \u6216 Mailgun \u4f5c\u4e3a\u4e2d\u7ee7\u3002.<\/p>\n<h2>7. \u5378\u8f7d\u6307\u5357<\/h2>\n<p>\u8b66\u544a\uff1a\u6b64\u64cd\u4f5c\u5c06\u5220\u9664\u6240\u6709\u7535\u5b50\u90ae\u4ef6\u6570\u636e\u3002.<\/p>\n<pre data-no-translation=\"\"><code data-no-translation=\"\">cd \/opt\/mailcow-dockerized\ndocker compose down -v\ncd \/opt\nrm -rf mailcow-dockerized<\/code><\/pre>\n<p>\u5728 NPM \u4e2d\u5220\u9664 Proxy Host\u3002.<\/p>","protected":false},"excerpt":{"rendered":"<p>H\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a \u0111\u1ec3 c\u00e0i \u0111\u1eb7t Mailcow: Dockerized tr\u00ean VPS ch\u1ea1y Nginx Proxy Manager (NPM) v\u00e0 Portainer. N\u00f3 bao g\u1ed3m c\u00e1c s\u1eeda l\u1ed7i cho c\u00e1c v\u1ea5n \u0111\u1ec1 ph\u1ed5 bi\u1ebfn nh\u01b0 V\u00f2ng l\u1eb7p Chuy\u1ec3n h\u01b0\u1edbng (Redirect Loops) v\u00e0 L\u1ed7i Gateway Timeout 504. 1. Y\u00eau c\u1ea7u Ti\u00ean quy\u1ebft VPS c\u00e0i s\u1eb5n Docker &#038; [&hellip;]<\/p>","protected":false},"author":1,"featured_media":35655,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1758,1793,1794],"tags":[],"class_list":["post-35658","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-guides","category-mailcow"],"acf":[],"rankmath_keywords":{"primary":"","secondary":[""]},"yoast_keywords":{"primary":"","secondary":[]},"yoast_focuskw":"","rankmath_focuskw":"","seo_keywords":{"primary":"","secondary":[""]},"_links":{"self":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts\/35658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/comments?post=35658"}],"version-history":[{"count":0,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts\/35658\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/media\/35655"}],"wp:attachment":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/media?parent=35658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/categories?post=35658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/tags?post=35658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}