Apache nginx доступ по ип и домену

UserQ nginx-forum at nginx.us
Thu Dec 13 20:02:09 UTC 2012


В общем задача такого плана стоит подружить nginx and Apache. А именно
необходимо заставить работать корректно IP и домены. Сейчас проблема состоит
в том что когда подключается IP домены не хотят себя корректно вести, те они
только доступны как указано в конфиге на ип.

Конфиги

Самого nginx

    cat /etc/nginx/nginx.conf
    user www-data;
    worker_processes 4;

    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;

    events {
        worker_connections  1024;
    }

    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;

       ## Proxy
       proxy_redirect off;
       proxy_set_header Host  $host;
       #proxy_set_header X-Real-IP $remote_addr;
       set_real_ip_from  0.0.0.0/0;
       real_ip_header Real-IP;
       real_ip_recursive on;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       client_max_body_size 10m;
       client_body_buffer_size 128k;
       proxy_connect_timeout  90;
       proxy_send_timeout 90;
       proxy_read_timeout   90;
       proxy_buffers 8 16k;
       proxy_buffer_size 32k;

      ## Compression
      gzip on;
      gzip_types text/plain text/css application/x-javascript
                           text/xml application/xml
                           application/xml+rss text/javascript;
      gzip_disable "MSIE [1-6].(?!.*SV1)";

      ### TCP options
      tcp_nodelay on;
      tcp_nopush on;
      keepalive_timeout 10;
      sendfile on;

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
    }



nginx на ип адрес

Код: Выделить всё
    cat /etc/nginx/sites-enabled/ip
    server {
            listen 80;
            server_name 1.1.1.1;
            access_log /var/log/nginx.access_log;

            location ~*
.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$
{
                    root /var/www/html/;
                    index index.html index.php;
                    access_log off;
                    expires 30d;
            }
            location ~ /.ht {
            deny all;
    }
    location / {
    proxy_pass http://127.0.0.1:81/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-for $remote_addr;
    proxy_set_header Host $host;
    proxy_connect_timeout 60;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_redirect off;
    proxy_set_header Connection close;
    proxy_pass_header Content-Type;
    proxy_pass_header Content-Disposition;
    proxy_pass_header Content-Length;
    }
    }



nginx на домен

Код: Выделить всё
    cat /etc/nginx/sites-enabled/domain
    server {

            root /var/www/domain;
            index index.html index.htm index.php;

            server_name domain.com;

       location ~*
.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$
{
          root /var/www/domain/;
          index index.html index.php;
          access_log off;
          expires 30d;
       }
       location ~ /.ht {
          deny all;
       }
        location / {
            proxy_pass http://127.0.0.1:81/;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-for $remote_addr;
          proxy_set_header Host $host;
          proxy_connect_timeout 60;
          proxy_send_timeout 90;
          proxy_read_timeout 90;
          proxy_redirect off;
          proxy_set_header Connection close;
          proxy_pass_header Content-Type;
          proxy_pass_header Content-Disposition;
          proxy_pass_header Content-Length;

        }
    }



на apache

Код: Выделить всё
    cat /etc/apache2/httpd.conf
    ServerName *



apache на ип

Код: Выделить всё
    cat /etc/apache2/sites-enabled/000-default
    <VirtualHost *:81>
            ServerAdmin webmaster at localhost

            DocumentRoot /var/www/html
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
            <Directory /var/www/>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride None
                    Order allow,deny
                    allow from all
            </Directory>

            ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
            <Directory "/usr/lib/cgi-bin">
                    AllowOverride None
                    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                    Order allow,deny
                    Allow from all
            </Directory>

            ErrorLog ${APACHE_LOG_DIR}/error.log

            # Possible values include: debug, info, notice, warn, error,
crit,
            # alert, emerg.
            LogLevel warn

            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>



apache на домен

Код: Выделить всё
    cat /etc/apache2/sites-enabled/domain
    <VirtualHost *:81>
            ServerAdmin webmaster at localhost

            DocumentRoot /var/www/domain
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
            <Directory /var/www/>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride None
                    Order allow,deny
                    allow from all
            </Directory>

            ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
            <Directory "/usr/lib/cgi-bin">
                    AllowOverride None
                    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                    Order allow,deny
                    Allow from all
            </Directory>

            ErrorLog ${APACHE_LOG_DIR}/error.log

            # Possible values include: debug, info, notice, warn, error,
crit,
            # alert, emerg.
            LogLevel warn

            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>



Код: Выделить всё
     cat /etc/apache2/ports.conf
    NameVirtualHost *:81
    Listen 81

    <IfModule mod_ssl.c>
        Listen 443
    </IfModule>

    <IfModule mod_gnutls.c>
        Listen 443
    </IfModule>



Спасибо

PS Надеюсь корректно выразился по поводу моей проблемы. Те заходим по ип
1.1.1.1 показывает всё с директории /var/www/html заходи по домену(ам)
/var/www/domain

PS Стоял чистый nginx +php-fpm работало как надо. Но надо проверить
несколько аспектов как будет работать в такой связке.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,233986,233986#msg-233986



Подробная информация о списке рассылки nginx-ru