[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