www.state-it.info

Gran base de respuestas a las preguntas de los desarrolladores
Header decor

Nginx 1.0.3 — cómo configurar SÓLO para el retroceso de la estática?

bigdogsru 2011-06-01 11:37:22

No se puede configurar Nginx 1.0.3 — vale la pena volverlo a conectar, y de inmediato se ignoran .el htaccess y otros motivos, parece ser que él mismo maneja los archivos php, sin dar a sus апачу.

Configurac tomó de trabajo de 0.8 con otro VPS, allí todo funciona como debe. Configurac se creaba automáticamente панелькой ISPManager — yo de él sólo повыкидывала exceso de hosts, cambié la ruta de acceso a los logs y cambié la IP.

CentOS 5.4, Nginx instalado de CentALT.

He aquí config:

user  nginx;
worker_processes  2;
worker_rlimit_nofile 100000;

error_log   /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
    use epoll;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     on;
    server_tokens   off;
    gzip            on;
    gzip_static     on;
    gzip_comp_level 5;
    gzip_min_length 1024;
    keepalive_timeout  65;
    limit_zone   myzone  $binary_remote_addr  10m;

    # Load config files from the /etc/nginx/conf.d directory
    include /etc/nginx/conf.d/*.conf;



    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  localhost;

    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_timeout  5m;

    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    #    ssl_prefer_server_ciphers   on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

	client_max_body_size 16m;
	log_format  isp '$bytes_sent $request_length';
	
	server {
		listen 50.57.78.248:80;
		server_name dogstudio.su dog-studio.org *.dog-studio.org *.dogstudio.su www.dog-studio.org www.dogstudio.su;
		rewrite	^(/manager/.*)$	https://$host$1	permanent;
		rewrite ^(/manager/.*)$	https://$host$1	permanent;
		error_page 404 = @fallback;
		location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
			proxy_pass http://50.57.78.248:8080;
			proxy_redirect http://dogstudio.su:8080/ /;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Real-IP $remote_addr;
		}
		location / {
			proxy_pass http://50.57.78.248:8080;
			proxy_redirect http://dogstudio.su:8080/ /;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Real-IP $remote_addr;
		}
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
			set $proot "/home/dogstudio/public_html/dogstudio.su/public";
			if ( $host = "dog-studio.org" ) {
				break;
			}
			if ( $host = "dogstudio.su" ) {
				break;
			}
			if ( $host = "www.dog-studio.org" ) {
				break;
			}
			if ( $host = "www.dogstudio.su" ) {
				break;
			}
			if ( $host ~* ^((.*).dog-studio.org)$ ) {
				set $proot /home/dogstudio/public_html/$1/public;
				break;
			}
			if ( $host ~* ^((.*).dogstudio.su)$ ) {
				set $proot /home/dogstudio/public_html/$1/public;
				break;
			}
			access_log /home/dogstudio/public_html/dogstudio.su/log/access.nginx.log;
			root $proot;
		}
		location @fallback {
			proxy_pass http://50.57.78.248:8080;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Real-IP $remote_addr;
		}
	}
}


Lo que está mal?

Allí el sitio en HostCMS (dogstudio.su), si прописываю апачу el puerto 80 y desactivándolo nginx — la pantalla es normal; si прописываю апачу 8080 y ejecuto nginx — genera un error de CMS "No se ha encontrado la clave de licencia". Este mismo sitio con el mismo конфигом en otro VPS dog-studio.org) — funciona como debería habilitado nginx'ohmios.

Total answers: 2

whiteglasses 2011-06-01 12:22:19

nginx no utiliza los archivos .htaccess. Sólo sus configuraciones.

Usted puede detallar pro "y otros motivos, parece ser que él mismo maneja los archivos php, no dándolo apache"el

bigdogsru 2011-06-01 12:26:14

Y ese es el problema. Necesito que él trabajaba sólo para el retroceso de la estática, y todo el resto daba апачу. Sobre otros signos escribió en cuestión, CMS no funciona correctamente. En otro servidor con nginx 0.8 con el mismo конфигом este problema no existe. Порылась aún en la búsqueda — parece que el asunto no es que nginx php procesa los archivos; y en lo que se corta algún tipo de encabezados http...


whiteglasses 2011-06-01 12:45:50

Él no organizó el esquema de apache+nginx, por lo que no puedo asumir, donde la desgracia.

Pero, si el CMS genera un error — así que php funciona. Es necesario hacer que el CMS más en detalle la расказать de error y посмотеть error_log php


crea7or 2011-06-01 14:17:17

El error parece de el cms porque el mismo nginx no sabe manejar php. Tengo nginx así es como está configurado, se da sólo estática y php mastica apache.

Y en general los invito a iniciar el apache en localhost'e y cambiar:

location / {
			proxy_pass http://50.57.78.248:8080;
			proxy_redirect http://dogstudio.su:8080/ /;


en

location / {
			proxy_pass         http://127.0.0.1/;
			proxy_redirect     off;

bigdogsru 2011-06-01 14:24:10

No, el error en los títulos, que nginx da... esto ya se ha aclarado. Todo el array $_SERVER se da distorsionada, en todas partes se pone la IP del visitante. Queda por averiguar — ¿por qué..., el caso en la configuración de la mod_rpaf incluso, y no en nginx?


crea7or 2011-06-01 14:33:05

es posible, configurar nginx'a se ve normal.


bigdogsru 2011-06-01 14:50:57

Exactamente, el asunto era en mod_rpaf!
En su конфиге no necesita de la cadena de RPAFsethostname On

La correcta configuración mod_rpaf:
RPAFenable On
RPAFproxy_ips aquí.ip.servidor

Ahora todo es починилось!

Gracias dirtyHabrBobr, que en личке ayudó расковырять la causa de los problemas.


opium 2011-06-01 18:44:00

Tomo nota de lo que hay en el .htaccess se utilizan айпишники no va seguido correctamente, bastante hgfa su estampa ya después de un tratamiento de este tipo de archivos, no antes. tratamiento mod real ip2


Preguntas relacionadas:

Footer decor

© www.state-it.info | Base of answers to questions for developers and programmers.