በdoc.smarterp.et ላይ ማተም
መመሪያውን ከራሱ ዶሜይን በHTTPS ያቅርቡ፤ የቀረውን የSmartERP ክፍል ለውጭ ሳያጋልጡ።
በነባሪነት ጣቢያው በSmartERP አድራሻዎ ላይ በ/docs ይገኛል። እንደ https://doc.smarterp.et ባለ የራሱ ዶሜይን ለማቅረብ፣ ከፊት ለፊት ሪቨርስ ፕሮክሲ (nginx) ያስቀምጡ፣ የዶሜይኑን ሥር (root) ወደ /docs/ ያዛምዱ፣ እንዲሁም አገናኞቹ ከሥሩ መጀመር እንዳለባቸው ለሞጁሉ ይንገሩ።
የሚሰራ ውቅር ከሞጁሉ ጋር ይመጣል፦ smarterp_docs/deploy/nginx-doc.smarterp.et.conf።
የሚያስፈልግዎት#
smarterp_docsየተጫነበት፣ የሚሰራ SmartERP፣ ከፕሮክሲው ሊደረስበት የሚችል (ብዙውን ጊዜ127.0.0.1:8069)።- nginx ማስኬድ የሚችል፣ ወደቦች 80 እና 443 የተከፈቱበት ሰርቨር።
- የ
smarterp.etDNS ማስተዳደር መቻል።
ደረጃዎች#
1. DNS#
ለdoc.smarterp.et ወደ ፕሮክሲ ሰርቨሩ የሚያመለክት A መዝገብ (record) ይፍጠሩ (IPv6 የሚጠቀሙ ከሆነ AAAA መዝገብንም ይፍጠሩ)።
2. Odoo ከፕሮክሲ ጀርባ መሆኑን ይንገሩት#
በodoo.conf ውስጥ፦
proxy_mode = True
Odooን እንደገና ያስጀምሩ። ይህ Odoo የX-Forwarded-* ራስጌዎችን (headers) እንዲያምን ያደርገዋል፤ ስለዚህ አድራሻዎችና ማዞሪያዎች (redirects) https እና እውነተኛውን የአስተናጋጅ ስም (host name) ይጠቀማሉ።
3. የመሠረት መንገዱን (base path) ያዘጋጁ#
በSmartERP ውስጥ Settings → Technical → Parameters → System Parameters ላይ ይፍጠሩ ወይም ያስተካክሉ፦
| ቁልፍ | እሴት |
|---|---|
smarterp_docs.base_path | / |
ከዚያ ጣቢያው ከ/docs/en/... ይልቅ እንደ /en/getting-started/... ያሉ አገናኞችን ይጽፋል፤ ወደ doc.smarterp.et የሚመጣ ጎብኚ የሚፈልገው ይህንኑ ነው። ጣቢያውን በዋናው አድራሻዎ ላይ ሲጠቀሙ በነባሪው (/docs) ይተዉት።
4. ሰርተፍኬት ያግኙ#
sudo mkdir -p /var/www/certbot
sudo certbot certonly --webroot -w /var/www/certbot -d doc.smarterp.et
(የማረጋገጫ ጥያቄው (challenge) እንዲመለስ አስቀድመው nginx ን በወደብ 80 ብሎክ ያስጀምሩ።)
5. nginx ን ያዋቅሩ#
sudo cp smarterp_docs/deploy/nginx-doc.smarterp.et.conf /etc/nginx/sites-available/doc.smarterp.et
sudo ln -s /etc/nginx/sites-available/doc.smarterp.et /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
መጀመሪያ በፋይሉ ውስጥ ሁለት ነገሮችን ያስተካክሉ፦ በX-Odoo-dbfilter ^smarterp$ ውስጥ ያለውን የዳታቤዝ ስም እና ወደቡ 8069 ካልሆነ የላይኛውን ወደብ (upstream port)።
6. ያረጋግጡ#
curl -sI https://doc.smarterp.et/ # 302 to /en or /am
curl -s https://doc.smarterp.et/en | head # the home page
curl -sI https://doc.smarterp.et/web/login # 404: the rest of Odoo is not exposed
curl -s https://doc.smarterp.et/sitemap.xml # every published page
ማዛመዱ እንዴት እንደሚሰራ#
location / {
proxy_pass http://smarterp_odoo/docs/;
...
}
proxy_pass መንገድ (/docs/) ስላለው nginx የተዛመደውን / በእሱ ይተካል። ስለዚህ / ወደ /docs/ ይቀየራል፣ /en/administration/troubleshooting ደግሞ ወደ /docs/en/administration/troubleshooting ይቀየራል። በዚህ አስተናጋጅ (host) በኩል በOdoo ውስጥ ሌላ ምንም ነገር ሊደረስበት አይችልም፦ /web/login ወደ /docs/web/login ይቀየራል፤ ይህ ደግሞ የለም።
ብቸኛው ተጨማሪ ቦታ (location) /smarterp_docs/static/ መመሪያው በሞጁሉ static አቃፊ ውስጥ የሚያመጣቸውን ምስሎች ያቀርባል።
ዳታቤዙን መምረጥ#
Odoo የትኛውን ዳታቤዝ ማንበብ እንዳለበት ማወቅ አለበት። ሁለት መንገዶች አሉ፦
- የፕሮክሲ ራስጌ (ይመከራል)፦ በnginx ፋይሉ ውስጥ እንደመጣው ያለው የ
X-Odoo-dbfilter ^smarterp$መስመር። - በ
odoo.confውስጥ ያለውdbfilter፦dbfilter = ^smarterp$።
Odoo አንድ ዳታቤዝ ብቻ ካለው ራሱ ይመርጠዋል።
ማስተካከል#
አርታዒዎች የሚሰሩት በዋናው የSmartERP አድራሻ ላይ በባክኤንድ ነው፤ በመመሪያው ዶሜይን ላይ አይደለም። በገጽ ላይ ያለው ይህን ገጽ አርም አገናኝ የሚታየው ለገባ አርታዒ ብቻ ነው፤ ወደ ባክኤንድም ይጠቁማል።
ማወቅ ጥሩ የሆነው#
- በሁሉም ቦታ HTTPS። የnginx ፋይሉ ወደብ 80ን ወደ 443 ያዞራል፣ HSTS ንም ያዘጋጃል።
- የፍለጋ ሞተሮች።
/robots.txtማሰስን (crawling) ይፈቅዳል፣/sitemap.xmlደግሞ የታተመውን እያንዳንዱን ገጽ በሁለቱም ቋንቋዎች ይዘረዝራል። ሳይትማፑን ለGoogle Search Console እና ለBing Webmaster Tools ያስገቡ። - ረቂቆች ግላዊ ሆነው ይቆያሉ። በዚህ አስተናጋጅ ላይ ያልታተሙ ገጾች 404 ይመልሳሉ፤ ምክንያቱም እዚያ የሚመጡ ጎብኚዎች እንደ አርታዒ ፈጽሞ አይገቡም።
- ጊዜያዊ ማከማቻ። CSS እና JavaScript በገጹ ውስጥ ስለሚካተቱ አንድ ገጽ አንድ ጥያቄ (request) ብቻ ነው። የፕሮክሲ ጊዜያዊ ማከማቻ (caching) ከጨመሩ በሙሉ URL መሠረት ያከማቹ፤ ለገቡ ተጠቃሚዎች ግን አያከማቹ።
- የጥያቄ መጠን ገደቦች። የፍለጋ መጨረሻ ነጥቦችን (endpoints) የሚገድብ በአስተያየት መልክ የተቀመጠ ምሳሌ በnginx ፋይሉ ውስጥ አለ።
የችግር መፍቻ#
| ምልክቱ | ምክንያት | መፍትሔ |
|---|---|---|
| ለእያንዳንዱ ገጽ 404 | ሞጁሉ አልተጫነም፣ ወይም Odoo ዳታቤዝ መምረጥ አይችልም። | ይጫኑት። የX-Odoo-dbfilter እሴቱን ያረጋግጡ። |
| የዳታቤዝ መምረጫ ገጽ ይታያል | በርካታ ዳታቤዞች ይዛመዳሉ። | X-Odoo-dbfilter በትክክል አንዱን ብቻ እንዲዛመድ ያድርጉ። |
አገናኞች ወደ /docs/... ያመለክታሉ እና ይበላሻሉ | smarterp_docs.base_path / አይደለም። | ያዘጋጁት። |
ማዞሪያዎች ወደ http:// ይሄዳሉ | proxy_mode ጠፍቷል። | proxy_mode = True ያዘጋጁ እና እንደገና ያስጀምሩ። |
| ምስሎች አይጫኑም | የ/smarterp_docs/static/ ቦታ (location) የለም። | በnginx ፋይሉ ውስጥ ያቆዩት። |
| በዋናው አድራሻ ጥሩ ነው፣ በዶሜይኑ ላይ ግን የተሳሳተ | በጊዜያዊ ማከማቻ ውስጥ የቆየ CSS ወይም ጊዜው ያለፈበት ግቤት። | Odooን እንደገና ያስጀምሩ እና የፕሮክሲ ጊዜያዊ ማከማቻውን ያጽዱ። |