在同一台服务器上使用Nginx和Apache的潜在问题?

我安装了nginx来处理和apache一起的请求。 之前,apache在80端口上收听,现在我已经切换到nginx监听端口80和apache在一些模糊的端口,并有nginx proxy_pass到Apache,如果请求是非静态内容。

我的nginxconfiguration包含以下内容:

server { listen 80; server_name static.test.domain.com; location / { root /home/test/www/static; index index.html index.htm; } } server { listen 80; server_name domain.com *.domain.com; location / { proxy_set_header Server "testserver"; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://localhost:8800; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } 

apache虚拟主机configuration有以下几点:

 NameVirtualHost *:8800 <VirtualHost *:8800> DocumentRoot /var/www/html ServerName domain.com ServerAlias www.domain.com </VirtualHost> <VirtualHost *:8800> DocumentRoot /home/test/www ServerName test.domain.com </VirtualHost> ... 

我注意到现在请求更快,但我也注意到,即使请求是针对非静态页面的,服务器字段中的所有请求标题都会显示nginx。 这是一个潜在的问题吗? 我已经看到一些服务器在同一个IP上使用nginx,就像我的设置,但服务器字段是不同的(如果是非静态内容请求,则显示Apache,nginx显示为静态)。

另外,我使用APC进行操作码caching,我在我的站点目录中使用了一些redirect规则的.htaccess(我想我需要将一些Apache规则移植到nginx上?是否有必要?)。 我也有一些运行的Java cron脚本(这会妨碍nginx进程吗?)这个新的设置是否会导致潜在的问题?

很多问题,我知道。 但是,在此先感谢!

更多信息:使用nginx 1.0.6与运行在Centos 5 32位上的apache 2.2

我的.htaccess文件(做这些需要移植到Apache?):

 # BEGIN Compress text files <ifModule mod_deflate.c> <filesMatch "\.(css|js|x?html?|php)$"> SetOutputFilter DEFLATE </filesMatch> </ifModule> # END Compress text files # BEGIN Expire headers <ifModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 seconds" ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" ExpiresByType image/png "access plus 2592000 seconds" ExpiresByType image/gif "access plus 2592000 seconds" ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" ExpiresByType text/css "access plus 604800 seconds" ExpiresByType text/javascript "access plus 604800 seconds" ExpiresByType application/javascript "access plus 604800 seconds" ExpiresByType application/x-javascript "access plus 604800 seconds" ExpiresByType application/xhtml+xml "access plus 600 seconds" </ifModule> # END Expire headers # BEGIN Cache-Control Headers <ifModule mod_headers.c> <filesMatch "\.(ico|jpe?g|png|gif|swf)$"> Header set Cache-Control "max-age=2592000, public" </filesMatch> <filesMatch "\.(css)$"> Header set Cache-Control "max-age=604800, public" </filesMatch> <filesMatch "\.(js)$"> Header set Cache-Control "max-age=604800, private" </filesMatch> </ifModule> # END Cache-Control Headers # BEGIN Turn ETags Off <ifModule mod_headers.c> Header unset ETag </ifModule> FileETag None # END Turn ETags Off 

考虑为Apache安装mod_rpaf ,这将帮助您获取Apache访问日志中的客户端的IP地址,而不是服务器的IP地址(从技术上说,nginx请求来自Apache的网页,以便Apache将其IP识别为不带mod_rpaf的客户端IP)。 这是你可以想象的唯一可能的问题,其他的一切看起来都是正确的。 在每个头文件中都有nginx是正确的,因为nginx作为每个网页的前端,包括静态的和dynamic的。