<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="mn">
		<id>https://wiki.dusal.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Almas</id>
		<title>Дусал нэвтэрхий толь - Хэрэглэгчийн оруулсан хувь нэмэр [mn]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.dusal.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Almas"/>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/%D0%A2%D1%83%D1%81%D0%B3%D0%B0%D0%B9:Contributions/Almas"/>
		<updated>2026-05-13T12:39:21Z</updated>
		<subtitle>Хэрэглэгчийн оруулсан хувь нэмэр</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Virt-manager,_KVM,_Qemu_and_virtiofs_problem_fix&amp;diff=597</id>
		<title>Virt-manager, KVM, Qemu and virtiofs problem fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Virt-manager,_KVM,_Qemu_and_virtiofs_problem_fix&amp;diff=597"/>
				<updated>2025-01-13T03:38:58Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: Хуудас үүсгэв: &amp;quot;I had the following error in Ubuntu 24.04.   &amp;lt;pre&amp;gt; Error starting domain: operation failed: Unable to find a satisfying virtiofsd  Traceback (most recent call last):...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I had the following error in Ubuntu 24.04.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Error starting domain: operation failed: Unable to find a satisfying virtiofsd&lt;br /&gt;
&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/usr/share/virt-manager/virtManager/asyncjob.py&amp;quot;, line 72, in cb_wrapper&lt;br /&gt;
    callback(asyncjob, *args, **kwargs)&lt;br /&gt;
  File &amp;quot;/usr/share/virt-manager/virtManager/asyncjob.py&amp;quot;, line 108, in tmpcb&lt;br /&gt;
    callback(*args, **kwargs)&lt;br /&gt;
  File &amp;quot;/usr/share/virt-manager/virtManager/object/libvirtobject.py&amp;quot;, line 57, in newfn&lt;br /&gt;
    ret = fn(self, *args, **kwargs)&lt;br /&gt;
          ^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;
  File &amp;quot;/usr/share/virt-manager/virtManager/object/domain.py&amp;quot;, line 1402, in startup&lt;br /&gt;
    self._backend.create()&lt;br /&gt;
  File &amp;quot;/usr/lib/python3/dist-packages/libvirt.py&amp;quot;, line 1379, in create&lt;br /&gt;
    raise libvirtError('virDomainCreate() failed')&lt;br /&gt;
libvirt.libvirtError: operation failed: Unable to find a satisfying virtiofsd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In my case, it was fixed with the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install virtiofsd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, some people seem to have problems with the path. In that case, you can fix it by editing the XML like below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;filesystem type='mount' accessmode='passthrough'&amp;gt;&lt;br /&gt;
  &amp;lt;driver type='virtiofs'/&amp;gt;&lt;br /&gt;
  &amp;lt;binary path='/usr/bin/virtiofsd'/&amp;gt;  &amp;lt;--- added this line&lt;br /&gt;
  &amp;lt;source dir='/mnt/virtual/download'/&amp;gt;&lt;br /&gt;
  &amp;lt;target dir='download_tag'/&amp;gt;&lt;br /&gt;
  &amp;lt;address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/&amp;gt;&lt;br /&gt;
&amp;lt;/filesystem&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=596</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=596"/>
				<updated>2024-12-15T19:43:46Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Web UI-аар яаж ч оролдоод болохгүй байсан. Одоо бол импорт хийж байгаа. /home/almasd дотор файлууд бэлдсэн. 1-р серверээс цагт 1 удаа ажиллах cron-оор хуулаад импорт хийнэ.&lt;br /&gt;
Заавал root-ээр ажиллуулахгүй бол болохгүй.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
/usr/local/pkg/acme/acme_command.sh importcert wildcard-all dusal.net /home/almasd/dusal.net_ecc/dusal.net.key  /home/almasd/dusal.net_ecc/dusal.net.cer  /home/almasd/dusal.net_ecc/ca.cer  /home/almasd/dusal.net_ecc/fullchain.cer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Хуучин ажиллахгүй арга нь:&lt;br /&gt;
&lt;br /&gt;
By default we might have following error with Acme plugin of pfSense.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xxxx/xx/xx xx:xx:xx [error] xxxxx#xxxxxx: *xxxx upstream timed out (60: Operation timed out) while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: , request: &amp;quot;POST /acme/acme_certificates.php HTTP/2.0&amp;quot;, upstream: &amp;quot;fastcgi://unix:/var/run/php-fpm.socket&amp;quot;, &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''How to fix:'''&lt;br /&gt;
&lt;br /&gt;
In pfsense, the nginx conf file is at /etc/inc/system.inc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  300;&lt;br /&gt;
 proxy_read_timeout 3600;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=595</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=595"/>
				<updated>2024-12-15T19:42:58Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Web UI-аар яаж ч оролдоод болохгүй байсан. Одоо бол импорт хийж байгаа. /home/almasd дотор файлууд бэлдсэн. 1-р серверээс цагт 1 удаа ажиллах cron-оор хуулаад импорт хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
/usr/local/pkg/acme/acme_command.sh importcert wildcard-all dusal.net /home/almasd/dusal.net_ecc/dusal.net.key  /home/almasd/dusal.net_ecc/dusal.net.cer  /home/almasd/dusal.net_ecc/ca.cer  /home/almasd/dusal.net_ecc/fullchain.cer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Хуучин ажиллахгүй арга нь:&lt;br /&gt;
&lt;br /&gt;
By default we might have following error with Acme plugin of pfSense.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xxxx/xx/xx xx:xx:xx [error] xxxxx#xxxxxx: *xxxx upstream timed out (60: Operation timed out) while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: , request: &amp;quot;POST /acme/acme_certificates.php HTTP/2.0&amp;quot;, upstream: &amp;quot;fastcgi://unix:/var/run/php-fpm.socket&amp;quot;, &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''How to fix:'''&lt;br /&gt;
&lt;br /&gt;
In pfsense, the nginx conf file is at /etc/inc/system.inc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  300;&lt;br /&gt;
 proxy_read_timeout 3600;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=594</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=594"/>
				<updated>2024-11-26T11:31:26Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default we might have following error with Acme plugin of pfSense.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xxxx/xx/xx xx:xx:xx [error] xxxxx#xxxxxx: *xxxx upstream timed out (60: Operation timed out) while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: , request: &amp;quot;POST /acme/acme_certificates.php HTTP/2.0&amp;quot;, upstream: &amp;quot;fastcgi://unix:/var/run/php-fpm.socket&amp;quot;, &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''How to fix:'''&lt;br /&gt;
&lt;br /&gt;
In pfsense, the nginx conf file is at /etc/inc/system.inc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  300;&lt;br /&gt;
 proxy_read_timeout 3600;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=593</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=593"/>
				<updated>2024-11-26T10:41:05Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default we might have following error with Acme plugin of pfSense.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xxxx/xx/xx xx:xx:xx [error] xxxxx#xxxxxx: *xxxx upstream timed out (60: Operation timed out) while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: , request: &amp;quot;POST /acme/acme_certificates.php HTTP/2.0&amp;quot;, upstream: &amp;quot;fastcgi://unix:/var/run/php-fpm.socket&amp;quot;, &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''How to fix:'''&lt;br /&gt;
&lt;br /&gt;
In pfsense, the nginx conf file is at /var/etc/nginx-webConfigurator.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  300;&lt;br /&gt;
  &lt;br /&gt;
    location / {&lt;br /&gt;
      root   /usr/local/www/nginx;&lt;br /&gt;
      index  index.html index.htm;&lt;br /&gt;
      proxy_read_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=592</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=592"/>
				<updated>2024-09-22T08:55:09Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default we might have following error with Acme plugin of pfSense.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xxxx/xx/xx xx:xx:xx [error] xxxxx#xxxxxx: *xxxx upstream timed out (60: Operation timed out) while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: , request: &amp;quot;POST /acme/acme_certificates.php HTTP/2.0&amp;quot;, upstream: &amp;quot;fastcgi://unix:/var/run/php-fpm.socket&amp;quot;, &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''How to fix:'''&lt;br /&gt;
&lt;br /&gt;
Add the following properties to &amp;lt;webgui&amp;gt; in /conf/config.xml file.&lt;br /&gt;
If you add 300000 ms then it means 5 minutes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;webgui&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;connection_timeout&amp;gt;300000&amp;lt;/connection_timeout&amp;gt;&lt;br /&gt;
    &amp;lt;server_timeout&amp;gt;300000&amp;lt;/server_timeout&amp;gt;&lt;br /&gt;
&amp;lt;/webgui&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For old versions:&lt;br /&gt;
&lt;br /&gt;
In pfsense, the nginx conf file is at /usr/local/etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  300;&lt;br /&gt;
  &lt;br /&gt;
    location / {&lt;br /&gt;
      root   /usr/local/www/nginx;&lt;br /&gt;
      index  index.html index.htm;&lt;br /&gt;
      proxy_read_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=591</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=591"/>
				<updated>2024-09-22T08:52:37Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default we might have following error with Acme plugin of pfSense.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xxxx/xx/xx xx:xx:xx [error] xxxxx#xxxxxx: *xxxx upstream timed out (60: Operation timed out) while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: , request: &amp;quot;POST /acme/acme_certificates.php HTTP/2.0&amp;quot;, upstream: &amp;quot;fastcgi://unix:/var/run/php-fpm.socket&amp;quot;, &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the following properties to &amp;lt;webgui&amp;gt; in /conf/config.xml file.&lt;br /&gt;
If you add 300000 ms then it means 5 minutes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;webgui&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;connection_timeout&amp;gt;300000&amp;lt;/connection_timeout&amp;gt;&lt;br /&gt;
    &amp;lt;server_timeout&amp;gt;300000&amp;lt;/server_timeout&amp;gt;&lt;br /&gt;
&amp;lt;/webgui&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For old versions:&lt;br /&gt;
&lt;br /&gt;
In pfsense, the nginx conf file is at /usr/local/etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  300;&lt;br /&gt;
  &lt;br /&gt;
    location / {&lt;br /&gt;
      root   /usr/local/www/nginx;&lt;br /&gt;
      index  index.html index.htm;&lt;br /&gt;
      proxy_read_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=590</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=590"/>
				<updated>2024-09-22T08:48:34Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add the following properties to &amp;lt;webgui&amp;gt; in /conf/config.xml file.&lt;br /&gt;
If you add 300000 ms then it means 5 minutes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;webgui&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;connection_timeout&amp;gt;300000&amp;lt;/connection_timeout&amp;gt;&lt;br /&gt;
    &amp;lt;server_timeout&amp;gt;300000&amp;lt;/server_timeout&amp;gt;&lt;br /&gt;
&amp;lt;/webgui&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For old versions:&lt;br /&gt;
&lt;br /&gt;
In pfsense, the nginx conf file is at /usr/local/etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  300;&lt;br /&gt;
  &lt;br /&gt;
    location / {&lt;br /&gt;
      root   /usr/local/www/nginx;&lt;br /&gt;
      index  index.html index.htm;&lt;br /&gt;
      proxy_read_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=589</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=589"/>
				<updated>2024-09-22T08:47:43Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add the following properties to &amp;lt;webgui&amp;gt; in /conf/config.xml file.&lt;br /&gt;
If you add 300000 ms then it means 5 minutes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;webgui&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;connection_timeout&amp;gt;300000&amp;lt;/connection_timeout&amp;gt;&lt;br /&gt;
    &amp;lt;server_timeout&amp;gt;300000&amp;lt;/server_timeout&amp;gt;&lt;br /&gt;
&amp;lt;/webgui&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 In pfsense, the nginx conf file is at /usr/local/etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  600;&lt;br /&gt;
  &lt;br /&gt;
    location / {&lt;br /&gt;
      root   /usr/local/www/nginx;&lt;br /&gt;
      index  index.html index.htm;&lt;br /&gt;
      proxy_read_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=588</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=588"/>
				<updated>2024-09-22T08:46:47Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add the following properties to &amp;lt;webgui&amp;gt; in /conf/config.xml file.&lt;br /&gt;
If you add 600000 ms then it means 10 minutes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;webgui&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;connection_timeout&amp;gt;600000&amp;lt;/connection_timeout&amp;gt;&lt;br /&gt;
    &amp;lt;server_timeout&amp;gt;600000&amp;lt;/server_timeout&amp;gt;&lt;br /&gt;
&amp;lt;/webgui&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 In pfsense, the nginx conf file is at /usr/local/etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  600;&lt;br /&gt;
  &lt;br /&gt;
    location / {&lt;br /&gt;
      root   /usr/local/www/nginx;&lt;br /&gt;
      index  index.html index.htm;&lt;br /&gt;
      proxy_read_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=587</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=587"/>
				<updated>2024-09-22T08:46:21Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Add the following properties to &amp;lt;webgui&amp;gt; in /conf/config.xml file.&lt;br /&gt;
If you add 600000 ms then it means 10 minutes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;webgui&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;connection_timeout&amp;gt;60000&amp;lt;/connection_timeout&amp;gt;&lt;br /&gt;
    &amp;lt;server_timeout&amp;gt;60000&amp;lt;/server_timeout&amp;gt;&lt;br /&gt;
&amp;lt;/webgui&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 In pfsense, the nginx conf file is at /usr/local/etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  600;&lt;br /&gt;
  &lt;br /&gt;
    location / {&lt;br /&gt;
      root   /usr/local/www/nginx;&lt;br /&gt;
      index  index.html index.htm;&lt;br /&gt;
      proxy_read_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=586</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=586"/>
				<updated>2024-06-30T15:45:44Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edit the following properties in /conf/config.xml file.&lt;br /&gt;
If you change the 60000 ms to 600000 then it means 10 minutes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;connection_timeout&amp;gt;60000&amp;lt;/connection_timeout&amp;gt;&lt;br /&gt;
&amp;lt;server_timeout&amp;gt;60000&amp;lt;/server_timeout&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 In pfsense, the nginx conf file is at /usr/local/etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  600;&lt;br /&gt;
  &lt;br /&gt;
    location / {&lt;br /&gt;
      root   /usr/local/www/nginx;&lt;br /&gt;
      index  index.html index.htm;&lt;br /&gt;
      proxy_read_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=585</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=585"/>
				<updated>2024-06-30T14:30:40Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; In pfsense, the nginx conf file is at /usr/local/etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  600;&lt;br /&gt;
  &lt;br /&gt;
    location / {&lt;br /&gt;
      root   /usr/local/www/nginx;&lt;br /&gt;
      index  index.html index.htm;&lt;br /&gt;
      proxy_read_timeout 3600;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Ubuntu_install_custom_kernel&amp;diff=584</id>
		<title>Ubuntu install custom kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Ubuntu_install_custom_kernel&amp;diff=584"/>
				<updated>2024-05-10T12:47:27Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# search&lt;br /&gt;
apt-cache search linux-image- | grep &amp;quot;5.19.0&amp;quot;&lt;br /&gt;
apt-cache search linux-headers- | grep &amp;quot;5.19.0&amp;quot;&lt;br /&gt;
apt-cache search linux-modules-extra- | grep &amp;quot;5.19.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# install&lt;br /&gt;
apt install linux-image-5.19.0-50-generic&lt;br /&gt;
apt install linux-headers-5.19.0-50-generic&lt;br /&gt;
apt install linux-modules-extra-5.19.0-50-generic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set by default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp /etc/default/grub /etc/default/grub.bak&lt;br /&gt;
&lt;br /&gt;
# Find menu item:&lt;br /&gt;
sudo grub-mkconfig | less&lt;br /&gt;
&lt;br /&gt;
# Make like below:&lt;br /&gt;
GRUB_DEFAULT=&amp;quot;Advanced options for Ubuntu&amp;gt;Ubuntu, with Linux 5.19.0-50-generic&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sudo vim /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
sudo update-grub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Ubuntu_install_custom_kernel&amp;diff=583</id>
		<title>Ubuntu install custom kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Ubuntu_install_custom_kernel&amp;diff=583"/>
				<updated>2024-05-10T12:47:12Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# search&lt;br /&gt;
apt-cache search linux-image- | grep &amp;quot;5.19.0&amp;quot;&lt;br /&gt;
apt-cache search linux-headers- | grep &amp;quot;5.19.0&amp;quot;&lt;br /&gt;
apt-cache search linux-modules-extra- | grep &amp;quot;5.19.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# install&lt;br /&gt;
apt install linux-image-5.19.0-50-generic&lt;br /&gt;
apt install linux-headers-5.19.0-50-generic&lt;br /&gt;
apt install linux-modules-extra-5.19.0-50-generic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set by default:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo cp /etc/default/grub /etc/default/grub.bak&lt;br /&gt;
&lt;br /&gt;
# Find menu item:&lt;br /&gt;
sudo grub-mkconfig | less&lt;br /&gt;
&lt;br /&gt;
# Make like below:&lt;br /&gt;
GRUB_DEFAULT=&amp;quot;Advanced options for Ubuntu&amp;gt;Ubuntu, with Linux 5.15.0-106-generic&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sudo vim /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
sudo update-grub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Ubuntu_install_custom_kernel&amp;diff=582</id>
		<title>Ubuntu install custom kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Ubuntu_install_custom_kernel&amp;diff=582"/>
				<updated>2024-05-10T12:34:52Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: Хуудас үүсгэв: &amp;quot;&amp;lt;pre&amp;gt; # search apt-cache search linux-image- | grep &amp;quot;5.19.0&amp;quot; apt-cache search linux-headers- | grep &amp;quot;5.19.0&amp;quot; apt-cache search linux-modules-extra- | grep &amp;quot;5.19.0&amp;quot;  #...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# search&lt;br /&gt;
apt-cache search linux-image- | grep &amp;quot;5.19.0&amp;quot;&lt;br /&gt;
apt-cache search linux-headers- | grep &amp;quot;5.19.0&amp;quot;&lt;br /&gt;
apt-cache search linux-modules-extra- | grep &amp;quot;5.19.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# install&lt;br /&gt;
apt install linux-image-5.19.0-50-generic&lt;br /&gt;
apt install linux-headers-5.19.0-50-generic&lt;br /&gt;
apt install linux-modules-extra-5.19.0-50-generic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8%D0%B9%D0%BD_%D0%BC%D1%8D%D0%B9%D0%BB_SMTP-%D1%8D%D1%8D%D1%80_%D0%B8%D0%BB%D0%B3%D1%8D%D1%8D%D0%B4%D1%8D%D0%B3_%D0%B1%D0%BE%D0%BB%D0%B3%D0%BE%D0%B6_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=581</id>
		<title>Системийн мэйл SMTP-ээр илгээдэг болгож тохируулах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8%D0%B9%D0%BD_%D0%BC%D1%8D%D0%B9%D0%BB_SMTP-%D1%8D%D1%8D%D1%80_%D0%B8%D0%BB%D0%B3%D1%8D%D1%8D%D0%B4%D1%8D%D0%B3_%D0%B1%D0%BE%D0%BB%D0%B3%D0%BE%D0%B6_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=581"/>
				<updated>2024-02-15T14:34:44Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: Хуудас үүсгэв: &amp;quot; &amp;lt;pre&amp;gt; apt-get install msmtp mailutils bsd-mailx &amp;lt;/pre&amp;gt;  &amp;lt;pre&amp;gt; vim /etc/mail.rc  # Add: set sendmail=/usr/bin/msmtp alias root root&amp;lt;user@domain.tld&amp;gt; &amp;lt;/pre&amp;gt;   &amp;lt;pre&amp;gt; vi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install msmtp mailutils bsd-mailx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/mail.rc&lt;br /&gt;
&lt;br /&gt;
# Add:&lt;br /&gt;
set sendmail=/usr/bin/msmtp&lt;br /&gt;
alias root root&amp;lt;user@domain.tld&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/msmtprc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set default values for all following accounts.&lt;br /&gt;
defaults&lt;br /&gt;
&lt;br /&gt;
# Use the mail submission port 587 instead of the SMTP port 25.&lt;br /&gt;
port 587&lt;br /&gt;
&lt;br /&gt;
# Always use TLS.&lt;br /&gt;
tls on&lt;br /&gt;
tls_starttls on&lt;br /&gt;
&lt;br /&gt;
# Set a list of trusted CAs for TLS. The default is to use system settings, but&lt;br /&gt;
# you can select your own file.&lt;br /&gt;
#tls_trust_file /etc/ssl/certs/ca-certificates.crt&lt;br /&gt;
&lt;br /&gt;
# The SMTP server of your ISP&lt;br /&gt;
account defaultaccount&lt;br /&gt;
host mail.domain.tld&lt;br /&gt;
from user@domain.tld&lt;br /&gt;
auth on&lt;br /&gt;
user user@domain.tld&lt;br /&gt;
password P@SSw0rd&lt;br /&gt;
&lt;br /&gt;
# Set default account to isp&lt;br /&gt;
account default: defaultaccount&lt;br /&gt;
&lt;br /&gt;
# Map local users to mail addresses&lt;br /&gt;
aliases /etc/aliases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod 600 /etc/msmtprc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vim /etc/aliases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root: user@domain.tld&lt;br /&gt;
default: user@domain.tld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Hello World&amp;quot; | msmtp -d user@gmail.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Testing msmtp from ${HOSTNAME} with mail command&amp;quot; | mail -s &amp;quot;hi there&amp;quot; user@gmail.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=580</id>
		<title>PfSense acme certificates timeout fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=PfSense_acme_certificates_timeout_fix&amp;diff=580"/>
				<updated>2023-04-28T05:48:35Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: Хуудас үүсгэв: &amp;quot; In pfsense, the nginx conf file is at /usr/local/etc/nginx/nginx.conf  &amp;lt;pre&amp;gt;  keepalive_timeout  300; &amp;lt;/pre&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; In pfsense, the nginx conf file is at /usr/local/etc/nginx/nginx.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 keepalive_timeout  300;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Ubuntu_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B4%D1%8D%D1%8D%D1%80_Odoo_%D1%81%D1%83%D1%83%D0%BB%D0%B3%D0%B0%D1%85&amp;diff=579</id>
		<title>Ubuntu сервер дээр Odoo суулгах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Ubuntu_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B4%D1%8D%D1%8D%D1%80_Odoo_%D1%81%D1%83%D1%83%D0%BB%D0%B3%D0%B0%D1%85&amp;diff=579"/>
				<updated>2023-01-10T17:21:43Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Step 10 :Install Odoo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps To Install Odoo 15 On Ubuntu 20.04 &lt;br /&gt;
&lt;br /&gt;
Odoo is the most popular all-in-one business software in the world.To Install Odoo 15 on Ubuntu 20.04 you just need to follow the below steps.&lt;br /&gt;
&lt;br /&gt;
There are many ways to install Odoo depending on the requirements and the easy and quick way to install Odoo by using APT repositories.&lt;br /&gt;
&lt;br /&gt;
If you want to work with running multiple Odoo versions on the same system then you can either use docker compose or docker Install Odoo in a virtual environment.&lt;br /&gt;
&lt;br /&gt;
This blog is to provide steps for installation and configuration of Odoo for production environment using Git source and Python environment on an Ubuntu 20.04 system.&lt;br /&gt;
&lt;br /&gt;
Odoo Installation For Free !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To install Odoo 15 on Ubuntu 20.04 LTS you just follow the below steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1 : Update Server ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update                    &lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 2 : Create Odoo User in Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;                        &lt;br /&gt;
sudo adduser -system -home=/opt/odoo -group odoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 3 : Install PostgreSQL Server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install postgresql -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 4 : Create Odoo user for postgreSQL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su - postgres -c &amp;quot;createuser -s odoo&amp;quot; 2&amp;gt; /dev/null || true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 5 : Install Python Dependencies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git python3 python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev gdebi -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
                    &lt;br /&gt;
&lt;br /&gt;
== Step 6 : Install Python PIP Dependencies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libpq-dev python-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 7 : Install other required packages ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install nodejs npm -y&lt;br /&gt;
sudo npm install -g rtlcss&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 8 : Install Wkhtmltopdf ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install xfonts-75dpi&lt;br /&gt;
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb     &lt;br /&gt;
sudo dpkg -i wkhtmltox_0.12.6-1.bionic_amd64.deb              &lt;br /&gt;
sudo cp /usr/local/bin/wkhtmltoimage  /usr/bin/wkhtmltoimage               &lt;br /&gt;
sudo cp /usr/local/bin/wkhtmltopdf  /usr/bin/wkhtmltopdf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 9 : Create Log directory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /var/log/odoo&lt;br /&gt;
sudo chown odoo:odoo /var/log/odoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 10 :Install Odoo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git &lt;br /&gt;
sudo git clone --depth 1 --branch 15.0 https://www.github.com/odoo/odoo /opt/odoo/odoo-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 11 : Setting permissions on home folder ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown -R odoo:odoo /opt/odoo/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 12 : Create server config file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo touch /etc/odoo-server.conf&lt;br /&gt;
sudo su root -c &amp;quot;printf '[options] \n; This is the password that allows database operations:\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;                &lt;br /&gt;
sudo su root -c &amp;quot;printf 'admin_passwd = admin\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;              &lt;br /&gt;
sudo su root -c &amp;quot;printf 'xmlrpc_port = 8069\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo su root -c &amp;quot;printf 'logfile = /var/log/odoo/odoo-server.log\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo su root -c &amp;quot;printf 'addons_path=/opt/odoo/odoo-server/addons\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo chown odoo:odoo /etc/odoo-server.conf&lt;br /&gt;
sudo chmod 640 /etc/odoo-server.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 13 : Now Start Odoo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su - odoo -s /bin/bash &lt;br /&gt;
cd /opt/odoo/odoo-server&lt;br /&gt;
./odoo-bin -c /etc/odoo-server.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now your odoo instance is up and running. &lt;br /&gt;
&lt;br /&gt;
Go to web browser and access your odoo at localhost:8069&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Ubuntu_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B4%D1%8D%D1%8D%D1%80_Odoo_%D1%81%D1%83%D1%83%D0%BB%D0%B3%D0%B0%D1%85&amp;diff=578</id>
		<title>Ubuntu сервер дээр Odoo суулгах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Ubuntu_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B4%D1%8D%D1%8D%D1%80_Odoo_%D1%81%D1%83%D1%83%D0%BB%D0%B3%D0%B0%D1%85&amp;diff=578"/>
				<updated>2023-01-10T17:21:20Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Step 13 : Now Start Odoo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps To Install Odoo 15 On Ubuntu 20.04 &lt;br /&gt;
&lt;br /&gt;
Odoo is the most popular all-in-one business software in the world.To Install Odoo 15 on Ubuntu 20.04 you just need to follow the below steps.&lt;br /&gt;
&lt;br /&gt;
There are many ways to install Odoo depending on the requirements and the easy and quick way to install Odoo by using APT repositories.&lt;br /&gt;
&lt;br /&gt;
If you want to work with running multiple Odoo versions on the same system then you can either use docker compose or docker Install Odoo in a virtual environment.&lt;br /&gt;
&lt;br /&gt;
This blog is to provide steps for installation and configuration of Odoo for production environment using Git source and Python environment on an Ubuntu 20.04 system.&lt;br /&gt;
&lt;br /&gt;
Odoo Installation For Free !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To install Odoo 15 on Ubuntu 20.04 LTS you just follow the below steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1 : Update Server ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update                    &lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 2 : Create Odoo User in Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;                        &lt;br /&gt;
sudo adduser -system -home=/opt/odoo -group odoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 3 : Install PostgreSQL Server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install postgresql -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 4 : Create Odoo user for postgreSQL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su - postgres -c &amp;quot;createuser -s odoo&amp;quot; 2&amp;gt; /dev/null || true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 5 : Install Python Dependencies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git python3 python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev gdebi -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
                    &lt;br /&gt;
&lt;br /&gt;
== Step 6 : Install Python PIP Dependencies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libpq-dev python-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 7 : Install other required packages ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install nodejs npm -y&lt;br /&gt;
sudo npm install -g rtlcss&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 8 : Install Wkhtmltopdf ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install xfonts-75dpi&lt;br /&gt;
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb     &lt;br /&gt;
sudo dpkg -i wkhtmltox_0.12.6-1.bionic_amd64.deb              &lt;br /&gt;
sudo cp /usr/local/bin/wkhtmltoimage  /usr/bin/wkhtmltoimage               &lt;br /&gt;
sudo cp /usr/local/bin/wkhtmltopdf  /usr/bin/wkhtmltopdf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 9 : Create Log directory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /var/log/odoo&lt;br /&gt;
sudo chown odoo:odoo /var/log/odoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 10 :Install Odoo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git &lt;br /&gt;
sudo git clone --depth 1 --branch 15.0 https://www.github.com/odoo/odoo /odoo/odoo-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
                    &lt;br /&gt;
&lt;br /&gt;
== Step 11 : Setting permissions on home folder ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown -R odoo:odoo /opt/odoo/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 12 : Create server config file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo touch /etc/odoo-server.conf&lt;br /&gt;
sudo su root -c &amp;quot;printf '[options] \n; This is the password that allows database operations:\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;                &lt;br /&gt;
sudo su root -c &amp;quot;printf 'admin_passwd = admin\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;              &lt;br /&gt;
sudo su root -c &amp;quot;printf 'xmlrpc_port = 8069\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo su root -c &amp;quot;printf 'logfile = /var/log/odoo/odoo-server.log\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo su root -c &amp;quot;printf 'addons_path=/opt/odoo/odoo-server/addons\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo chown odoo:odoo /etc/odoo-server.conf&lt;br /&gt;
sudo chmod 640 /etc/odoo-server.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 13 : Now Start Odoo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su - odoo -s /bin/bash &lt;br /&gt;
cd /opt/odoo/odoo-server&lt;br /&gt;
./odoo-bin -c /etc/odoo-server.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now your odoo instance is up and running. &lt;br /&gt;
&lt;br /&gt;
Go to web browser and access your odoo at localhost:8069&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Ubuntu_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B4%D1%8D%D1%8D%D1%80_Odoo_%D1%81%D1%83%D1%83%D0%BB%D0%B3%D0%B0%D1%85&amp;diff=577</id>
		<title>Ubuntu сервер дээр Odoo суулгах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Ubuntu_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B4%D1%8D%D1%8D%D1%80_Odoo_%D1%81%D1%83%D1%83%D0%BB%D0%B3%D0%B0%D1%85&amp;diff=577"/>
				<updated>2023-01-10T17:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Step 12 : Create server config file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps To Install Odoo 15 On Ubuntu 20.04 &lt;br /&gt;
&lt;br /&gt;
Odoo is the most popular all-in-one business software in the world.To Install Odoo 15 on Ubuntu 20.04 you just need to follow the below steps.&lt;br /&gt;
&lt;br /&gt;
There are many ways to install Odoo depending on the requirements and the easy and quick way to install Odoo by using APT repositories.&lt;br /&gt;
&lt;br /&gt;
If you want to work with running multiple Odoo versions on the same system then you can either use docker compose or docker Install Odoo in a virtual environment.&lt;br /&gt;
&lt;br /&gt;
This blog is to provide steps for installation and configuration of Odoo for production environment using Git source and Python environment on an Ubuntu 20.04 system.&lt;br /&gt;
&lt;br /&gt;
Odoo Installation For Free !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To install Odoo 15 on Ubuntu 20.04 LTS you just follow the below steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1 : Update Server ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update                    &lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 2 : Create Odoo User in Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;                        &lt;br /&gt;
sudo adduser -system -home=/opt/odoo -group odoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 3 : Install PostgreSQL Server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install postgresql -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 4 : Create Odoo user for postgreSQL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su - postgres -c &amp;quot;createuser -s odoo&amp;quot; 2&amp;gt; /dev/null || true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 5 : Install Python Dependencies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git python3 python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev gdebi -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
                    &lt;br /&gt;
&lt;br /&gt;
== Step 6 : Install Python PIP Dependencies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libpq-dev python-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 7 : Install other required packages ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install nodejs npm -y&lt;br /&gt;
sudo npm install -g rtlcss&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 8 : Install Wkhtmltopdf ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install xfonts-75dpi&lt;br /&gt;
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb     &lt;br /&gt;
sudo dpkg -i wkhtmltox_0.12.6-1.bionic_amd64.deb              &lt;br /&gt;
sudo cp /usr/local/bin/wkhtmltoimage  /usr/bin/wkhtmltoimage               &lt;br /&gt;
sudo cp /usr/local/bin/wkhtmltopdf  /usr/bin/wkhtmltopdf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 9 : Create Log directory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /var/log/odoo&lt;br /&gt;
sudo chown odoo:odoo /var/log/odoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 10 :Install Odoo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git &lt;br /&gt;
sudo git clone --depth 1 --branch 15.0 https://www.github.com/odoo/odoo /odoo/odoo-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
                    &lt;br /&gt;
&lt;br /&gt;
== Step 11 : Setting permissions on home folder ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown -R odoo:odoo /opt/odoo/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 12 : Create server config file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo touch /etc/odoo-server.conf&lt;br /&gt;
sudo su root -c &amp;quot;printf '[options] \n; This is the password that allows database operations:\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;                &lt;br /&gt;
sudo su root -c &amp;quot;printf 'admin_passwd = admin\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;              &lt;br /&gt;
sudo su root -c &amp;quot;printf 'xmlrpc_port = 8069\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo su root -c &amp;quot;printf 'logfile = /var/log/odoo/odoo-server.log\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo su root -c &amp;quot;printf 'addons_path=/opt/odoo/odoo-server/addons\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo chown odoo:odoo /etc/odoo-server.conf&lt;br /&gt;
sudo chmod 640 /etc/odoo-server.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 13 : Now Start Odoo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su - odoo -s /bin/bash &lt;br /&gt;
cd /odoo/odoo-server&lt;br /&gt;
./odoo-bin -c /etc/odoo-server.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now your odoo instance is up and running. &lt;br /&gt;
&lt;br /&gt;
Go to web browser and access your odoo at localhost:8069&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Ubuntu_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B4%D1%8D%D1%8D%D1%80_Odoo_%D1%81%D1%83%D1%83%D0%BB%D0%B3%D0%B0%D1%85&amp;diff=576</id>
		<title>Ubuntu сервер дээр Odoo суулгах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Ubuntu_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B4%D1%8D%D1%8D%D1%80_Odoo_%D1%81%D1%83%D1%83%D0%BB%D0%B3%D0%B0%D1%85&amp;diff=576"/>
				<updated>2023-01-10T17:19:51Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Step 11 : Setting permissions on home folder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps To Install Odoo 15 On Ubuntu 20.04 &lt;br /&gt;
&lt;br /&gt;
Odoo is the most popular all-in-one business software in the world.To Install Odoo 15 on Ubuntu 20.04 you just need to follow the below steps.&lt;br /&gt;
&lt;br /&gt;
There are many ways to install Odoo depending on the requirements and the easy and quick way to install Odoo by using APT repositories.&lt;br /&gt;
&lt;br /&gt;
If you want to work with running multiple Odoo versions on the same system then you can either use docker compose or docker Install Odoo in a virtual environment.&lt;br /&gt;
&lt;br /&gt;
This blog is to provide steps for installation and configuration of Odoo for production environment using Git source and Python environment on an Ubuntu 20.04 system.&lt;br /&gt;
&lt;br /&gt;
Odoo Installation For Free !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To install Odoo 15 on Ubuntu 20.04 LTS you just follow the below steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1 : Update Server ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update                    &lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 2 : Create Odoo User in Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;                        &lt;br /&gt;
sudo adduser -system -home=/opt/odoo -group odoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 3 : Install PostgreSQL Server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install postgresql -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 4 : Create Odoo user for postgreSQL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su - postgres -c &amp;quot;createuser -s odoo&amp;quot; 2&amp;gt; /dev/null || true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 5 : Install Python Dependencies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git python3 python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev gdebi -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
                    &lt;br /&gt;
&lt;br /&gt;
== Step 6 : Install Python PIP Dependencies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libpq-dev python-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 7 : Install other required packages ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install nodejs npm -y&lt;br /&gt;
sudo npm install -g rtlcss&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 8 : Install Wkhtmltopdf ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install xfonts-75dpi&lt;br /&gt;
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb     &lt;br /&gt;
sudo dpkg -i wkhtmltox_0.12.6-1.bionic_amd64.deb              &lt;br /&gt;
sudo cp /usr/local/bin/wkhtmltoimage  /usr/bin/wkhtmltoimage               &lt;br /&gt;
sudo cp /usr/local/bin/wkhtmltopdf  /usr/bin/wkhtmltopdf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 9 : Create Log directory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /var/log/odoo&lt;br /&gt;
sudo chown odoo:odoo /var/log/odoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 10 :Install Odoo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git &lt;br /&gt;
sudo git clone --depth 1 --branch 15.0 https://www.github.com/odoo/odoo /odoo/odoo-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
                    &lt;br /&gt;
&lt;br /&gt;
== Step 11 : Setting permissions on home folder ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown -R odoo:odoo /opt/odoo/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 12 : Create server config file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo touch /etc/odoo-server.conf&lt;br /&gt;
sudo su root -c &amp;quot;printf '[options] \n; This is the password that allows database operations:\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;                &lt;br /&gt;
sudo su root -c &amp;quot;printf 'admin_passwd = admin\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;              &lt;br /&gt;
sudo su root -c &amp;quot;printf 'xmlrpc_port = 8069\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo su root -c &amp;quot;printf 'logfile = /var/log/odoo/odoo-server.log\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo su root -c &amp;quot;printf 'addons_path=/odoo/odoo-server/addons\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo chown odoo:odoo /etc/odoo-server.conf&lt;br /&gt;
sudo chmod 640 /etc/odoo-server.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 13 : Now Start Odoo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su - odoo -s /bin/bash &lt;br /&gt;
cd /odoo/odoo-server&lt;br /&gt;
./odoo-bin -c /etc/odoo-server.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now your odoo instance is up and running. &lt;br /&gt;
&lt;br /&gt;
Go to web browser and access your odoo at localhost:8069&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Ubuntu_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B4%D1%8D%D1%8D%D1%80_Odoo_%D1%81%D1%83%D1%83%D0%BB%D0%B3%D0%B0%D1%85&amp;diff=575</id>
		<title>Ubuntu сервер дээр Odoo суулгах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Ubuntu_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B4%D1%8D%D1%8D%D1%80_Odoo_%D1%81%D1%83%D1%83%D0%BB%D0%B3%D0%B0%D1%85&amp;diff=575"/>
				<updated>2023-01-10T17:07:00Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps To Install Odoo 15 On Ubuntu 20.04 &lt;br /&gt;
&lt;br /&gt;
Odoo is the most popular all-in-one business software in the world.To Install Odoo 15 on Ubuntu 20.04 you just need to follow the below steps.&lt;br /&gt;
&lt;br /&gt;
There are many ways to install Odoo depending on the requirements and the easy and quick way to install Odoo by using APT repositories.&lt;br /&gt;
&lt;br /&gt;
If you want to work with running multiple Odoo versions on the same system then you can either use docker compose or docker Install Odoo in a virtual environment.&lt;br /&gt;
&lt;br /&gt;
This blog is to provide steps for installation and configuration of Odoo for production environment using Git source and Python environment on an Ubuntu 20.04 system.&lt;br /&gt;
&lt;br /&gt;
Odoo Installation For Free !!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To install Odoo 15 on Ubuntu 20.04 LTS you just follow the below steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1 : Update Server ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update                    &lt;br /&gt;
sudo apt-get upgrade -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 2 : Create Odoo User in Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;                        &lt;br /&gt;
sudo adduser -system -home=/opt/odoo -group odoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 3 : Install PostgreSQL Server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install postgresql -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 4 : Create Odoo user for postgreSQL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su - postgres -c &amp;quot;createuser -s odoo&amp;quot; 2&amp;gt; /dev/null || true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 5 : Install Python Dependencies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git python3 python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev gdebi -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
                    &lt;br /&gt;
&lt;br /&gt;
== Step 6 : Install Python PIP Dependencies ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libpq-dev python-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 7 : Install other required packages ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install nodejs npm -y&lt;br /&gt;
sudo npm install -g rtlcss&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 8 : Install Wkhtmltopdf ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install xfonts-75dpi&lt;br /&gt;
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb     &lt;br /&gt;
sudo dpkg -i wkhtmltox_0.12.6-1.bionic_amd64.deb              &lt;br /&gt;
sudo cp /usr/local/bin/wkhtmltoimage  /usr/bin/wkhtmltoimage               &lt;br /&gt;
sudo cp /usr/local/bin/wkhtmltopdf  /usr/bin/wkhtmltopdf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 9 : Create Log directory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /var/log/odoo&lt;br /&gt;
sudo chown odoo:odoo /var/log/odoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 10 :Install Odoo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git &lt;br /&gt;
sudo git clone --depth 1 --branch 15.0 https://www.github.com/odoo/odoo /odoo/odoo-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
                    &lt;br /&gt;
&lt;br /&gt;
== Step 11 : Setting permissions on home folder ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown -R odoo:odoo /odoo/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 12 : Create server config file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo touch /etc/odoo-server.conf&lt;br /&gt;
sudo su root -c &amp;quot;printf '[options] \n; This is the password that allows database operations:\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;                &lt;br /&gt;
sudo su root -c &amp;quot;printf 'admin_passwd = admin\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;              &lt;br /&gt;
sudo su root -c &amp;quot;printf 'xmlrpc_port = 8069\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo su root -c &amp;quot;printf 'logfile = /var/log/odoo/odoo-server.log\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo su root -c &amp;quot;printf 'addons_path=/odoo/odoo-server/addons\n' &amp;gt;&amp;gt; /etc/odoo-server.conf&amp;quot;&lt;br /&gt;
sudo chown odoo:odoo /etc/odoo-server.conf&lt;br /&gt;
sudo chmod 640 /etc/odoo-server.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 13 : Now Start Odoo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo su - odoo -s /bin/bash &lt;br /&gt;
cd /odoo/odoo-server&lt;br /&gt;
./odoo-bin -c /etc/odoo-server.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now your odoo instance is up and running. &lt;br /&gt;
&lt;br /&gt;
Go to web browser and access your odoo at localhost:8069&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=574</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=574"/>
				<updated>2023-01-10T14:43:59Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Зарим холбогдолтой линкүүд */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
(certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж бас болно)&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/conf-available/acme-challenge.conf /etc/nginx/conf-enabled/acme-challenge.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enconf acme-challenge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Odoo-гийн веб сервер прокси SSL-тэй тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8069;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8069, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8069/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8069/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8069, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Odoo суулгах дэлгэрэнгүй зааврыг энд бичихгүй ба доорх хаягнаас харах боломжтой. Мөн доорх хаяг дээрх зүйлсээс зарим зүйлс өөр ба давхацсан байж магадгүй:&lt;br /&gt;
[[Ubuntu сервер дээр Odoo суулгах]]&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8069&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн тохиргоонд Logrotate=True зэргээр Odoo системийн өөрийнх нь log rotation ашиглахаас илүү системийн Logrotate ашиглахаар тохируулахыг санал болгодог.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Зарим холбогдолтой линкүүд ==&lt;br /&gt;
&lt;br /&gt;
* [[Odoo PDF баримтуудын загвар зөв гарахгүй байх үед]]&lt;br /&gt;
&lt;br /&gt;
* [[Odoo ERP Windows дээр соорсоос суулгах]]&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=573</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=573"/>
				<updated>2023-01-10T14:43:11Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
(certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж бас болно)&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/conf-available/acme-challenge.conf /etc/nginx/conf-enabled/acme-challenge.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enconf acme-challenge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Odoo-гийн веб сервер прокси SSL-тэй тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8069;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8069, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8069/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8069/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8069, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Odoo суулгах дэлгэрэнгүй зааврыг энд бичихгүй ба доорх хаягнаас харах боломжтой. Мөн доорх хаяг дээрх зүйлсээс зарим зүйлс өөр ба давхацсан байж магадгүй:&lt;br /&gt;
[[Ubuntu сервер дээр Odoo суулгах]]&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8069&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн тохиргоонд Logrotate=True зэргээр Odoo системийн өөрийнх нь log rotation ашиглахаас илүү системийн Logrotate ашиглахаар тохируулахыг санал болгодог.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Зарим холбогдолтой линкүүд ==&lt;br /&gt;
&lt;br /&gt;
[[Odoo PDF баримтуудын загвар зөв гарахгүй байх үед]]&lt;br /&gt;
[[Odoo ERP Windows дээр соорсоос суулгах]]&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=572</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=572"/>
				<updated>2023-01-10T14:41:32Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Odoo суулгаж бэлдэх */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
(certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж бас болно)&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/conf-available/acme-challenge.conf /etc/nginx/conf-enabled/acme-challenge.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enconf acme-challenge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Odoo-гийн веб сервер прокси SSL-тэй тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Odoo суулгах дэлгэрэнгүй зааврыг энд бичихгүй ба доорх хаягнаас харах боломжтой. Мөн доорх хаяг дээрх зүйлсээс зарим зүйлс өөр ба давхацсан байж магадгүй:&lt;br /&gt;
[[Ubuntu сервер дээр Odoo суулгах]]&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8060&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн тохиргоонд Logrotate=True зэргээр Odoo системийн өөрийнх нь log rotation ашиглахаас илүү системийн Logrotate ашиглахаар тохируулахыг санал болгодог.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_Apache_Reverse_proxy_SSL_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=571</id>
		<title>Odoo Apache Reverse proxy SSL тохируулах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_Apache_Reverse_proxy_SSL_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=571"/>
				<updated>2023-01-10T14:39:46Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;&lt;br /&gt;
Apache reverse proxy&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Debian/Ubuntu:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;code&amp;quot;&amp;gt;a2enmod ssl proxy_http headers rewrite &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_Apache_Reverse_proxy_SSL_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=570</id>
		<title>Odoo Apache Reverse proxy SSL тохируулах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_Apache_Reverse_proxy_SSL_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=570"/>
				<updated>2023-01-10T14:39:26Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;&lt;br /&gt;
Apache reverse proxy&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Debian/Ubuntu:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;code&amp;quot;&amp;gt;a2enmod ssl proxy_http headers rewrite &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[https://wiki.dusal.net/Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=569</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=569"/>
				<updated>2023-01-10T14:36:48Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Odoo суулгаж бэлдэх */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
(certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж бас болно)&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/conf-available/acme-challenge.conf /etc/nginx/conf-enabled/acme-challenge.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enconf acme-challenge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Odoo-гийн веб сервер прокси SSL-тэй тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8060&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн тохиргоонд Logrotate=True зэргээр Odoo системийн өөрийнх нь log rotation ашиглахаас илүү системийн Logrotate ашиглахаар тохируулахыг санал болгодог.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=568</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=568"/>
				<updated>2023-01-10T14:36:14Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Odoo суулгаж бэлдэх */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
(certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж бас болно)&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/conf-available/acme-challenge.conf /etc/nginx/conf-enabled/acme-challenge.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enconf acme-challenge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Odoo-гийн веб сервер прокси SSL-тэй тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8060&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн тохиргоонд Logrotate=True зэргээр Odoo системийн өөрийнх нь log rotation ашиглах нь дэмий ба системийн Logrotate ашиглахаар тохируулах нь дээр.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=567</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=567"/>
				<updated>2023-01-10T14:34:45Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Веб сервер прокси тохируулах */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
(certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж бас болно)&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/conf-available/acme-challenge.conf /etc/nginx/conf-enabled/acme-challenge.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enconf acme-challenge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Odoo-гийн веб сервер прокси SSL-тэй тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8060&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн системийн Logrotate ашиглахаар тохируулах нь дээр.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=566</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=566"/>
				<updated>2023-01-10T14:33:48Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Just issue certificate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
(certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж бас болно)&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/conf-available/acme-challenge.conf /etc/nginx/conf-enabled/acme-challenge.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enconf acme-challenge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8060&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн системийн Logrotate ашиглахаар тохируулах нь дээр.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=565</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=565"/>
				<updated>2023-01-10T14:33:33Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Install from git */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
(certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж бас болно)&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/conf-available/acme-challenge.conf /etc/nginx/conf-enabled/acme-challenge.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enconf acme-challenge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== acme.sh Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8060&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн системийн Logrotate ашиглахаар тохируулах нь дээр.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=564</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=564"/>
				<updated>2023-01-10T14:33:10Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Apache сервер дэх тохиргоо */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
(certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж бас болно)&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/conf-available/acme-challenge.conf /etc/nginx/conf-enabled/acme-challenge.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enconf acme-challenge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8060&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн системийн Logrotate ашиглахаар тохируулах нь дээр.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=563</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=563"/>
				<updated>2023-01-10T14:32:31Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Nginx сервер дэх тохиргоо */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
(certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж бас болно)&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-available/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/conf-available/acme-challenge.conf /etc/nginx/conf-enabled/acme-challenge.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8060&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн системийн Logrotate ашиглахаар тохируулах нь дээр.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=562</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=562"/>
				<updated>2023-01-10T14:28:14Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* SSL тохируулах */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
(certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж бас болно)&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8060&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн системийн Logrotate ашиглахаар тохируулах нь дээр.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=561</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=561"/>
				<updated>2023-01-10T14:20:34Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж болох ч энэ удаад бид acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
odoo-server.conf файлд доорх тохиргоонуудыг доорх байдлаар нэмж тохируулж өгвөл зүгээр. Ялангуяа доод хэсгийн утгууд нь чухал шаардлагатай юм:&lt;br /&gt;
&lt;br /&gt;
Утгуудыг нь шаардлагатай бол өөрөө нэмж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
db_maxconn = 100&lt;br /&gt;
limit_time_cpu = 28800&lt;br /&gt;
limit_time_real = 28800&lt;br /&gt;
max_cron_threads = 1&lt;br /&gt;
limit_time_real_cron = -1&lt;br /&gt;
list_db = False&lt;br /&gt;
log_level = info&lt;br /&gt;
&lt;br /&gt;
debug_mode = False&lt;br /&gt;
dev_mode = False&lt;br /&gt;
logfile = /home/username/odoo/log/odoo-server.log&lt;br /&gt;
db_sslmode = prefer&lt;br /&gt;
http_enable = True&lt;br /&gt;
http_port = 8060&lt;br /&gt;
longpolling_port = 8072&lt;br /&gt;
proxy_mode = True&lt;br /&gt;
workers = 8&lt;br /&gt;
proxy=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн системийн Logrotate ашиглахаар тохируулах нь дээр.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/logrotate.d/odoo-server файлд доорх байдлаар тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/username/odoo/log/odoo-server.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    rotate 4&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    missingok&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тэгээд доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart logrotate.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
== Monit суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Мөн үүн дээр нэмээд monit суулгаж тохируулж өгвөл зүгээр. &lt;br /&gt;
&lt;br /&gt;
Зааварчилгаа: [[Monit сервис тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Тохируулахдаа доорх байдлаар нэмж өгнө:&lt;br /&gt;
&lt;br /&gt;
Жишээ тохиргоо:&lt;br /&gt;
/etc/monit/conf.d/odoo-server.conf файл үүсгэн доорх тохиргоог хийнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process odoo-server with pidfile /home/username/odoo/odoo-server.pid&lt;br /&gt;
start program &amp;quot;/bin/systemctl start odoo-server&amp;quot; as uid userid and gid userid with timeout 120 seconds&lt;br /&gt;
stop program &amp;quot;/bin/systemctl stop odoo-server&amp;quot; as uid userid and gid userid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
userid гэсний оронд өөрийн хэрэглэгчийн user name-ийг тохируулж өгнө.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Monit_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=560</id>
		<title>Monit сервис тохируулах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Monit_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=560"/>
				<updated>2023-01-10T14:18:56Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Суулгаж тохируулах */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Танилцуулга ==&lt;br /&gt;
&lt;br /&gt;
Monit нь ямар нэгэн асуудал гарч сервис зогссон үед автоматаар буцаан ажиллуулах гэх мэт тохиргоо хийж өгөх боломжтой багаж юм.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update -y&lt;br /&gt;
sudo apt install monit -y&lt;br /&gt;
sudo systemctl start monit&lt;br /&gt;
sudo systemctl enable monit&lt;br /&gt;
sudo systemctl status monit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Тохиргоо ==&lt;br /&gt;
&lt;br /&gt;
Бэлэн сервисүүдээс шууд идэвхжүүлэх боломжтой:&lt;br /&gt;
&lt;br /&gt;
SSH шалгах сервис:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/openssh-server /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн вэб сервер:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/nginx /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
эсвэл&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/apache2 /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн өөрийн сервисийг нэмж тохируулж болно.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/monit/conf.d/posgresql.conf файлд:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process postgresql with pidfile /var/run/postgresql/10-main.pid&lt;br /&gt;
group database&lt;br /&gt;
start program = &amp;quot;/etc/init.d/postgresql start&amp;quot;&lt;br /&gt;
stop program = &amp;quot;/etc/init.d/postgresql stop&amp;quot;&lt;br /&gt;
if failed unixsocket /var/run/postgresql/.s.PGSQL.5432 protocol pgsql then restart&lt;br /&gt;
if failed unixsocket /var/run/postgresql/.s.PGSQL.5432 protocol pgsql then alert&lt;br /&gt;
if failed host localhost port 5432 protocol pgsql then restart&lt;br /&gt;
if failed host localhost port 5432 protocol pgsql then alert&lt;br /&gt;
if 5 restarts within 5 cycles then timeout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
тохиргоог хийж хадгалаад доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/posgresql /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тохиргоо шалгах:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monit -t&lt;br /&gt;
&lt;br /&gt;
Control file syntax OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сервесийг дахин ачааллаж тохиргоог идэвхжүүлэх:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart monit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Monit_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=559</id>
		<title>Monit сервис тохируулах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Monit_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=559"/>
				<updated>2023-01-10T14:18:35Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Танилцуулга ==&lt;br /&gt;
&lt;br /&gt;
Monit нь ямар нэгэн асуудал гарч сервис зогссон үед автоматаар буцаан ажиллуулах гэх мэт тохиргоо хийж өгөх боломжтой багаж юм.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo aptupdate -y&lt;br /&gt;
sudo aptinstall monit -y&lt;br /&gt;
sudo systemctl start monit&lt;br /&gt;
sudo systemctl enable monit&lt;br /&gt;
sudo systemctl status monit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Тохиргоо ==&lt;br /&gt;
&lt;br /&gt;
Бэлэн сервисүүдээс шууд идэвхжүүлэх боломжтой:&lt;br /&gt;
&lt;br /&gt;
SSH шалгах сервис:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/openssh-server /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн вэб сервер:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/nginx /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
эсвэл&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/apache2 /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн өөрийн сервисийг нэмж тохируулж болно.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/monit/conf.d/posgresql.conf файлд:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process postgresql with pidfile /var/run/postgresql/10-main.pid&lt;br /&gt;
group database&lt;br /&gt;
start program = &amp;quot;/etc/init.d/postgresql start&amp;quot;&lt;br /&gt;
stop program = &amp;quot;/etc/init.d/postgresql stop&amp;quot;&lt;br /&gt;
if failed unixsocket /var/run/postgresql/.s.PGSQL.5432 protocol pgsql then restart&lt;br /&gt;
if failed unixsocket /var/run/postgresql/.s.PGSQL.5432 protocol pgsql then alert&lt;br /&gt;
if failed host localhost port 5432 protocol pgsql then restart&lt;br /&gt;
if failed host localhost port 5432 protocol pgsql then alert&lt;br /&gt;
if 5 restarts within 5 cycles then timeout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
тохиргоог хийж хадгалаад доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/posgresql /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тохиргоо шалгах:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monit -t&lt;br /&gt;
&lt;br /&gt;
Control file syntax OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сервесийг дахин ачааллаж тохиргоог идэвхжүүлэх:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart monit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Monit_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=558</id>
		<title>Monit сервис тохируулах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Monit_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=558"/>
				<updated>2023-01-10T14:18:11Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: Хуудас үүсгэв: &amp;quot; == Танилцуулга ==  Monit нь ямар нэгэн асуудал гарч сервис зогссон үед автоматаар буцаан ажилл...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Танилцуулга ==&lt;br /&gt;
&lt;br /&gt;
Monit нь ямар нэгэн асуудал гарч сервис зогссон үед автоматаар буцаан ажиллуулах гэх мэт тохиргоо хийж өгөх боломжтой багаж юм.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Суулгаж тохируулах ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo aptupdate -y&lt;br /&gt;
sudo aptinstall monit -y&lt;br /&gt;
sudo systemctl start monit&lt;br /&gt;
sudo systemctl enable monit&lt;br /&gt;
sudo systemctl status monit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Тохиргоо ==&lt;br /&gt;
&lt;br /&gt;
Бэлэн сервисүүдээс шууд идэвхжүүлэх боломжтой:&lt;br /&gt;
&lt;br /&gt;
SSH шалгах сервис:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/openssh-server /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн вэб сервер:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/nginx /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
эсвэл&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/apache2 /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн өөрийн сервисийг нэмж тохируулж болно.&lt;br /&gt;
&lt;br /&gt;
Жишээ нь:&lt;br /&gt;
&lt;br /&gt;
/etc/monit/conf.d/posgresql.conf файлд:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check process postgresql with pidfile /var/run/postgresql/10-main.pid&lt;br /&gt;
group database&lt;br /&gt;
start program = &amp;quot;/etc/init.d/postgresql start&amp;quot;&lt;br /&gt;
stop program = &amp;quot;/etc/init.d/postgresql stop&amp;quot;&lt;br /&gt;
if failed unixsocket /var/run/postgresql/.s.PGSQL.5432 protocol pgsql then restart&lt;br /&gt;
if failed unixsocket /var/run/postgresql/.s.PGSQL.5432 protocol pgsql then alert&lt;br /&gt;
if failed host localhost port 5432 protocol pgsql then restart&lt;br /&gt;
if failed host localhost port 5432 protocol pgsql then alert&lt;br /&gt;
if 5 restarts within 5 cycles then timeout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
тохиргоог хийж хадгалаад доорх тушаалаар идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/monit/conf-available/posgresql /etc/monit/conf-enabled/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тохиргоо шалгах:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monit -t&lt;br /&gt;
&lt;br /&gt;
Control file syntax OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сервесийг дахин ачааллаж тохиргоог идэвхжүүлэх:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart monit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=557</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=557"/>
				<updated>2023-01-10T13:39:43Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж болох ч энэ удаад бид acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-server файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-server болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=556</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=556"/>
				<updated>2023-01-10T13:38:19Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Odoo суулгаж бэлдэх */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж болох ч энэ удаад бид acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
Мөн odoo-bin файл байхгүй байгаа тохиолдолд setup хавтасны odoo файлыг odoo-bin болгон үндэсн хавтсанд хуулаарай.&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=555</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=555"/>
				<updated>2023-01-10T13:36:43Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Odoo суулгаж бэлдэх */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж болох ч энэ удаад бид acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Харин '''pip install -r requirements.txt''' тушаалаа ажиллуулахдаа хийсвэр орчноо идэвхжүүлсэн байх хэрэгтэй.&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=554</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=554"/>
				<updated>2023-01-10T13:35:39Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Odoo суулгаж бэлдэх */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж болох ч энэ удаад бид acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[Python хийсвэр орчин (Virtual Environment) тохируулах]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=553</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=553"/>
				<updated>2023-01-10T13:34:08Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж болох ч энэ удаад бид acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[https://wiki.dusal.net/Python_%D1%85%D0%B8%D0%B9%D1%81%D0%B2%D1%8D%D1%80_%D0%BE%D1%80%D1%87%D0%B8%D0%BD_(Virtual_Environment)_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=552</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=552"/>
				<updated>2023-01-10T13:32:47Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм. Nginx, Apache 2 серверийн аль нэгийг нь сонгон суулгасан байгаа байх. Тиймээс тохиргоон дээр аль нэгийг нь сонгож хийгээд нөгөөг нь алгасаж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж болох ч энэ удаад бид acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https үндсэн тохиргоог доорх байдлаар хийнэ:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com-le-ssl.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
a2ensite example.com-le-ssl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[https://wiki.dusal.net/Python_%D1%85%D0%B8%D0%B9%D1%81%D0%B2%D1%8D%D1%80_%D0%BE%D1%80%D1%87%D0%B8%D0%BD_(Virtual_Environment)_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=551</id>
		<title>Odoo service тохируулах (NGINX, Apache, LetsEncrypt (acme.sh), systemd)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Odoo_service_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85_(NGINX,_Apache,_LetsEncrypt_(acme.sh),_systemd)&amp;diff=551"/>
				<updated>2023-01-10T13:31:39Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Odoo сервис продакшн орчинд тохируулахдаа Nginx юмуу Apache сервер proxy ашиглан, мөн төлбөргүй SSL тохируулах талаар. Энэ зааврын хувьд Ubuntu үйлдлийн системд зориулсан ба бусад Линкус системд зарим зүйл нь өөр байж магадгүй юм.&lt;br /&gt;
&lt;br /&gt;
== SSL тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Энэ удаад бид Let's Encrypt free SSL-ийн certbot гээд өргөн ашиглагддаг python багажаар тохиргоо хийж болох ч энэ удаад бид acme.sh shell script-ээр тохиргоо хийнэ. Project on github: https://github.com/acmesh-official/get.acme.sh&lt;br /&gt;
&lt;br /&gt;
Аль аль нь нээлттэй эхийн хэрэгсэл ба зөвхөн online серверт тохируулах боломжтой.&lt;br /&gt;
&lt;br /&gt;
Төлбөртэй SSL худалдан авч тохируулах тохиолдолд прокси серверийн тохиргоо дээрээ замыг зааж өгөхөд л болох тул доорхыг алгасахад болно.&lt;br /&gt;
&lt;br /&gt;
Төлбөргүй SSL нь 90 хоногийн хугацаатай ба бид автомтаар сунгагдаж явахаар тохируулна. Ингэхийн тулд сервер баталгаажуулалтын тохиргоог эхлээд зөв хийж өгөх шаардлагатай. DNS зэрэг өөр олон тохируулах арга байдаг ч энэ удаад хамгийн хялбар, өргөн ашиглагддаг вэб серверийн тохиргооны дагуу тохируулна. Доорх Nginx, Apache2 аль нэгийг сонгон тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
=== Nginx сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
    /etc/nginx/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
    default_type &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
    root         /var/www/html;&lt;br /&gt;
    break;&lt;br /&gt;
}&lt;br /&gt;
location = /.well-known/acme-challenge/ {&lt;br /&gt;
    return 404;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
эсвэл&lt;br /&gt;
&lt;br /&gt;
=== Apache сервер дэх тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Доорх файлыг үүсгэн:&lt;br /&gt;
&lt;br /&gt;
    /etc/apache2/conf-enabled/acme-challenge.conf &lt;br /&gt;
&lt;br /&gt;
Доорх агуулгыг хийж хадгална:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
    Options None&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    ForceType text/plain&lt;br /&gt;
    RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд acme.sh-ээ суулгана:&lt;br /&gt;
&lt;br /&gt;
=== Install from git ===&lt;br /&gt;
&lt;br /&gt;
1. Прожектыг хуулбарлан аваад доорх байдлаар ажиллуулна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/acmesh-official/acme.sh.git&lt;br /&gt;
cd ./acme.sh&lt;br /&gt;
./acme.sh --install -m my@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрхийг суулгахдаа root эрхээр ажиллуулахгүй байх нь дээр.&lt;br /&gt;
&lt;br /&gt;
Ингээд суулгахад доорх 3 үйлдлийг суулгагч хийдэг:&lt;br /&gt;
&lt;br /&gt;
1. acme.sh хэрэглэгчийн home dir ($HOME) дотор дараах хавтсыг үүсгэдэг: ~/.acme.sh/. Цаашид үүсгэх сертификатууд энэ хавтсанд байршина.&lt;br /&gt;
2. Дараах байдлаар тушаалын alias үүсгэдэг: acme.sh=~/.acme.sh/acme.sh.&lt;br /&gt;
3. Cron job доорх байдлаар үүсгэдэг:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 0 * * * &amp;quot;/home/user/.acme.sh&amp;quot;/acme.sh --cron --home &amp;quot;/home/user/.acme.sh&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
crontab -l тушаалаар шалгана.&lt;br /&gt;
Ямар нэгэн байдлаар үүсээгүй тохиолдолд crontab -e гэж байгаад дээрх байдлаар гараар тохируулж өгч болно. Гараар үүсгэх тохиолдолд /home/user/ гэсний оронд өөрийн home хавтсаа тохируулна.&lt;br /&gt;
&lt;br /&gt;
Мөн зөв ажилаж байгаа эсэхийг дараах байдлаар ажиллуулж мэдээлэл харж шалгаж болно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@v1:~# acme.sh -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мөн доорх тушаалаар автоматаар шинэчлэгдэж байхаар тохируулчихвал амар:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --upgrade --auto-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Just issue certificate ===&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар сертификат үүсгэнэ. Nginx юмуу Apache тохиргоог автоматаар хийх тушаал байдаг ч бид энэ удаад гараараа тохируулна.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d example.com -d www.example.com -w /var/www/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
example.com гэсний оронд домэйн нэрээ оруулна.&lt;br /&gt;
&lt;br /&gt;
Ингээд ~/.acme.sh/example.com/ хавтсанд сертификатууд үүснэ.&lt;br /&gt;
&lt;br /&gt;
Энэ нь 60 хоног тутамд автоматаар шинэчлэгдэнэ.&lt;br /&gt;
&lt;br /&gt;
Энэ арга таарахгүй өөр жишээнүүд судлах бол дараах хаягаар үзэж болно: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert&lt;br /&gt;
&lt;br /&gt;
== Веб сервер прокси тохируулах ==&lt;br /&gt;
&lt;br /&gt;
Аль нэг өөрийн сонгосон серверээр тохиргоогоо хийгээрэй.&lt;br /&gt;
&lt;br /&gt;
=== Nginx тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
/etc/nginx/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
upstream odoo {&lt;br /&gt;
 server 127.0.0.1:8060;&lt;br /&gt;
}&lt;br /&gt;
upstream odoochat {&lt;br /&gt;
 server 127.0.0.1:8072;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# http -&amp;gt; https&lt;br /&gt;
server {&lt;br /&gt;
   listen 80;&lt;br /&gt;
   server_name example.com www.example.com;&lt;br /&gt;
   location /.well-known/acme-challenge/ {&lt;br /&gt;
     alias /var/www/html/.well-known/acme-challenge/;&lt;br /&gt;
   }&lt;br /&gt;
   rewrite ^(.*) https://$host$1 permanent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# https&lt;br /&gt;
server {&lt;br /&gt;
 listen 443 ssl;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 proxy_read_timeout 28800s;&lt;br /&gt;
 proxy_connect_timeout 800s;&lt;br /&gt;
 proxy_send_timeout 28800s;&lt;br /&gt;
&lt;br /&gt;
 # Add Headers for odoo proxy mode&lt;br /&gt;
 proxy_set_header X-Forwarded-Host $host;&lt;br /&gt;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
 proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
 proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&lt;br /&gt;
 # SSL parameters&lt;br /&gt;
 ssl_certificate /home/user/.acme.sh/example.com/fullchain.cer;&lt;br /&gt;
 ssl_certificate_key /home/user/.acme.sh/example.com/example.com.key;&lt;br /&gt;
 ssl_session_timeout 240m;&lt;br /&gt;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
 ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';&lt;br /&gt;
 ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
 # log&lt;br /&gt;
 access_log /var/log/nginx/example.com.access.log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error.log;&lt;br /&gt;
&lt;br /&gt;
 # Redirect requests to odoo backend server&lt;br /&gt;
 location / {&lt;br /&gt;
   proxy_redirect off;&lt;br /&gt;
   proxy_pass http://odoo;&lt;br /&gt;
 }&lt;br /&gt;
 location /longpolling {&lt;br /&gt;
     proxy_pass http://odoochat;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 # common gzip&lt;br /&gt;
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;&lt;br /&gt;
 gzip on;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /etc/nginx/sites-available/example.com.conf  /etc/nginx/sites-enabled/example.com.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд асуудалгүй бол Nginx сервер доорх тушаалаар дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Apache тохиргоо ===&lt;br /&gt;
&lt;br /&gt;
Эхлээд http -г https рүү үсэргэх тохиргоог хийнэ. Мөн SSL нь баталгаажуулалтын тохиргоог ч доорх байдлаар энд тохируулж өгч болно:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com.conf &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/var/www/html/.well-known/acme-challenge/&amp;quot;&amp;gt;&lt;br /&gt;
      Options None&lt;br /&gt;
      AllowOverride None&lt;br /&gt;
      ForceType text/plain&lt;br /&gt;
      RedirectMatch 404 &amp;quot;^(?!/\.well-known/acme-challenge/[\w-]{43}$)&amp;quot;&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RewriteCond %{SERVER_NAME} =example.com [OR]&lt;br /&gt;
RewriteCond %{SERVER_NAME} =www.example.com&lt;br /&gt;
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https үндсэн тохиргоог доорх байдлаар хийнэ:&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/sites-available/example.com-le-ssl.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
AcceptFilter http none&lt;br /&gt;
AcceptFilter https none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
ServerName example.com&lt;br /&gt;
ServerAlias www.example.com erp.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot &amp;quot;/var/www/html&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/&lt;br /&gt;
RewriteRule ^ - [END]&lt;br /&gt;
&lt;br /&gt;
ProxyRequests Off&lt;br /&gt;
&amp;lt;Proxy *&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#LogLevel debug&lt;br /&gt;
Customlog /var/log/apache2/example.com-access.log combined &lt;br /&gt;
ErrorLog /var/log/apache2/example.com-error.log&lt;br /&gt;
&lt;br /&gt;
ProxyTimeout 86400&lt;br /&gt;
ProxyPreserveHost On&lt;br /&gt;
RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
Header set X-Forwarded-Port &amp;quot;443&amp;quot;&lt;br /&gt;
Header always add Strict-Transport-Security &amp;quot;max-age=15768000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSLSessionCacheTimeout 28800&lt;br /&gt;
&lt;br /&gt;
ProxyIOBufferSize 819200&lt;br /&gt;
&lt;br /&gt;
ProxyPass /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
ProxyPassReverse /longpolling/ http://localhost:8072/longpolling/&lt;br /&gt;
&lt;br /&gt;
ProxyPass / http://localhost:8060/ connectiontimeout=300 timeout=28800 keepalive=On ttl=28800 retry=300 acquire=30000 responsefieldsize=819200&lt;br /&gt;
ProxyPassReverse / http://localhost:8060/&lt;br /&gt;
&lt;br /&gt;
Include /etc/letsencrypt/options-ssl-apache.conf&lt;br /&gt;
SSLUseStapling          on&lt;br /&gt;
SSLStaplingResponderTimeout 30&lt;br /&gt;
SSLStaplingReturnResponderErrors off&lt;br /&gt;
&lt;br /&gt;
SSLCertificateFile /home/user/.acme.sh/example.com/fullchain.cer&lt;br /&gt;
SSLCertificateKeyFile /home/user/.acme.sh/example.com/example.com.key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# GZIP compression for text files: HTML, CSS, JS, Text, XML, fonts&lt;br /&gt;
&amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-otf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-truetype&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-font-ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE font/opentype&lt;br /&gt;
AddOutputFilterByType DEFLATE font/otf&lt;br /&gt;
AddOutputFilterByType DEFLATE font/ttf&lt;br /&gt;
AddOutputFilterByType DEFLATE image/svg+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE image/x-icon&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
# Set the location of the SSL OCSP Stapling Cache&lt;br /&gt;
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх тохиргоонд example.com, /home/user, 8060, 8072 гэсэн утгуудыг шаардлагатайг нь зохих утгуудаар бүгдийг нь хайж солиорой. &lt;br /&gt;
SSLStapling тохиргоо алдаа заасан тохиолдолд Apache SSL модулийн тохиргоонд идэвхжүүлж тохируулаарай.&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалаар идэвхжүүлнэ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite example.com&lt;br /&gt;
a2ensite example.com-le-ssl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хийсэн тохиргоогоо дараах тушаалаар шалгана:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apache2ctl configtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ингээд '''Syntax OK''' гэж гарч асуудалгүй бол Apache сервер дахин ачааллаж тохиргоог идэвхжүүлнэ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Odoo суулгаж бэлдэх ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон орчин ажиллуулах зэрэгт тохиромжтой байдаг тул анхнаасаа хийсвэр орчин тохируулж бэлдэх нь дээр.&lt;br /&gt;
Доорх зааврын дагуу үүсгээрэй:&lt;br /&gt;
&lt;br /&gt;
[[https://wiki.dusal.net/Python_%D1%85%D0%B8%D0%B9%D1%81%D0%B2%D1%8D%D1%80_%D0%BE%D1%80%D1%87%D0%B8%D0%BD_(Virtual_Environment)_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85]]&lt;br /&gt;
&lt;br /&gt;
Ингээд /home/username/odoo/ хавтсанд Odoo-ийн соорс кодоо хуулж бэлдэнэ. Мэдээж өөр хавтсанд ч тохируулж болох ба тэгсэн тохиолдолд доорх зааврууд дээр тэр хавтасны замаа зааж өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systemd сервис тохируулах ==&lt;br /&gt;
&lt;br /&gt;
$USER/.config/systemd/user/odoo-server.service файл үүсгэн доорх агуулгыг оруулна. &lt;br /&gt;
&lt;br /&gt;
(Эсвэл системийн сервис хэлбэрээр /etc/systemd/system/ хавтсанд үүсгэж болно. Тэгсэн тохиолдолд сервис удирдахад заавал sudo шаардлагатай болно.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=OdooServer&lt;br /&gt;
Requires=postgresql.service&lt;br /&gt;
After=network.target postgresql.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
SyslogIdentifier=odoo-server&lt;br /&gt;
#User=username&lt;br /&gt;
#Group=username&lt;br /&gt;
ExecStart=/home/user/virtualenvs/odoo1env/bin/python /home/username/odoo/odoo-server --pidfile=/home/username/odoo/odoo-server.pid -c /home/username/odoo/odoo-server.conf&lt;br /&gt;
StandardOutput=journal+console&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=default.target&lt;br /&gt;
#WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ExecStart утгыг өөрчилж тохируулах шаардлагатай.&lt;br /&gt;
&lt;br /&gt;
Жишээлбэл /home/user/virtualenvs/odoo1env/bin/python гэсний оронд virtual env тохируулсан замаа зааж өгнө. &lt;br /&gt;
(Хэрэв хийсвэр орчин тохируулаагүй бол /usr/bin/python3.7 гэх мэт системийн үндсэн замыг ч зааж өгч болно.) &lt;br /&gt;
/home/username/odoo/ хавтсанд odoo-гийн кодоо хуулах юмуу эсвэл үүний оронд хуулсан замаа зааж өгч тохируулна.&lt;br /&gt;
&lt;br /&gt;
(Системийн сервис хэлбэрээр тохируулж буй үед коммэнт аут хийсэн мөрүүдийг идэвхжүүлэх ба User, Group утгуудыг тохируулж өгнө. )&lt;br /&gt;
&lt;br /&gt;
Ингээд доорх тушаалуудаар идэвхжүүлж удирдана. Доод талын 4 тушаал бол цаашид тогтмол ашиглагдана.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl --user daemon-reload&lt;br /&gt;
systemctl --user enable odoo-server.service&lt;br /&gt;
&lt;br /&gt;
systemctl --user start odoo-server.service&lt;br /&gt;
systemctl --user stop odoo-server.service&lt;br /&gt;
systemctl --user restart odoo-server.service&lt;br /&gt;
systemctl --user status odoo-server.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дээрх odoo-server гэсний оронд сервистээ өөр нэр сонгож бас болно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Odoo]]&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Сисадмин]]&lt;br /&gt;
[[Ангилал:Linux]]&lt;br /&gt;
[[Ангилал:Nginx]]&lt;br /&gt;
[[Ангилал:Apache]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Python_%D1%85%D0%B8%D0%B9%D1%81%D0%B2%D1%8D%D1%80_%D0%BE%D1%80%D1%87%D0%B8%D0%BD_(Virtual_Environment)_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=550</id>
		<title>Python хийсвэр орчин (Virtual Environment) тохируулах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Python_%D1%85%D0%B8%D0%B9%D1%81%D0%B2%D1%8D%D1%80_%D0%BE%D1%80%D1%87%D0%B8%D0%BD_(Virtual_Environment)_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=550"/>
				<updated>2023-01-10T13:22:40Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон өөр python хувилбар, пакежууд тохируулах зэрэгт хийсвэр орчин үүсгэж тохируулах шаардлага гардаг.&lt;br /&gt;
Доорх байдлаар хялбархан шийдэж болно.&lt;br /&gt;
&lt;br /&gt;
== Шинэчлэх, тохируулах ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get -y upgrade&lt;br /&gt;
&lt;br /&gt;
python3 -V&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install build-essential libssl-dev libffi-dev python-dev&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install -y python3-pip python3-venv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Хийсвэр орчин үүсгэх ==&lt;br /&gt;
&lt;br /&gt;
Орчнуудаа нэг хавтсанд үүсгэвэл дараа нь цэгцтэй амар.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /path/to/directory_env&lt;br /&gt;
cd /path/to/directory_env&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Үүсгэх:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -m venv example-name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Хийсвэр орчин ашиглах ==&lt;br /&gt;
&lt;br /&gt;
Идэвхжүүлэх:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source example-name/bin/activate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идэвхгүй болгох:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deactive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Жич:&lt;br /&gt;
example-name гэсний оронд өөрийн нэрээ өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Software_development]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Python_%D1%85%D0%B8%D0%B9%D1%81%D0%B2%D1%8D%D1%80_%D0%BE%D1%80%D1%87%D0%B8%D0%BD_(Virtual_Environment)_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=549</id>
		<title>Python хийсвэр орчин (Virtual Environment) тохируулах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Python_%D1%85%D0%B8%D0%B9%D1%81%D0%B2%D1%8D%D1%80_%D0%BE%D1%80%D1%87%D0%B8%D0%BD_(Virtual_Environment)_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=549"/>
				<updated>2023-01-10T13:22:02Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: /* Ерөнхий тайлбар */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон өөр python хувилбар, пакежууд тохируулах зэрэгт хийсвэр орчин үүсгэж тохируулах шаардлага гардаг.&lt;br /&gt;
Доорх байдлаар хялбархан шийдэж болно.&lt;br /&gt;
&lt;br /&gt;
== Шинэчлэх, тохируулах ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get -y upgrade&lt;br /&gt;
&lt;br /&gt;
python3 -V&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install build-essential libssl-dev libffi-dev python-dev&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install -y python3-pip python3-venv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Хийсвэр орчин үүсгэх ==&lt;br /&gt;
&lt;br /&gt;
Орчнуудаа нэг хавтсанд үүсгэвэл дараа нь цэгцтэй амар.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /path/to/directory_env&lt;br /&gt;
cd /path/to/directory_env&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Үүсгэх:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -m venv example-name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идэвхжүүлэх:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source example-name/bin/activate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
example-name гэсний оронд өөрийн нэрээ өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Идэвхгүй болгох:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deactive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Software_development]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	<entry>
		<id>https://wiki.dusal.net/index.php?title=Python_%D1%85%D0%B8%D0%B9%D1%81%D0%B2%D1%8D%D1%80_%D0%BE%D1%80%D1%87%D0%B8%D0%BD_(Virtual_Environment)_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=548</id>
		<title>Python хийсвэр орчин (Virtual Environment) тохируулах</title>
		<link rel="alternate" type="text/html" href="https://wiki.dusal.net/index.php?title=Python_%D1%85%D0%B8%D0%B9%D1%81%D0%B2%D1%8D%D1%80_%D0%BE%D1%80%D1%87%D0%B8%D0%BD_(Virtual_Environment)_%D1%82%D0%BE%D1%85%D0%B8%D1%80%D1%83%D1%83%D0%BB%D0%B0%D1%85&amp;diff=548"/>
				<updated>2023-01-10T13:21:33Z</updated>
		
		<summary type="html">&lt;p&gt;Almas: Хуудас үүсгэв: &amp;quot; == Ерөнхий тайлбар ==  Нэг сервер дээр олон өөр python хувилбар, пакажууд тохируулах зэрэгт хий...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Ерөнхий тайлбар ==&lt;br /&gt;
&lt;br /&gt;
Нэг сервер дээр олон өөр python хувилбар, пакажууд тохируулах зэрэгт хийсвэр орчин үүсгэж тохируулах шаардлага гардаг.&lt;br /&gt;
Доорх байдлаар хялбархан шийдэж болно.&lt;br /&gt;
&lt;br /&gt;
== Шинэчлэх, тохируулах ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get -y upgrade&lt;br /&gt;
&lt;br /&gt;
python3 -V&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install build-essential libssl-dev libffi-dev python-dev&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install -y python3-pip python3-venv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Хийсвэр орчин үүсгэх ==&lt;br /&gt;
&lt;br /&gt;
Орчнуудаа нэг хавтсанд үүсгэвэл дараа нь цэгцтэй амар.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /path/to/directory_env&lt;br /&gt;
cd /path/to/directory_env&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Үүсгэх:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -m venv example-name&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Идэвхжүүлэх:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source example-name/bin/activate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
example-name гэсний оронд өөрийн нэрээ өгөөрэй.&lt;br /&gt;
&lt;br /&gt;
Идэвхгүй болгох:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deactive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Ангилал:Зааварчилгаа]]&lt;br /&gt;
[[Ангилал:Software_development]]&lt;/div&gt;</summary>
		<author><name>Almas</name></author>	</entry>

	</feed>