Because I'm a lucky man, i'm convinced to my hosting provider to setup
python so I can play with django ;)
I have a reseller account, so I plan to reuse my first django website
(a portal of colombian food)
But, this guys are asking how setup the thing. Rigth now, this guys are
already installed python
I know this:
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B276494
But is a instruction from MS... so how can be good (no! is not becuase
is from MS: serving CGI this way is bad performance!)
I want to provide a good advice: My parent hosting company is given to
me a *great* favor so I don't wanna put the support staff in
troubles... This is for run in a shared hosting environemnt so must be
bullet proof.
Because that, I think is impossible to demand a apache config here.
So, what are the alternatives? (excluding getting a linux box)
- Is FastCGI the rigth answer?
- Existe a stable ISAPI dll?
You've set up some very odd and difficult requirements.
you can run apache2.2 on windows quite well.
if IIS has a proxy type solution you could just run apache2.2 on a
separate port and have it handle the django side of things.
otherwise you could have apache become the front-end webserver and
then delegate the requests which require ISS to the proxy.
something like in apache
namevirtualhost *
<virtualhost *>
servername i-need-iis
proxypass / http://127.0.0.1:3000/
proxypassreverse / http://127.0.0.1:3000/
</virtualhost>
where IIS would run on port 3000.
regards
So, after all, not was windows the easy and linux the ugly!
The first option... that not mean that a URL become:
www.mysite:3000/index?
Is fine for development or in-house websites but I'm planing run
comercial websites...
IIS would need to forward the request to the port and then push the
response back to you
something like this http://www.saltypickle.com/Home/16 is what I am
talking about
greetings,
Giorgi
And I think is very confusing. Is not starnge then people fear to test
python for web hosting: is far more dificult that any other web-enable
language in the deploy side of the things...
I read the ActiveState site: Don't say anything.
The PyISAPI project not have anything about how configure the thing
The only thing I can figure is (for FastCGI)
http://rubyforiis.sosukodo.org/rubyforiis/documentation/installationinstructionsforversion01
About install ruby on IIS.. have some sense, but only have in return
blank pages...
I check the WSGI support and maybe I can figure something but the
requeriment to build a .asp page for EACH Url is insane... and the
thing about replicate the url rewriting is not fun...
I only found people that say was able to use IIS with fastcgi or that
say WSGI is the way for python but nothing concrete yet...
In your own self-interest: you've said you plan to run commercial
sites on this platform. You have a well-known scaleable and
community-supported configuration (apache+mod_python) on the one hand,
and an alpha- or beta-quality IIS shoehorn on the other hand. Is
hosting such a significant cost that you couldn't switch to a better
configuration?
I have the option to get Linux as a fallback.
The reason? I have everything now under this package, the databases,
the sites, the expertise. I have almost zero experience in run linux
and configure this...
Anyway, despite the fact if I go to Linux or not, I think that persue
the option of easy to run under IIS can help python/django in the
exposure side of the things...
Take in account that if something is under IIS is because run also
ASP/ASP.NET and have some investiment here...
Add another web server is hard to sell...
Shouldn't ever be a fallback, it should be the primary choice - unless
you're fond of having your webserver compromised... (speaking from
experience of setting up IIS and within 3 minutes of it being on the net
with the latest updates it being backdoored and viruses roaming free...)
> The reason? I have everything now under this package, the databases,
> the sites, the expertise. I have almost zero experience in run linux
> and configure this...
All eggs, one basket? Sounds like a good way to run a business there.
> Anyway, despite the fact if I go to Linux or not, I think that persue
> the option of easy to run under IIS can help python/django in the
> exposure side of the things...
Not at the expense of doing more useful things, like finishing off for
the 1.0 release!
> Take in account that if something is under IIS is because run also
> ASP/ASP.NET and have some investiment here...
Or because the space is going cheap because no one else wants to touch
it with a barge pole...
> Add another web server is hard to sell...
Really? I've not noticed that, but the I'm a single user and have 3 web
servers in different places.
Thanks,
Brett.
I've done it. It works fine. And then I woke up and installed Apache
and turned off the IIS service.
Note that if you are stuck on Windows, Apache + mod_python + MySQL +
Django works very well. I run that at work and do a lot of my personal
Django development on that and then just "svn up" and "service httpd
restart" on my Linux box to roll out changes.
They speak German.
> Note that if you are stuck on Windows, Apache + mod_python + MySQL +
> Django works very well.
Doesn't pre-forking apache on windows scale badly due to window's high
process startup cost? I guess it'd depend how often you recycle your
httpd processes...
Note that if you are stuck on Windows, Apache + mod_python + MySQL +
Django works very well.
Doesn't pre-forking apache on windows scale badly due to window's high
process startup cost? I guess it'd depend how often you recycle your
httpd processes...
That is YOUR experience. My web server never have that kind of
troubles. I have my small developer company with Windows 2003 and I
expose my svn, and other 3/4 internal websites. I don't have problems
with viruses or hacking and run well all this time.
I know that windows by default can be more insecure. But that is not my
experience and that is not the point. The point is: Is possible run
well django/python under IIS, yes or not?
> All eggs, one basket? Sounds like a good way to run a business there.
The other option is try another basket I DON'T KNOW and lets see.
I don't know why the rude acctitude... I'm a former Windows Developer
for 7 years and found a compelling reason to try python and put it for
my company. I'm risking because a)My experience in python is 1 month
2)My experience in django is 2 weeks?
I'm triying to lowe the risk. And if is not possible, I'm willing to
try linux...
For this hosting setup, I don't have problems in the security or
performance arena... but maybe because is the main plataform for
python/django?
I'm more worry about crash or glacial performance.
There were really four reasons I moved from IIS to Apache:
1) Virtual hosting: although you _can_ do virtual hosting on IIS, you
really need IIS6 on Win2k3 to support the host header fields. The
default IIS on XP Pro doesn't allow this and I wanted my dev and prod
environments to behave the same way. Apache's virtual hosting support
is a head and shoulders above IIS, in my opinion.
2) Performance: while I don't have specific numbers at hand, the IIS
configuration (of Django and the MoinMoin wiki) always felt a little
sluggish for what should have been snappy apps. I tried them out under
Apache2 and they felt much more responsive. I can't really say if I was
using IIS in the best way, but I did the quick-and-dirty setup in both
IIS and Apache2 and Apache seemed faster. I especially notice this when
I haven't accessed a page in a while. It seems that IIS takes a while
to "warm up" but once it does its not bad. Apache seems to always be
pretty fast.
3) Consistency: I like that my configuration on Windows and Linux is
very similar now. And I've even been thinking of buying a Mac so that
becomes even more important.
4) Community/documentation: once I decided to start using Python, MySQL
and now Django, I find it a lot easier to find information on the web
for using Apache with those technologies. Its sort of the "go with the
grain" mentality. I didn't want to run into the very kinds of problems
you are now - where its hard to find good examples of how to use the
various technologies you have chosen.
I used to be a C#/ASP.NET guy so I have used IIS quite a bit. Its not
bad, and I haven't had the problems with security that other note - at
least not in any of the more recent versions of Windows and IIS. But I
just find for the development platform I've chose, Apache is a better
fit than IIS. That's all.
I think that using python in a pure CGI setup is responsible in part of
the lack of performance here.
Because that, I'm looking how use fastcgi and/or wsgi here. Also, I
don't see how the common setup of map .py extension for cgi can help
with django (how can execure django/home? how load the settings?)
I have FastCGI installed under IIS... I have a couple of WSGI solutions
too., but I don't figure how can use that...
:(
I look to the rails guys how install ruby on rails under IIS.
I get this:
http://made-of-stone.blogspot.com/2006/01/rails-on-iis-revisited.html
And with
http://urlrewriter.net/index.php/using/installation/windows-server-2003
I was able to get close...
I install FastCGI for windows and configure the fcgi file this way:
from flup.server.fcgi_fork import WSGIServer
#from flup.server.fcgi import WSGIServer
from flup.middleware.gzip import GzipMiddleware
from django.core.handlers.wsgi import WSGIHandler
sys.path.insert(0, 'E:\\Proyectos\\Python\\jhonWeb\\')
os.environ['DJANGO_SETTINGS_MODULE'] = 'jhonWeb.settings'
handler = WSGIHandler()
handler = GzipMiddleware(handler)
WSGIServer(handler).run()
I try to the default way in django site
I setup the urlrewrite like this:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="rewriter"
type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler,
Intelligencia.UrlRewriter" />
</configSections>
<rewriter>
<if url="^(/[^.]+)$" rewrite="jhonWeb.fcgi?$1" />
</rewriter>
<system.web>
<httpModules>
<add
type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter"
name="UrlRewriter" />
</httpModules>
</system.web>
</configuration>
And I get:
The virtual path '/jhonWeb.fcgi' maps to another application, which is
not allowed
I allow the fastcgi.dll for .fcgi files and configure the registry. I
follow the steps of the ruby on rails info I point before.
It's really easy to get going - if you download the newest version
(http://pyisapie.sourceforge.net) you'll see the adapter with the
example Python code.
I did some performance testing with a few different apps included in
Django (I think it was an admin page and one of the hello apps) - I was
getting between 900 and 1700 requests per second. Hope that's good
enough for you ;)
I'm glad I was able to bring the two together so easily, considering
that my focus on the ISAPI part of the project has been so narrow that
I have yet to add tools similar to what Django already has.
Please let me know if you have questions, and enjoy!
- Phillip