VJ
I agree web2py + rocket is a good way to go about this.
But, in the documentation I believe it is recommended to not use Rocket for
a production server. If running on linux I believe nginx is the best place
choice for a web server. Yes, it is more complicated to setup, but in th
end you're going to have a more reliable web stack.
That being said, I have 3 production servers running my app. One uses
nginx (Server A) and the other 2 (Servers B and C) use Rocket. However, I
front-end servers B and C with haproxy to load balance between the two
running rocket. I don't know what the issue is, but at least every few
days I have to restart servers B and C because they lock up. I haven't
been able to find any messages when this happens so I haven't been able to
trouble-shoot yet. My plans are to rebuild these servers with nginx
instead of rocket.
TLDR;
Rocket is great for development work, but I'd recommend using nginx in a
production environment based on the recommendation in the book and on my
own experience.
-Jim
On Friday, April 24, 2020 at 6:00:41 AM UTC-5, VJ Sosa wrote:
>
> Hi Jim and Clemen,
>
> I really appreciate your support and time.
> I'm newbie in python programming, so my idea was to have an easy
> implementation of my wepapp using web2py + Rocket (it was an excelent
> option for me until this issue with Rocket arised).
> So, I have decided to leave Rocket out of the equation and try to move
> into the Apache or Nginx configuration, which implies to include a little
> more stuff,
> so I hope to be able of migrating my webapp soon.
>
> Just in case, if you found any solution for this Rocket issue with Python
> 3 in web2py, it will be welcome. I'm still convinced that Web2py + Rocket
> is the best option for faster development of webapps in Python.
>
> Regards,
> Víctor.
>
>
>
>
>
>
> El viernes, 24 de abril de 2020, 9:57:16 (UTC+2), Clemens escribió:
>>
>> Hello,
>>
>> it seems that there are some problems with rocket under Python 3.x. As
>> posted a few weeks ago I have the following problem:
>>
>> *I've switched my web2py app from python2 to python3. The app itself
>> works fine, but the web2py online debugger doesn't work anymore and is
>> mostly freezing. Sometimes a get the following error message:*
>>
>> *Exception timeout: timeout('timed out',)*
>>
>> *Traceback (most recent call last): File "/usr/lib/python3.6/socket.py"**,
>> line 586, in readinto return self._sock.recv_into(b) socket.timeout: timed
>> out*
>>
>> *My configuration is as follows:*
>>
>> *web2py 2.19.1-stable+timestamp.2020.**03.21.21.49.28 (Running on Rocket
>> 1.2.6, Python 3.6.9), Ubuntu 18.04 LTS*
>>
>> Do you have this problem too? Since this problem also depends on sockets,
>> maybe this is a hint to a solution for "your" problem mentioned here. Of
>> course I hope the solution would solve "my" problem too.
>>
>> In the meantime I've established short script switching between Python
>> 2.x and 3.x. Means, using Python3 as long as I don't have to use the
>> debugger and switching to Python 2 if required. The script is running
>> under Linux. Any interest?
>>
>>
>> Best regards
>>
>> Clemens
>>
>>
>>
>> On Thursday, April 23, 2020 at 10:24:36 PM UTC+2, Jim S wrote:
>>>
>>> VJ
>>>
>>> I just ran a test and can confirm I'm getting the same results as you.
>>>
>>> I just cloned the latest web2py from git.
>>>
>>> I ran under Python 2.7 and it worked fine.
>>> Running under Python 3.7 and I get results like you.
>>>
>>> To do a little debugging, I put a print statement ahead of line 105 in
>>> gluon/rocket.py -> print('socket_tuple', socket_tuple) I get the following:
>>>
>>> Python 2.7
>>> ('sock_tuple', (<socket._socketobject object at 0x7f09d9a4eb40>, (
>>> '127.0.0.1', 32984)))
>>> ('sock_tuple', (<ssl.SSLSocket object at 0x7f09d91f20d0>, ('127.0.0.1',
>>> 32986)))
>>> ('sock_tuple', (<socket._socketobject object at 0x7f09d9a4ed70>, (
>>> '127.0.0.1', 32988)))
>>> ('sock_tuple', (<socket._socketobject object at 0x7f09c84ee750>, (
>>> '127.0.0.1', 32990)))
>>> ('sock_tuple', (<ssl.SSLSocket object at 0x7f09c84ec5d0>, ('127.0.0.1',
>>> 32992)))
>>> ('sock_tuple', (<ssl.SSLSocket object at 0x7f09c84ec350>, ('127.0.0.1',
>>> 32994)))
>>>
>>> Python 3.7
>>> sock_tuple (<socket.socket [closed] fd=-1, family=AddressFamily.AF_INET,
>>> type=SocketKind.SOCK_STREAM, proto=0>, ('127.0.0.1', 33048))
>>> sock_tuple (<ssl.SSLSocket fd=5, family=AddressFamily.AF_INET, type=
>>> SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8000), raddr=(
>>> '127.0.0.1', 33050)>, ('127.0.0.1', 33050))
>>> sock_tuple (<socket.socket [closed] fd=-1, family=AddressFamily.AF_INET,
>>> type=SocketKind.SOCK_STREAM, proto=0>, ('127.0.0.1', 33052))
>>> sock_tuple (<socket.socket [closed] fd=-1, family=AddressFamily.AF_INET,
>>> type=SocketKind.SOCK_STREAM, proto=0>, ('127.0.0.1', 33054))
>>> sock_tuple (<socket.socket [closed] fd=-1, family=AddressFamily.AF_INET,
>>> type=SocketKind.SOCK_STREAM, proto=0>, ('127.0.0.1', 33056))
>>> sock_tuple (<socket.socket [closed] fd=-1, family=AddressFamily.AF_INET,
>>> type=SocketKind.SOCK_STREAM, proto=0>, ('127.0.0.1', 33058))
>>> sock_tuple (<socket.socket [closed] fd=-1, family=AddressFamily.AF_INET,
>>> type=SocketKind.SOCK_STREAM, proto=0>, ('127.0.0.1', 33062))
>>> sock_tuple (<socket.socket [closed] fd=-1, family=AddressFamily.AF_INET,
>>> type=SocketKind.SOCK_STREAM, proto=0>, ('127.0.0.1', 33064))
>>> sock_tuple (<ssl.SSLSocket fd=4, family=AddressFamily.AF_INET, type=
>>> SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8000), raddr=(
>>> '127.0.0.1', 33066)>, ('127.0.0.1', 33066))
>>> sock_tuple (<socket.socket [closed] fd=-1, family=AddressFamily.AF_INET,
>>> type=SocketKind.SOCK_STREAM, proto=0>, ('127.0.0.1', 33068))
>>> sock_tuple (<socket.socket [closed] fd=-1, family=AddressFamily.AF_INET,
>>> type=SocketKind.SOCK_STREAM, proto=0>, ('127.0.0.1', 33070))
>>> sock_tuple (<socket.socket [closed] fd=-1, family=AddressFamily.AF_INET,
>>> type=SocketKind.SOCK_STREAM, proto=0>, ('127.0.0.1', 33072))
>>>
>>> I don't know what's going on, but can confirm that this isn't fixed.
>>>
>>> -Jim
>>>
>>>
>>> On Thursday, April 23, 2020 at 1:03:22 PM UTC-5, VJ Sosa wrote:
>>>>
>>>> Hi,
>>>>
>>>> Thanks for asking:
>>>>
>>>> Web2py Version 2.18.5-stable+timestamp.2019.04.08.04.22.03
>>>>
>>>> Python version: 3.6.9
>>>>
>>>> Regards,
>>>> Víctor
>>>>
>>>> El jueves, 23 de abril de 2020, 19:05:17 (UTC+2), Jim S escribió:
>>>>>
>>>>> What is your version of web2py?
>>>>>
>>>>> -Jim
>>>>>
>>>>> On Thursday, April 23, 2020 at 11:12:02 AM UTC-5, VJ Sosa wrote:
>>>>>>
>>>>>> I have tried the same command, running web2py with python 2.7.17 and
>>>>>> it works:
>>>>>>
>>>>>> python web2py.py -c web2py.crt -k web2py.key -i 0.0.0.0 -p 8080
>>>>>> --nogui -a 'Password'
>>>>>>
>>>>>>
>>>>>> The problem occurs when running web2py with python3.
>>>>>> I found the same discussion in this link < here
>>>>>> <https://www.mail-archive.com/[email protected]/msg170386.html> >,
>>>>>> but it seems that the error still persists.
>>>>>> Any help?
>>>>>>
>>>>>> Regards,
>>>>>> Víctor.
>>>>>>
>>>>>> El jueves, 23 de abril de 2020, 14:55:21 (UTC+2), VJ Sosa escribió:
>>>>>>>
>>>>>>> Hello Everyone,
>>>>>>>
>>>>>>> Maybe this is a silly question, but I run web2py using the following
>>>>>>> command:
>>>>>>>
>>>>>>> python3 web2py.py -i 0.0.0.0 -p 8080 --nogui -a 'Password'
>>>>>>>
>>>>>>> Everything goes well. My application is working . My application
>>>>>>> includes an authentication part,
>>>>>>> and so far it is running on HTTP, so browsers warns me about I'm
>>>>>>> using an insecure conexion . I was ignoring those messages so far..
>>>>>>>
>>>>>>> However, i would like to activate the SSL conexion in the Rocket
>>>>>>> server.
>>>>>>> I tried to execute web2py using the following command:
>>>>>>>
>>>>>>> python3 web2py.py -c web2py.crt -k web2py.key -i 0.0.0.0 -p 8080
>>>>>>> --nogui -a 'Password'
>>>>>>>
>>>>>>> It runs, but when I try to connect to the server (my app) using my
>>>>>>> browser:
>>>>>>> xx.xx.xx.xx:8080/myapp
>>>>>>>
>>>>>>> The browser (Chrome) tells me that it is not possible to connect to
>>>>>>> the site.
>>>>>>> And the server part shows a list of errors, I'm including some of
>>>>>>> them:
>>>>>>> <<<<
>>>>>>> Exception in thread Thread-2:
>>>>>>> Traceback (most recent call last):
>>>>>>> File "/usr/lib/python3.6/threading.py", line 916, in
>>>>>>> _bootstrap_inner
>>>>>>> self.run()
>>>>>>> File "/home/vsosa/Applications/web2py/gluon/rocket.py", line 1268,
>>>>>>> in run
>>>>>>> conn = Connection(*conn)
>>>>>>> File "/home/vsosa/Applications/web2py/gluon/rocket.py", line 105,
>>>>>>> in __init__
>>>>>>> self.socket.settimeout(SOCKET_TIMEOUT)
>>>>>>> OSError: [Errno 9] Bad file descriptor
>>>>>>>
>>>>>>> Exception in thread Thread-3:
>>>>>>> Traceback (most recent call last):
>>>>>>> File "/usr/lib/python3.6/threading.py", line 916, in
>>>>>>> _bootstrap_inner
>>>>>>> self.run()
>>>>>>> File "/home/vsosa/Applications/web2py/gluon/rocket.py", line 1268,
>>>>>>> in run
>>>>>>> conn = Connection(*conn)
>>>>>>> File "/home/vsosa/Applications/web2py/gluon/rocket.py", line 105,
>>>>>>> in __init__
>>>>>>> self.socket.settimeout(SOCKET_TIMEOUT)
>>>>>>> OSError: [Errno 9] Bad file descriptor
>>>>>>>
>>>>>>> <<<
>>>>>>>
>>>>>>> am I missing something?
>>>>>>> is this the right way to execute web2py on Rocket using SSL:
>>>>>>>
>>>>>>> python3 web2py.py -c web2py.crt -k web2py.key -i 0.0.0.0 -p 8080
>>>>>>> --nogui -a 'Password'
>>>>>>>
>>>>>>> Thank you in advance.
>>>>>>>
>>>>>>> Best regards,
>>>>>>> Víctor
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/5a7b2319-d11b-49a7-b3df-e969d20744af%40googlegroups.com.