{"id":3473,"date":"2025-11-13T10:24:12","date_gmt":"2025-11-13T03:24:12","guid":{"rendered":"https:\/\/portal-atlasx.cdg.co.th\/home\/?post_type=docs&#038;p=3473"},"modified":"2025-11-13T10:24:12","modified_gmt":"2025-11-13T03:24:12","slug":"nginx-beta","status":"publish","type":"docs","link":"https:\/\/portal-atlasx.cdg.co.th\/home\/docs\/atlasx-container\/reverse-proxy\/nginx-beta\/","title":{"rendered":"Nginx (BETA)"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"nginx\">Nginx<\/h1>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.nginx.com\/wp-content\/uploads\/2021\/08\/NGINX-Part-of-F5-horiz-black-type-1.svg\" alt=\"Nginx\" title=\"null\"\/><\/figure>\n\n\n\n<p>NGINX \u0e40\u0e1b\u0e47\u0e19 web server \u0e17\u0e35\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e19\u0e33\u0e21\u0e32\u0e17\u0e33\u0e40\u0e1b\u0e47\u0e19 Reverse Proxy \u0e2b\u0e23\u0e37\u0e2d Load Balancer \u0e44\u0e14\u0e49 \u0e42\u0e14\u0e22\u0e17\u0e35\u0e48\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e21\u0e35\u0e1b\u0e23\u0e30\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e20\u0e32\u0e1e\u0e2a\u0e39\u0e07 \u0e41\u0e25\u0e30\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e22\u0e37\u0e14\u0e2b\u0e22\u0e38\u0e48\u0e19\u0e43\u0e19\u0e01\u0e32\u0e23\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e48\u0e32\u0e15\u0e48\u0e32\u0e07 \u0e46<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"edition\">Edition<\/h2>\n\n\n\n<p>NGINX \u0e16\u0e39\u0e01\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e2b\u0e25\u0e32\u0e01\u0e2b\u0e25\u0e32\u0e22\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e48\u0e19 \u0e0b\u0e36\u0e48\u0e07\u0e01\u0e47\u0e08\u0e30\u0e21\u0e35\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19 \u0e43\u0e19\u0e01\u0e32\u0e23\u0e19\u0e33\u0e21\u0e32\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e40\u0e1b\u0e47\u0e19 Reverse Proxy \u0e01\u0e31\u0e1a container \u0e08\u0e30\u0e21\u0e35\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e48\u0e19\u0e2b\u0e25\u0e31\u0e01 \u0e46 \u0e2d\u0e22\u0e39\u0e48 2 \u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e48\u0e19 \u0e44\u0e14\u0e49\u0e41\u0e01\u0e48<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-nginx-open-source\">1. NGINX Open Source<\/h3>\n\n\n\n<p>\u0e40\u0e1b\u0e47\u0e19 web server \u0e41\u0e1a\u0e1a open source \u0e17\u0e35\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e01\u0e27\u0e48\u0e32 400 \u0e25\u0e49\u0e32\u0e19\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e39\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e44\u0e14\u0e49\u0e17\u0e35\u0e48&nbsp;<a href=\"https:\/\/nginx.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">NGINX Open Source<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2-nginx-plus\">2. NGINX Plus<\/h3>\n\n\n\n<p>\u0e40\u0e1b\u0e47\u0e19 NGINX \u0e17\u0e35\u0e48\u0e23\u0e27\u0e21\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e44\u0e27\u0e49\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e35\u0e22\u0e1a\u0e23\u0e49\u0e2d\u0e22\u0e41\u0e25\u0e49\u0e27\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19 load balancer, reverse proxy, web server, content cache \u0e41\u0e25\u0e30 API gateway \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e39\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e44\u0e14\u0e49\u0e17\u0e35\u0e48&nbsp;<a href=\"https:\/\/www.nginx.com\/products\/nginx\/\" target=\"_blank\" rel=\"noreferrer noopener\">NGINX Plus<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"nginx-reverse-proxy-for-docker\">NGINX Reverse Proxy for Docker<\/h2>\n\n\n\n<p>\u0e43\u0e19\u0e01\u0e32\u0e23\u0e19\u0e33 NGINX \u0e21\u0e32\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a container \u0e40\u0e23\u0e32\u0e08\u0e30\u0e43\u0e0a\u0e49 image&nbsp;<code>nginxproxy\/nginx-proxy<\/code>&nbsp;\u0e17\u0e35\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07 NGINX \u0e21\u0e32\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e17\u0e33 Reverse Proxy \u0e43\u0e2b\u0e49\u0e40\u0e23\u0e35\u0e22\u0e1a\u0e23\u0e49\u0e2d\u0e22\u0e41\u0e25\u0e49\u0e27<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Source Code:\u00a0<a href=\"https:\/\/github.com\/nginx-proxy\/nginx-proxy\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/nginx-proxy\/nginx-proxy<\/a><\/li>\n\n\n\n<li>Docker Image:\u00a0<a href=\"https:\/\/hub.docker.com\/r\/nginxproxy\/nginx-proxy\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/hub.docker.com\/r\/nginxproxy\/nginx-proxy<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"installation\">Installation<\/h2>\n\n\n\n<p>\u0e43\u0e19\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07 Nginx Proxy \u0e19\u0e31\u0e49\u0e19\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49 Docker Compose \u0e0a\u0e48\u0e27\u0e22\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e44\u0e14\u0e49\u0e07\u0e48\u0e32\u0e22 \u0e46 \u0e42\u0e14\u0e22\u0e17\u0e33\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>version: '3.7'\n\nservices:\n  nginx-proxy:\n    image: 'nginxproxy\/nginx-proxy:1.0.1-alpine'\n    container_name: 'nginx-proxy'\n    restart: 'always'\n    networks:\n      - frontend\n    ports:\n      - '80:80'\n    volumes:\n      - \/var\/run\/docker.sock:\/tmp\/docker.sock:ro\n\nnetworks:\n  frontend:\n    external: true<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #000000\">version: <\/span><span style=\"color: #A31515\">&#39;3.7&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">services:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">nginx<\/span><span style=\"color: #000000\">-proxy:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    image: <\/span><span style=\"color: #A31515\">&#39;nginxproxy\/nginx-proxy:1.0.1-alpine&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    container_name: <\/span><span style=\"color: #A31515\">&#39;nginx-proxy&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    restart: <\/span><span style=\"color: #A31515\">&#39;always&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    networks:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #001080\">frontend<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    ports:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #A31515\">&#39;80:80&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    volumes:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - \/<\/span><span style=\"color: #0000FF\">var<\/span><span style=\"color: #000000\">\/<\/span><span style=\"color: #001080\">run<\/span><span style=\"color: #000000\">\/docker.sock:\/<\/span><span style=\"color: #267F99\">tmp<\/span><span style=\"color: #000000\">\/<\/span><span style=\"color: #267F99\">docker<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #267F99\">sock<\/span><span style=\"color: #000000\">:<\/span><span style=\"color: #267F99\">ro<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">networks:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  frontend:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    external: <\/span><span style=\"color: #0000FF\">true<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h5 class=\"wp-block-heading\">Note<\/h5>\n\n\n\n<p><\/p>\n\n\n\n<p>\u26a0\ufe0f \u0e2d\u0e22\u0e48\u0e32\u0e25\u0e37\u0e21\u0e2a\u0e23\u0e49\u0e32\u0e07 network \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23 traffic \u0e17\u0e35\u0e48\u0e08\u0e30\u0e43\u0e2b\u0e49\u0e40\u0e02\u0e49\u0e32\u0e21\u0e32\u0e43\u0e19\u0e41\u0e2d\u0e1e\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19 container \u0e40\u0e0a\u0e48\u0e19\u0e43\u0e19\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e43\u0e0a\u0e49 network \u0e0a\u0e37\u0e48\u0e2d&nbsp;<code>frontend<\/code>&nbsp;\u0e0b\u0e36\u0e48\u0e07\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e44\u0e14\u0e49\u0e14\u0e49\u0e27\u0e22\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07&nbsp;<code>docker network create frontend<\/code><\/p>\n<\/blockquote>\n\n\n\n<p>\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e43\u0e2b\u0e49\u0e23\u0e31\u0e19\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07&nbsp;<code>docker-compose up -d<\/code>&nbsp;\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07 container \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"application-configuration\">Application Configuration<\/h2>\n\n\n\n<p>\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 container \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e2d\u0e1e\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e48\u0e19 \u0e43\u0e2b\u0e49\u0e40\u0e1e\u0e34\u0e48\u0e21 environment variable \u0e0a\u0e37\u0e48\u0e2d&nbsp;<code>VIRTUAL_HOST<\/code>&nbsp;\u0e41\u0e25\u0e30&nbsp;<code>VIRTUAL_PORT<\/code>&nbsp;\u0e43\u0e2b\u0e49\u0e01\u0e31\u0e1a container \u0e19\u0e31\u0e49\u0e19 \u0e46 \u0e42\u0e14\u0e22\u0e43\u0e2b\u0e49\u0e01\u0e33\u0e2b\u0e19\u0e14 domain \u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e2b\u0e49\u0e40\u0e1b\u0e47\u0e19 domain \u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07\u0e41\u0e2d\u0e1e\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e48\u0e19\u0e19\u0e31\u0e49\u0e19 \u0e46 \u0e42\u0e14\u0e22\u0e17\u0e35\u0e48 domain \u0e19\u0e31\u0e49\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e01\u0e32\u0e23 resolve \u0e44\u0e1b\u0e22\u0e31\u0e07 IP \u0e02\u0e2d\u0e07 container \u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19 Nginx Proxy \u0e19\u0e31\u0e49\u0e19 \u0e46 \u0e14\u0e31\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>version: '3.7'\n\nservices:\n  webservice:\n    image: 'portal-atlasx.cdg.co.th:8123\/atlasx\/webservice:${WEBSERVICE_VERSION}'\n    container_name: webservice\n    networks:\n      - frontend\n    environment:\n      - VIRTUAL_HOST=${WEBSERVICE_URL}\n      - VIRTUAL_PORT=80\n      - ASPNETCORE_BASEPATH=\/${WEBSERVICE_NAME}\n    restart: unless-stopped\n  webapp:\n    image: 'portal-atlasx.cdg.co.th:8123\/atlasx\/webapp:${WEBAPP_VERSION}'\n    container_name: webapp\n    networks:\n      - frontend\n    environment:\n      - VIRTUAL_HOST=${WEBAPP_URL}\n      - VIRTUAL_PORT=80\n    restart: unless-stopped\n\nnetworks:\n  frontend:\n    external: true<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #000000\">version: <\/span><span style=\"color: #A31515\">&#39;3.7&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">services:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  webservice:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    image: <\/span><span style=\"color: #A31515\">&#39;portal-atlasx.cdg.co.th:8123\/atlasx\/webservice:${WEBSERVICE_VERSION}&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    container_name: <\/span><span style=\"color: #001080\">webservice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    networks:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #001080\">frontend<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    environment:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #0070C1\">VIRTUAL_HOST<\/span><span style=\"color: #000000\">=<\/span><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\">{<\/span><span style=\"color: #0070C1\">WEBSERVICE_URL<\/span><span style=\"color: #000000\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #0070C1\">VIRTUAL_PORT<\/span><span style=\"color: #000000\">=<\/span><span style=\"color: #098658\">80<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #0070C1\">ASPNETCORE_BASEPATH<\/span><span style=\"color: #000000\">=\/<\/span><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\">{<\/span><span style=\"color: #0070C1\">WEBSERVICE_NAME<\/span><span style=\"color: #000000\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    restart: <\/span><span style=\"color: #001080\">unless<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">stopped<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  webapp:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    image: <\/span><span style=\"color: #A31515\">&#39;portal-atlasx.cdg.co.th:8123\/atlasx\/webapp:${WEBAPP_VERSION}&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    container_name: <\/span><span style=\"color: #001080\">webapp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    networks:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #001080\">frontend<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    environment:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #0070C1\">VIRTUAL_HOST<\/span><span style=\"color: #000000\">=<\/span><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\">{<\/span><span style=\"color: #0070C1\">WEBAPP_URL<\/span><span style=\"color: #000000\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #0070C1\">VIRTUAL_PORT<\/span><span style=\"color: #000000\">=<\/span><span style=\"color: #098658\">80<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    restart: <\/span><span style=\"color: #001080\">unless<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">stopped<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">networks:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  frontend:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    external: <\/span><span style=\"color: #0000FF\">true<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e23\u0e31\u0e19&nbsp;<code>docker compose up -d<\/code>&nbsp;Nginx Proxy \u0e08\u0e30\u0e04\u0e49\u0e19\u0e2b\u0e32 container \u0e43\u0e2b\u0e49\u0e42\u0e14\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"nginx-proxy-configuration\">Nginx Proxy Configuration<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h5 class=\"wp-block-heading\">Note<\/h5>\n\n\n\n<p><\/p>\n\n\n\n<p>\u26a0\ufe0f \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Nginx Proxy \u0e19\u0e31\u0e49\u0e19 container \u0e17\u0e35\u0e48\u0e08\u0e30\u0e43\u0e2b\u0e49 reverse proxy \u0e44\u0e1b\u0e2b\u0e32 \u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e33\u0e2b\u0e19\u0e14 base href \u0e41\u0e15\u0e48\u0e08\u0e30\u0e21\u0e32\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e1c\u0e48\u0e32\u0e19 nginx config \u0e41\u0e17\u0e19<\/p>\n\n\n\n<p>AtlasX Web Application \u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e2a\u0e48&nbsp;<code>--build-args BASE_HREF=<\/code>&nbsp;\u0e43\u0e19\u0e01\u0e32\u0e23 build image<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1-create-config-file\">1. Create config file<\/h3>\n\n\n\n<p>\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e48\u0e32\u0e02\u0e2d\u0e07 NGINX \u0e44\u0e14\u0e49 \u0e42\u0e14\u0e22\u0e17\u0e33\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>custom.conf<\/code>&nbsp;\u0e02\u0e36\u0e49\u0e19\u0e21\u0e32<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>nginx-proxy\n\u251c\u2500\u2500 custom.conf\n\u2514\u2500\u2500 docker-compose.yml<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">nginx<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">proxy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\u251c\u2500\u2500 <\/span><span style=\"color: #001080\">custom<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #001080\">conf<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">\u2514\u2500\u2500 <\/span><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">compose<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #001080\">yml<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"2-add-config-to-customconf\">2. Add config to&nbsp;<code>custom.conf<\/code><\/h3>\n\n\n\n<p>\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e43\u0e2b\u0e49\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e48\u0e32\u0e43\u0e19\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>custom.conf<\/code>&nbsp;\u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>server {\n  listen 80;\n  listen &#91;::&#93;:80;\n\n  location \/ {\n    try_files $uri $uri\/ =404;\n  }\n\n  location \/axwa {\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-NginX-Proxy true;\n\n    proxy_pass http:\/\/webapp;\n  }\n\n  location \/axws {\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-NginX-Proxy true;\n\n    proxy_pass http:\/\/webservice;\n  }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">server<\/span><span style=\"color: #000000\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">listen<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #098658\">80<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">listen<\/span><span style=\"color: #000000\"> &#91;::&#93;:<\/span><span style=\"color: #098658\">80<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">location<\/span><span style=\"color: #000000\"> \/ {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">try_files<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">$uri<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">$uri<\/span><span style=\"color: #000000\">\/ =<\/span><span style=\"color: #098658\">404<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">location<\/span><span style=\"color: #000000\"> \/<\/span><span style=\"color: #001080\">axwa<\/span><span style=\"color: #000000\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">proxy_set_header<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">Host<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">$host<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">proxy_set_header<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0070C1\">X<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">Real<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #0070C1\">IP<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">$remote_addr<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">proxy_set_header<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0070C1\">X<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">Forwarded<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">For<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">$proxy_add_x_forwarded_for<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">proxy_set_header<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0070C1\">X<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">NginX<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">Proxy<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">true<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">proxy_pass<\/span><span style=\"color: #000000\"> http:<\/span><span style=\"color: #008000\">\/\/webapp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">location<\/span><span style=\"color: #000000\"> \/<\/span><span style=\"color: #001080\">axws<\/span><span style=\"color: #000000\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">proxy_set_header<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">Host<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">$host<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">proxy_set_header<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0070C1\">X<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">Real<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #0070C1\">IP<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">$remote_addr<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">proxy_set_header<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0070C1\">X<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">Forwarded<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">For<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">$proxy_add_x_forwarded_for<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">proxy_set_header<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0070C1\">X<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">NginX<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">Proxy<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #0000FF\">true<\/span><span style=\"color: #000000\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    <\/span><span style=\"color: #001080\">proxy_pass<\/span><span style=\"color: #000000\"> http:<\/span><span style=\"color: #008000\">\/\/webservice;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0e43\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e02\u0e2d\u0e07\u00a0<code>location<\/code>\u00a0\u0e43\u0e2b\u0e49\u0e01\u0e33\u0e2b\u0e19\u0e14 path \u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e2b\u0e49 proxy \u0e44\u0e1b<\/li>\n\n\n\n<li>\u0e43\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e02\u0e2d\u0e07\u00a0<code>proxy_pass<\/code>\u00a0\u0e43\u0e2b\u0e49\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07 container \u0e41\u0e25\u0e30 port \u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e2b\u0e49 proxy \u0e44\u0e1b<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h5 class=\"wp-block-heading\">Note<\/h5>\n\n\n\n<p><\/p>\n\n\n\n<p>\u0e23\u0e30\u0e1a\u0e1a Network \u0e02\u0e2d\u0e07 Docker \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e0a\u0e37\u0e48\u0e2d container \u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19 network \u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19\u0e43\u0e19\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e01\u0e31\u0e19\u0e44\u0e14\u0e49 \u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e32\u0e01 Docker \u0e21\u0e35 DNS \u0e17\u0e35\u0e48\u0e17\u0e33\u0e01\u0e32\u0e23 resolve \u0e0a\u0e37\u0e48\u0e2d container \u0e43\u0e2b\u0e49\u0e40\u0e1b\u0e47\u0e19 IP \u0e02\u0e2d\u0e07 container \u0e19\u0e31\u0e49\u0e19 \u0e46 \u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34<\/p>\n<\/blockquote>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e01\u0e33\u0e2b\u0e19\u0e14 proxy setting \u0e2d\u0e37\u0e48\u0e19 \u0e46 \u0e44\u0e14\u0e49 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e39\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e44\u0e14\u0e49\u0e08\u0e32\u0e01\u00a0<a href=\"https:\/\/www.nginx.com\/resources\/wiki\/start\/topics\/examples\/full\/\" target=\"_blank\" rel=\"noreferrer noopener\">Nginx Full Example Configuration<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"3-mount-config-file-to-container\">3. Mount config file to container<\/h3>\n\n\n\n<p>\u0e41\u0e25\u0e30\u0e17\u0e33\u0e01\u0e32\u0e23 mount \u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>custom.conf<\/code>&nbsp;\u0e44\u0e1b\u0e22\u0e31\u0e07 container \u0e02\u0e2d\u0e07 Nginx Proxy \u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>version: '3.7'\n\nservices:\n  nginx-proxy:\n    image: 'nginxproxy\/nginx-proxy:1.0.1-alpine'\n    container_name: 'nginx-proxy'\n    restart: 'always'\n    networks:\n      - frontend\n    ports:\n      - '80:80'\n    volumes:\n      - \/var\/run\/docker.sock:\/tmp\/docker.sock:ro\n      - .\/custom.conf:\/etc\/nginx\/conf.d\/custom.conf\n\nnetworks:\n  frontend:\n    external: true<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #000000\">version: <\/span><span style=\"color: #A31515\">&#39;3.7&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">services:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  <\/span><span style=\"color: #001080\">nginx<\/span><span style=\"color: #000000\">-proxy:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    image: <\/span><span style=\"color: #A31515\">&#39;nginxproxy\/nginx-proxy:1.0.1-alpine&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    container_name: <\/span><span style=\"color: #A31515\">&#39;nginx-proxy&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    restart: <\/span><span style=\"color: #A31515\">&#39;always&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    networks:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #001080\">frontend<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    ports:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #A31515\">&#39;80:80&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    volumes:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - \/<\/span><span style=\"color: #0000FF\">var<\/span><span style=\"color: #000000\">\/<\/span><span style=\"color: #001080\">run<\/span><span style=\"color: #000000\">\/docker.sock:\/<\/span><span style=\"color: #267F99\">tmp<\/span><span style=\"color: #000000\">\/<\/span><span style=\"color: #267F99\">docker<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #267F99\">sock<\/span><span style=\"color: #000000\">:<\/span><span style=\"color: #267F99\">ro<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - .\/<\/span><span style=\"color: #001080\">custom<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #001080\">conf<\/span><span style=\"color: #000000\">:\/<\/span><span style=\"color: #001080\">etc<\/span><span style=\"color: #000000\">\/<\/span><span style=\"color: #001080\">nginx<\/span><span style=\"color: #000000\">\/<\/span><span style=\"color: #001080\">conf<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #001080\">d<\/span><span style=\"color: #000000\">\/<\/span><span style=\"color: #001080\">custom<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #001080\">conf<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">networks:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  frontend:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    external: <\/span><span style=\"color: #0000FF\">true<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e43\u0e2b\u0e49\u0e17\u0e33\u0e01\u0e32\u0e23\u0e23\u0e31\u0e19&nbsp;<code>docker-compose up -d<\/code>&nbsp;\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2d\u0e31\u0e1e\u0e40\u0e14\u0e17 container<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ssl-configuration\">SSL Configuration<\/h2>\n\n\n\n<p><em>\u0e01\u0e33\u0e25\u0e31\u0e07\u0e40\u0e15\u0e23\u0e35\u0e22\u0e21\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e2b\u0e32\u0e43\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e19\u0e35\u0e49<\/em><\/p>\n","protected":false},"featured_media":0,"parent":3469,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nav_title":"","positive":"","negative":"","footnotes":""},"docs_category":[],"class_list":["post-3473","docs","type-docs","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3473","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/comments?post=3473"}],"version-history":[{"count":1,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3473\/revisions"}],"predecessor-version":[{"id":3474,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3473\/revisions\/3474"}],"up":[{"embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3469"}],"wp:attachment":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/media?parent=3473"}],"wp:term":[{"taxonomy":"docs_category","embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs_category?post=3473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}