Skip to content

Commit 476f7b7

Browse files
committed
docs: add reverse proxy to wordpress
1 parent 9f78e4a commit 476f7b7

File tree

3 files changed

+213
-0
lines changed

3 files changed

+213
-0
lines changed

src/components/Sidebar/data.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5324,6 +5324,10 @@ export default {
53245324
title: "مشاهده اکستنشن‌های نصب‌شده",
53255325
link: "/one-click-apps/wordpress/how-tos/see-extensions"
53265326
},
5327+
{
5328+
title: "تنظیم reverse proxy",
5329+
link: "/one-click-apps/wordpress/how-tos/set-reverse-proxy"
5330+
},
53275331
{
53285332
hr: true
53295333
},
Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
import Layout from "@/components/Layout";
2+
import Button from "@/components/Common/button";
3+
import Section from "@/components/Common/section";
4+
import Alert from "@/components/Common/alert";
5+
import Tabs from "@/components/Common/tab";
6+
import Step from "@/components/Common/step";
7+
import Card from "@/components/Common/card";
8+
import Important from "@/components/Common/important";
9+
import Highlight from "@/components/Common/highlight";
10+
import Link from "next/link";
11+
import {GoArrowLeft} from "react-icons/go";
12+
13+
14+
import Head from "next/head";
15+
16+
<Layout>
17+
<Head>
18+
<title>مستندات تنظیم reverse proxy برای WordPress - لیارا</title>
19+
<meta property="og:title" content="مستندات خدمات رایانش ابری لیارا" />
20+
<meta property="og:description" content="مستندات مربوط به نحوه تنظیم reverse proxy برای برنامه‌های وردپرس و نحوه تنظیم کردن proxy pass برای هدایت آدرس بلاگ به صفحه وردپرسی" />
21+
<meta property="og:image" content="https://files.liara.ir/liara/logos/liara-poster.jpg" />
22+
</Head>
23+
24+
# تنظیم Reverse Proxy برای WordPress
25+
<hr className="mb-2" />
26+
27+
<video
28+
src="https://files.liara.ir/liara/wordpress/wordpress-reverse-proxy.mp4"
29+
controls="controls"
30+
className="block w-full"
31+
width="100%"
32+
/>
33+
34+
<br />
35+
36+
ممکن است که شما بخواهید برنامه‌تان را در
37+
دامنه اصلی‌تان (مثلاً <Important>example.com</Important>) ارائه
38+
و در زیرصفحه‌ای از آن (مثلاً <Important>example.com/blog</Important>)، وب‌سایت وردپرسی‌تان
39+
را به کاربر، نمایش دهید. برای این کار می‌توانید از reverse proxy استفاده کنید.
40+
پروکسی معکوس یا reverse proxy، یک سرور واسط است که درخواست‌های کلاینت‌ها را دریافت و به سرورهای دیگر در بک‌اند منتقل می‌کند.
41+
42+
43+
<div className="h-2" />
44+
<Alert variant="success">
45+
<p>
46+
همچنین بخوانید: <a href="/paas/details/reverse-proxy" className="text-[#2196f3]">آشنایی با Reverse Proxy</a>
47+
</p>
48+
</Alert>
49+
<div className="h-2" />
50+
51+
فرض کنید که دو برنامه دارید؛ یک برنامه وردپرسی که blog شما است و
52+
برنامه دیگری که می‌خواهید در دامنه اصلی‌تان ارائه دهید (هر دو برنامه، کاملاً مستقل از هم هستند)
53+
برای اینکه برنامه اصلی‌تان را در دامنه اصلی ارائه دهید و وب‌سایت وردپرسی‌تان را در زیرصفحه‌ای از آن، نمایش دهید،
54+
کافیست تا مراحل زیر را طی کنید:
55+
56+
57+
<Step steps={[
58+
{
59+
step: "۱",
60+
content: (
61+
<>
62+
<h3>بررسی شبکه خصوصی</h3>
63+
<p>
64+
هم برنامه اصلی و هم برنامه وردپرسی، باید درون
65+
یک <a href="/paas/details/private-network" className="text-[#2196f3]">شبکه خصوصی</a> قرار داشته باشند.
66+
در غیر این‌صورت، امکان تنظیم reverse proxy برای برنامه‌های مستقر شده در لیارا وجود ندارد.
67+
</p>
68+
69+
</>
70+
)
71+
},
72+
{
73+
step: "۲",
74+
content: (
75+
<>
76+
<h3>ساخت سرور reverse proxy</h3>
77+
<p>
78+
در شبکه خصوصی مشترک، یک <a href="/paas/docker/getting-started" className="text-[#2196f3]">برنامه Docker</a> جدید ایجاد کنید.
79+
سپس، کافیست تا در لوکال، یک دایرکتوری خالی ایجاد کنید؛ درون دایرکتوری
80+
یک فایل به نام <Important>Dockerfile</Important> ایجاد کنید و قطعه کد زیر را درون آن قرار دهید:
81+
</p>
82+
<div className='h-2' />
83+
<div dir="ltr">
84+
<Highlight className="Dockerfile">
85+
{`FROM nginx:1.27.3
86+
COPY nginx.conf /etc/nginx/nginx.conf`}
87+
</Highlight>
88+
</div>
89+
<div className='h-2' />
90+
91+
<p>
92+
در ادامه، در کنار فایل فوق، فایل دیگری به نام <Important>nginx.conf</Important> ایجاد کنید و قطعه کد زیر را درون آن قرار دهید:
93+
</p>
94+
95+
<div className='h-2' />
96+
<div dir="ltr">
97+
<Highlight className="config">
98+
{`events {}
99+
100+
http {
101+
server {
102+
# Resolver settings for reverse proxy
103+
resolver 127.0.0.11 ipv6=off valid=5s;
104+
listen 80;
105+
106+
# Redirect /wp-admin/* to /blog/wp-admin/*
107+
location ~ ^/wp-admin/(.*)$ {
108+
return 301 /blog/wp-admin/$1;
109+
}
110+
111+
# WordPress configuration
112+
location /blog {
113+
proxy_pass http://wordpress-app:80;
114+
proxy_read_timeout 90;
115+
proxy_connect_timeout 90;
116+
proxy_redirect off;
117+
118+
# Pass necessary headers to WordPress
119+
proxy_set_header X-Real-IP $remote_addr;
120+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
121+
proxy_set_header X-Forwarded-Proto $scheme; # Important for HTTPS detection
122+
proxy_set_header Host $host; # Ensure correct host header
123+
proxy_set_header X-NginX-Proxy true;
124+
proxy_set_header Connection ""; # Prevent connection close issues
125+
126+
# Forward /blog/* to WordPress backend
127+
rewrite ^/blog/(.*)$ /$1 break;
128+
}
129+
130+
# Main app service routing
131+
location / {
132+
proxy_pass http://main-app:3005;
133+
proxy_set_header Host $host;
134+
proxy_set_header X-Real-IP $remote_addr;
135+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
136+
}
137+
}
138+
}
139+
`}
140+
</Highlight>
141+
</div>
142+
<div className='h-2' />
143+
<p>
144+
در قطعه کد فوق، به جای <Important>main-app</Important> و <Important>wordpress-app</Important>، شناسه برنامه اصلی و وردپرسی خود را قرار دهید.
145+
از آنجایی که ارتباط از طریق شبکه خصوصی برقرار می‌شود، درخواست http است و همچنین بعد از شناسه، باید پورت‌هایی که برنامه‌ها در آن به درخواست کاربران listen می‌کنند؛ قرار گرفته باشد.
146+
همچنین، اگر که قصد دارید وردپرس را در زیرصفحه‌ای به جز <Important>blog</Important> قرار دهید. نام زیرصفحه مدنظرتان
147+
را جایگزین <Important>blog</Important> در قطعه کد فوق، کنید.
148+
</p>
149+
<div className='h-2' />
150+
<p>
151+
در نهایت با اجرای دستور زیر، برنامه فوق را در لیارا مستقر کنید:
152+
</p>
153+
<div className='h-2' />
154+
<div dir="ltr">
155+
<Highlight className="bash">
156+
{`liara deploy --port=80`}
157+
</Highlight>
158+
</div>
159+
<div className='h-2' />
160+
161+
162+
</>
163+
164+
)
165+
},
166+
{
167+
step: "۳",
168+
content: (
169+
<>
170+
<h3>پیکربندی تنظیمات WordPress</h3>
171+
<p>
172+
طبق مستندات <a href="/paas/disks/ftp-access" className="text-[#2196f3]"> دسترسی FTP</a>، یک دسترسی FTP برای دیسک data برنامه وردپرسی خود ایجاد کنید
173+
و با استفاده از آن، به دیسک متصل شده و در ابتدای فایل <Important>wp-config.php</Important>، پس از خط <Important>php?&gt;</Important>، قطعه کد زیر را قرار دهید:
174+
175+
</p>
176+
<div className='h-2' />
177+
<div dir="ltr">
178+
<Highlight className="php">
179+
{`<?php // بعد از این خط
180+
define( 'WP_SITEURL', 'https://example.com/blog' );
181+
define( 'WP_HOME', 'https://example.com/blog' );
182+
$_SERVER['HTTPS'] = 'on';
183+
`}
184+
</Highlight>
185+
</div>
186+
<div className='h-2' />
187+
<p>
188+
در قطعه کد فوق، به جای <Important>example.com</Important>، دامنه اصلی‌تان را قرار دهید.
189+
همچنین، اگر که قصد دارید وردپرس را در زیرصفحه‌ای به جز <Important>blog</Important> قرار دهید. نام زیرصفحه مدنظرتان
190+
را جایگزین <Important>blog</Important> در قطعه کد فوق، کنید.
191+
در نهایت، تنظیمات جدید را ذخیره کرده و دسترسی FTP را ببندید.
192+
</p>
193+
</>
194+
)
195+
},
196+
197+
]}/>
198+
199+
200+
<br/>
201+
<div className="h-1" />
202+
203+
تمامی کارها انجام شده است و اکنون می‌توانید در زیر صفحه <Important>blog</Important>، به برنامه وردپرسی‌تان دسترسی داشته باشید؛ در حالی که
204+
ریشه دامنه، بر روی برنامه اصلی، تنظیم شده است.
205+
</Layout>

src/pages/one-click-apps/wordpress/quick-start.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ content: (
176176
title: "اضافه کردن دامنه به برنامه‌های وردپرسی",
177177
link: "/paas/domains/add-domain"
178178
},
179+
{
180+
title: "تنظیم reverse proxy",
181+
link: "/one-click-apps/wordpress/how-tos/set-reverse-proxy"
182+
},
179183
].map(item =>
180184
<Link href={item.link}>
181185
<Card className="flex cursor-pointer w-full items-center justify-between">

0 commit comments

Comments
 (0)