[Seaside] Safari on Leopard Apache post problem
Roger Whitney
whitney at cs.sdsu.edu
Wed Nov 14 22:00:16 UTC 2007
I can report that using the proxy does work - no more problems with
Safari on Leopard. I ended up using two set of proxy rules. One for
the seaside applications and another for the VW web server
configuration pages (see below).
<IfModule mod_proxy.c>
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /registration/configure http://127.0.0.1:2221/configure
ProxyPassReverse /registration/configure http://127.0.0.1:2221/
configure
ProxyPass /registration http://127.0.0.1:2221/registration
ProxyPassReverse /registration http://127.0.0.1:2221/registration
</IfModule>
On Nov 14, 2007, at 9:29 AM, Roger Whitney wrote:
> Boris,
> I found your blog entry on this. I will give it a try. It sure
> looks more complex than what I was doing since I did not have to
> write the perl relay.
>
> On Nov 14, 2007, at 12:59 AM, Boris Popov wrote:
>
>> Hmm, okay, not quite apples to apples. I've always used a simple
>> proxy to a tiny http server or swazoo, not the nasty perl relay
>> hack to ip listener. Any chance you could give that a try? Its a
>> whole lot simpler to set up, can't remember the exact link to a
>> sample though.
>>
>> Cheers!
>>
>> -Boris
>> (Sent from a BlackBerry)
>>
>> ----- Original Message -----
>> From: seaside-bounces at lists.squeakfoundation.org <seaside-
>> bounces at lists.squeakfoundation.org>
>> To: Seaside - general discussion <seaside at lists.squeakfoundation.org>
>> Sent: Tue Nov 13 20:38:03 2007
>> Subject: Re: [Seaside] Safari on Leopard Apache post problem
>>
>> Boris,
>> On the Leopard machine I start with stock Apache config
>> file that
>> ships with Leopard (see below) and add in a separate conf file
>> that is
>> included in the httpd.conf file:
>> ---
>> ScriptAlias /scandia/2008/ "/Library/WebServer/CGI-Executables/
>> scandia.pl/"
>>
>> <Directory /Library/WebServer/CGI-Executables/>
>> Options +FollowSymLinks
>> RewriteEngine on
>> RewriteCond %{HTTP:Authorization} ^(.*)
>> RewriteRule .* - [E=HTTP_AUTHORIZATION:%1]
>> </Directory>
>> ---
>>
>> (Aside: the rewrite rules above do not work to pass the http
>> authorization requests). The scandia.pl file is the perl relay file
>> $visualHome/waveserver/waverelays/perl/visualworks.pl. The /Library/
>> WebServer/CGI-Executables is Apple's CGI-bin directory.
>>
>> The httpd.conf file with some comments removed:
>> ---
>> ServerRoot "/usr"
>>
>> Listen 80
>>
>> LoadModule authn_file_module libexec/apache2/mod_authn_file.so
>> LoadModule authn_dbm_module libexec/apache2/mod_authn_dbm.so
>> LoadModule authn_anon_module libexec/apache2/mod_authn_anon.so
>> LoadModule authn_dbd_module libexec/apache2/mod_authn_dbd.so
>> LoadModule authn_default_module libexec/apache2/mod_authn_default.so
>> LoadModule authz_host_module libexec/apache2/mod_authz_host.so
>> LoadModule authz_groupfile_module libexec/apache2/
>> mod_authz_groupfile.so
>> LoadModule authz_user_module libexec/apache2/mod_authz_user.so
>> LoadModule authz_dbm_module libexec/apache2/mod_authz_dbm.so
>> LoadModule authz_owner_module libexec/apache2/mod_authz_owner.so
>> LoadModule authz_default_module libexec/apache2/mod_authz_default.so
>> LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so
>> LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
>> LoadModule cache_module libexec/apache2/mod_cache.so
>> LoadModule disk_cache_module libexec/apache2/mod_disk_cache.so
>> LoadModule mem_cache_module libexec/apache2/mod_mem_cache.so
>> LoadModule dbd_module libexec/apache2/mod_dbd.so
>> LoadModule dumpio_module libexec/apache2/mod_dumpio.so
>> LoadModule ext_filter_module libexec/apache2/mod_ext_filter.so
>> LoadModule include_module libexec/apache2/mod_include.so
>> LoadModule filter_module libexec/apache2/mod_filter.so
>> LoadModule deflate_module libexec/apache2/mod_deflate.so
>> LoadModule log_config_module libexec/apache2/mod_log_config.so
>> LoadModule log_forensic_module libexec/apache2/mod_log_forensic.so
>> LoadModule logio_module libexec/apache2/mod_logio.so
>> LoadModule env_module libexec/apache2/mod_env.so
>> LoadModule mime_magic_module libexec/apache2/mod_mime_magic.so
>> LoadModule cern_meta_module libexec/apache2/mod_cern_meta.so
>> LoadModule expires_module libexec/apache2/mod_expires.so
>> LoadModule headers_module libexec/apache2/mod_headers.so
>> LoadModule ident_module libexec/apache2/mod_ident.so
>> LoadModule usertrack_module libexec/apache2/mod_usertrack.so
>> #LoadModule unique_id_module libexec/apache2/mod_unique_id.so
>> LoadModule setenvif_module libexec/apache2/mod_setenvif.so
>> LoadModule version_module libexec/apache2/mod_version.so
>> LoadModule proxy_module libexec/apache2/mod_proxy.so
>> LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
>> LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
>> LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
>> LoadModule proxy_ajp_module libexec/apache2/mod_proxy_ajp.so
>> LoadModule proxy_balancer_module libexec/apache2/
>> mod_proxy_balancer.so
>> LoadModule ssl_module libexec/apache2/mod_ssl.so
>> LoadModule mime_module libexec/apache2/mod_mime.so
>> LoadModule dav_module libexec/apache2/mod_dav.so
>> LoadModule status_module libexec/apache2/mod_status.so
>> LoadModule autoindex_module libexec/apache2/mod_autoindex.so
>> LoadModule asis_module libexec/apache2/mod_asis.so
>> LoadModule info_module libexec/apache2/mod_info.so
>> LoadModule cgi_module libexec/apache2/mod_cgi.so
>> LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
>> LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
>> LoadModule negotiation_module libexec/apache2/mod_negotiation.so
>> LoadModule dir_module libexec/apache2/mod_dir.so
>> LoadModule imagemap_module libexec/apache2/mod_imagemap.so
>> LoadModule actions_module libexec/apache2/mod_actions.so
>> LoadModule speling_module libexec/apache2/mod_speling.so
>> LoadModule userdir_module libexec/apache2/mod_userdir.so
>> LoadModule alias_module libexec/apache2/mod_alias.so
>> LoadModule rewrite_module libexec/apache2/mod_rewrite.so
>> LoadModule bonjour_module libexec/apache2/mod_bonjour.so
>> #LoadModule php5_module libexec/apache2/libphp5.so
>> #LoadModule fastcgi_module libexec/apache2/mod_fastcgi.so
>>
>> <IfModule !mpm_netware_module>
>>
>> User www
>> Group www
>> </IfModule>
>>
>>
>> ServerAdmin you at example.com
>>
>>
>> DocumentRoot "/Library/WebServer/Documents"
>>
>> <Directory />
>> Options FollowSymLinks
>> AllowOverride None
>> Order deny,allow
>> Deny from all
>> </Directory>
>>
>> <Directory "/Library/WebServer/Documents">
>> Options Indexes FollowSymLinks MultiViews
>> AllowOverride None
>> Order allow,deny
>> Allow from all
>>
>> </Directory>
>>
>> <IfModule dir_module>
>> DirectoryIndex index.html
>> </IfModule>
>>
>>
>> <FilesMatch "^\.([Hh][Tt]|[Dd][Ss]_[Ss])">
>> Order allow,deny
>> Deny from all
>> Satisfy All
>> </FilesMatch>
>>
>>
>> <Files "rsrc">
>> Order allow,deny
>> Deny from all
>> Satisfy All
>> </Files>
>> <DirectoryMatch ".*\.\.namedfork">
>> Order allow,deny
>> Deny from all
>> Satisfy All
>> </DirectoryMatch>
>>
>>
>> ErrorLog /private/var/log/apache2/error_log
>>
>> LogLevel warn
>>
>> <IfModule log_config_module>
>>
>> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-
>> Agent}i\"" combined
>> LogFormat "%h %l %u %t \"%r\" %>s %b" common
>>
>> <IfModule logio_module>
>> # You need to enable mod_logio.c to use %I and %O
>> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-
>> Agent}i\" %I %O" combinedio
>> </IfModule>
>>
>> #
>> # The location and format of the access logfile (Common Logfile
>> Format).
>> # If you do not define any access logfiles within a
>> <VirtualHost>
>> # container, they will be logged here. Contrariwise, if you
>> *do*
>> # define per-<VirtualHost> access logfiles, transactions will be
>> # logged therein and *not* in this file.
>> #
>> CustomLog /private/var/log/apache2/access_log common
>>
>> #
>> # If you prefer a logfile with access, agent, and referer
>> information
>> # (Combined Logfile Format) you can use the following directive.
>> #
>> #CustomLog /private/var/log/apache2/access_log combined
>> </IfModule>
>>
>> <IfModule alias_module>
>>
>> #
>> # ScriptAlias: This controls which directories contain server
>> scripts.
>> # ScriptAliases are essentially the same as Aliases, except that
>> # documents in the target directory are treated as
>> applications and
>> # run by the server when requested rather than as documents sent
>> to the
>> # client. The same rules about trailing "/" apply to
>> ScriptAlias
>> # directives as to Alias.
>> #
>> ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/
>> WebServer/CGI-Executables/$1"
>>
>> </IfModule>
>>
>> <IfModule cgid_module>
>>
>> </IfModule>
>>
>> #
>> # "/Library/WebServer/CGI-Executables" should be changed to whatever
>> your ScriptAliased
>> # CGI directory exists, if you have that configured.
>> #
>> <Directory "/Library/WebServer/CGI-Executables">
>> AllowOverride None
>> Options None
>> Order allow,deny
>> Allow from all
>> </Directory>
>>
>> DefaultType text/plain
>>
>> <IfModule mime_module>
>>
>> TypesConfig /private/etc/apache2/mime.types
>>
>> AddType application/x-compress .Z
>> AddType application/x-gzip .gz .tgz
>>
>> #
>> # AddHandler allows you to map certain file extensions to
>> "handlers":
>> # actions unrelated to filetype. These can be either built into
>> the server
>> # or added with the Action directive (see below)
>> #
>> # To use CGI scripts outside of ScriptAliased directories:
>> # (You will also need to add "ExecCGI" to the "Options"
>> directive.)
>> #
>> #AddHandler cgi-script .cgi
>>
>> # For type maps (negotiated resources):
>> #AddHandler type-map var
>>
>> #
>> # Filters allow you to process content before it is sent to the
>> client.
>> #
>> # To parse .shtml files for server-side includes (SSI):
>> # (You will also need to add "Includes" to the "Options"
>> directive.)
>> #
>> #AddType text/html .shtml
>> #AddOutputFilter INCLUDES .shtml
>> </IfModule>
>>
>> #
>> # The mod_mime_magic module allows the server to use various hints
>> from the
>> # contents of the file itself to determine its type. The
>> MIMEMagicFile
>> # directive tells the module where the hint definitions are located.
>> #
>> #MIMEMagicFile /private/etc/apache2/magic
>>
>> #
>> # Customizable error responses come in three flavors:
>> # 1) plain text 2) local redirects 3) external redirects
>> #
>> # Some examples:
>> #ErrorDocument 500 "The server made a boo boo."
>> #ErrorDocument 404 /missing.html
>> #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
>> #ErrorDocument 402 http://www.example.com/subscription_info.html
>> #
>>
>> #
>> # EnableMMAP and EnableSendfile: On systems that support it,
>> # memory-mapping or the sendfile syscall is used to deliver
>> # files. This usually improves server performance, but must
>> # be turned off when serving from networked-mounted
>> # filesystems or if support for these functions is otherwise
>> # broken on your system.
>> #
>> #EnableMMAP off
>> #EnableSendfile off
>>
>> # Supplemental configuration
>> #
>> # The configuration files in the /private/etc/apache2/extra/
>> directory
>> can be
>> # included to add extra features or to modify the default
>> configuration of
>> # the server, or you may simply copy their contents here and
>> change as
>> # necessary.
>>
>> # Server-pool management (MPM specific)
>> Include /private/etc/apache2/extra/httpd-mpm.conf
>>
>> # Multi-language error messages
>> #Include /private/etc/apache2/extra/httpd-multilang-errordoc.conf
>>
>> # Fancy directory listings
>> Include /private/etc/apache2/extra/httpd-autoindex.conf
>>
>> # Language settings
>> Include /private/etc/apache2/extra/httpd-languages.conf
>>
>> # User home directories
>> Include /private/etc/apache2/extra/httpd-userdir.conf
>>
>> # Real-time info on requests and configuration
>> #Include /private/etc/apache2/extra/httpd-info.conf
>>
>> # Virtual hosts
>> #Include /private/etc/apache2/extra/httpd-vhosts.conf
>>
>> # Local access to the Apache HTTP Server Manual
>> Include /private/etc/apache2/extra/httpd-manual.conf
>>
>> # Distributed authoring and versioning (WebDAV)
>> #Include /private/etc/apache2/extra/httpd-dav.conf
>>
>> # Various default settings
>> #Include /private/etc/apache2/extra/httpd-default.conf
>>
>> # Secure (SSL/TLS) connections
>> #Include /private/etc/apache2/extra/httpd-ssl.conf
>> #
>> # Note: The following must must be present to support
>> # starting without SSL on platforms with no /dev/random
>> equivalent
>> # but a statically compiled-in mod_ssl.
>> #
>> <IfModule ssl_module>
>> SSLRandomSeed startup builtin
>> SSLRandomSeed connect builtin
>> </IfModule>
>>
>> Include /private/etc/apache2/other/*.conf
>> On Nov 13, 2007, at 6:22 PM, Boris Popov wrote:
>>
>> > That's pretty much the same configuration I'm using and we haven't
>> > seen
>> > this problem yet. Could you perhaps post your Apache config so we
>> > could
>> > compare?
>> >
>> >
>> >> -----Original Message-----
>> >> From: seaside-bounces at lists.squeakfoundation.org [mailto:seaside-
>> >> bounces at lists.squeakfoundation.org] On Behalf Of Roger Whitney
>> >> Sent: Tuesday, November 13, 2007 4:20 PM
>> >> To: Seaside - general discussion
>> >> Subject: [Seaside] Safari on Leopard Apache post problem
>> >>
>> >> I have a problem with the new Safari on Leopard (Mac OS 10.5)
>> >> accessing a Seaside application running behind Apache and hope
>> >> someone
>> >> can shed some light on it.
>> >>
>> >> I am using Seaside 2.8 on VW 7.5. When I run Seaside as a
>> standalone
>> >> web server in VW (the tiny Web server in VW) Safari in Leopard
>> has no
>> >> problems accessing the Seaside application. When I run the Seaside
>> >> application behind Apache there is no problem with Firefox,
>> Opera and
>> >> older versions of Safari accessing the application.
>> >>
>> >> When I use Safari 3.0.4, which comes on Leopard, there are
>> problems
>> >> with posts from a seaside page. The problem occurs not only on my
>> >> code
>> >> but in Functional Seaside Test Suite examples. When I click on a
>> >> button to submit a form the bowser says it is contacting the
>> server
>> >> and seems to wait for ever without timing out. On the server
>> side I
>> >> first get the POST request. According to the log file 15 seconds
>> >> later
>> >> I get a GET request. The server and client are running on the same
>> >> machine (Dual Core), so there is no network delay. A few seconds
>> >> later
>> >> a second GET request comes from Safari. If I stop the request from
>> >> Safari and then have it reload the page I do get the reply to the
>> > post.
>> >>
>> >> Since Safari 3.0.4 does work when talking directly to the VW web
>> >> server there is some problem with Safari 3.0.4 and Apache. Does
>> >> anyone
>> >> have any idea how to configure Apache to avoid this? Unfortunately
>> >> some of my users can only access port 80, so I have to run behind
>> >> Apache.
>> >>
>> >>
>> >>
>> >> ----
>> >> Roger Whitney Department of Computer Science
>> >> whitney at cs.sdsu.edu San Diego State University
>> >> http://www.eli.sdsu.edu/ San Diego, CA 92182-7720
>> >>
>> >>
>> >> _______________________________________________
>> >> seaside mailing list
>> >> seaside at lists.squeakfoundation.org
>> >> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>> > _______________________________________________
>> > seaside mailing list
>> > seaside at lists.squeakfoundation.org
>> > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>> >
>> >
>>
>>
>>
>> ----
>> Roger Whitney Department of Computer Science
>> whitney at cs.sdsu.edu San Diego State University
>> http://www.eli.sdsu.edu/ San Diego, CA 92182-7720
>>
>>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
>
> ----
> Roger Whitney Department of Computer Science
> whitney at cs.sdsu.edu San Diego State University
> http://www.eli.sdsu.edu/ San Diego, CA 92182-7720
>
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
----
Roger Whitney Department of Computer Science
whitney at cs.sdsu.edu San Diego State University
http://www.eli.sdsu.edu/ San Diego, CA 92182-7720
More information about the seaside
mailing list