El dissabte, 22 novembre de 2014 22:58:37 UTC+1, M. Murray va escriure:
>
> I have been reading and learning a lot about Tryton. One thing I have
> noticed is that the trytond communicates with the client using what is
> essentially HTTP. Correct me if I'm wrong please.
>
> The point of this post is to ask the following questions:
>
>
> 1. As far as I know, the default Python (from python.org) doesn't
> support multiple cpu cores. Therefore, even though trytond uses 1 thread
> per user, a single trytond instance will only use a single CPU core.
> Correct?
> 2. Does Trytond communicate with the tryton client using the HTTP?
> 3. Has anyone deployed trytond in production behind HTTP or other
> proxy?
>
>
> In my experiments, I have modified trytond to accept two new options on
> the command line, --jsonrpc-port (-j) and --xmlrpc-port (-x). I then use
> the following script to start 3 instances. The same effect can be achieved
> with 3 different config files.
>
IMHO it's not necessary modify trytond because you could clone trytond.conf
file; and each cfg file add json/xml/webdav port (in your example, 9297
9298 9299
An idea to not clone some sections in cfg is an include but I think is not
possible include some sections from other cfgs (I'm not sure)
For example:
1- Example mytrytond1.cfg :
[jsonrpc]
listen = 8000
[include]
files = /path/mytryton.cfg
2- Example mytrytond1.cfg :
[jsonrpc]
listen = 8001
[include]
files = /path/mytryton.cfg
3- Example mytryton.cfg :
[database]
....
[email]
....
>
> multi-trytond.sh
> #!/bin/bash
>
> MYDIR="$(dirname $0)"
> VENV="${MYDIR}/../envs/env278"
> DB=$1
>
> source ${VENV}/bin/activate
>
> for port in 9297 9298 9299; do
> ${VENV}/bin/trytond -j $port -x $[$port-1000] -c
> $MYDIR/trytond.conf -d $DB \
> --logfile=$MYDIR/log/trytond-${port}.log
> --pidfile=$MYDIR/log/trytond-${port}.pid &
>
> done
>
>
> And then, on the server I have nginx running with this config:
>
> ...
> upstream tryton_jsonrpc {
> server 127.0.0.1:9299;
> server 127.0.0.1:9298;
> server 127.0.0.1:9297;
> }
>
> upstream tryton_xmlrpc {
> server 127.0.0.1:8299;
> server 127.0.0.1:8298;
> server 127.0.0.1:8297;
> }
>
> server {
> listen 8000;
> server_name trytond.myweb;
>
> ssl on;
> ssl_certificate /var/local/trytond/.ssl/master-cert.pem;
> ssl_certificate_key /var/local/trytond/.ssl/master-key.pem
>
>
> location / {
> proxy_pass http://tryton_jsonrpc;
> }
> }
>
> server {
> listen 8069;
> server_name trytond.myweb;
>
> ssl on;
> ssl_certificate /var/local/trytond/.ssl/master-cert.pem;
> ssl_certificate_key /var/local/trytond/.ssl/master-key.pem
>
> location / {
> proxy_pass http://tryton_xmlrpc;
> }
> }
>
>
>
> I am working on a deployment now that will eventually see more than 300
> clients connecting to a single trytond with well over a million party.party
> records. There will be no reports generated on this instance but lots of
> searches and lots of functional fields.
>
> One thing I have noticed in my experiments thus far is that the client
> never hangs. There are times when using tryton -> trytond and after a
> period of inactivity (and laptop suspends), the client would hang and not
> ask for password when I tried an action. However, using the tryton -> nginx
> -> trytond, this doesn't happen (yet).
>
> Based on my role (at work), I know I don't use tryton as much as some
> other folks. So I'm sharing this here to get some comments and, if
> necessary, a proper scolding.
>
Thanks to share your experience.
Remember when install or update a module, you need to restart each trytond
server to active changes.
Regards
Raimon