LINUX.ORG.RU
ФорумAdmin

nginx+apache доступ по ип и домену в разные директории

 , , ,


0

1

Добрый день.

Подскажите как в этой связке реализовать доступ по домену и ип. Те необходимо если с ип идёт запрос тогда доступ в одну директорию, если на домен тогда на другую.

К примеру идёт запрос на ип 1.1.1.1 тогда root /var/www/, если на домен тогда root /var/www/domain.com .

Пробовал по разному делать, получается либо по домену всё обрабатывается, либо по ип. Разделить не получается.

Когфиги пока не даю, если надо будет выложу.


Это называется виртуалхосты. Создаешь нужное количество записей:

server { listen 89.253.243.244:80; server_name domain.com; root /var/www/domain.com/; }

а айпишник слушает дефолтный сервер. Если к тебе придут по домену, nginx определит его и найдет server_name соответствующий, если такого нету - сработает дефолт.

BaBL ★★★★★
()
Ответ на: комментарий от BaBL

Как раз в этом проблема, виртуалхосты созданы

Сам конфиг

user apache;
worker_processes  1;

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

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    #server_names_hash_bucket_size  64;
    #server_names_hash_max_size 512;
    server_names_hash_max_size 2048;
    server_names_hash_bucket_size 512;

    access_log  /var/log/nginx/access.log;
    #access_log        off;
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;

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

Виртуалхосты

server {
        listen 80;
        #listen 443 default ssl;
        server_name     www.domain1.com domain1.com;
        #server_name _;
        root            /var/www/html/domain.com/;
        index           index.html index.htm index.php index.php4 index.php5 index.asp;
.................

cat sites-avaibl/default
server {
        listen   80;
        server_name  localhost;

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

        location / {
                proxy_pass         http://127.0.0.1:8080;
                proxy_redirect     off;
                #proxy_set_header X-Forwarded-for $remote_addr;
                proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
                proxy_set_header   Host             $host;
                proxy_set_header   X-Real-IP        $remote_addr;

                client_max_body_size       1024m;
                client_body_buffer_size    128k;

                client_body_temp_path      /var/tmp/nginx;

                proxy_connect_timeout      120;
                proxy_send_timeout         120;
                proxy_read_timeout         120;

                proxy_buffer_size          4k;
                proxy_buffers              4 32k;
                proxy_busy_buffers_size    64k;
                proxy_temp_file_write_size 64k;

                proxy_temp_path            /var/tmp/nginx;

                log_not_found           off;
        }

}

И ещё в httpd.conf добавленно

<VirtualHost 127.0.0.1:8080>
        ServerName www.domain1.com
        ServerAlias www.domain1.com domain1.com
        ServerAdmin webmaster@domain1.com
        DocumentRoot /var/www/html/domain1.com
          <Directory /var/www/html/domain1.com>
                Options +Includes -Indexes
        </Directory>
</VirtualHost>

При таком конфиге при заходе по ип он открывается как домен.

UserQ
() автор топика
Ответ на: комментарий от UserQ

ну, начнем с того, что у вас не только nginx, но и apache. К тому же, настройки апач вы полностью так же не привели. Есть ли у него секция, обрабатывающая не domain.com, которая могла бы быть дефолтной?

пока что я вижу, что вы локалхост проксируете на апач, у апача только один вхост на домен и вы удивляетесь почему вам отдается домен по локалхосту.

т.е. вы вошли на локалхост, без домена, обратились к апачу, у которого такого нету и он в качестве дефолтного отдал домен.

Приводите полные конфиги, а пока это гадание на кофейной гуще.

BaBL ★★★★★
()
Ответ на: комментарий от BaBL
ServerTokens OS

ServerRoot "/etc/httpd"

PidFile run/httpd.pid

Timeout 120

KeepAlive Off

MaxKeepAliveRequests 100

KeepAliveTimeout 15






<IfModule itk.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

Listen 8080

LoadModule auth_basic_module modules/mod_auth_basic.so
..........


Include conf.d/*.conf


User apache
Group apache


ServerAdmin root@localhost


UseCanonicalName Off

DocumentRoot "/var/www/html"

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>


<Directory "/var/www/html">

    Options Indexes FollowSymLinks

    AllowOverride All

    Order allow,deny
    Allow from all

</Directory>

<IfModule mod_userdir.c>
    UserDir disabled

</IfModule>


DirectoryIndex index.html index.html.var

AccessFileName .htaccess

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

TypesConfig /etc/mime.types

DefaultType text/plain

<IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
</IfModule>

HostnameLookups Off



ErrorLog logs/error_log

LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent




CustomLog logs/access_log combined

ServerSignature On

Alias /icons/ "/var/www/icons/"

<Directory "/var/www/icons">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<IfModule mod_dav_fs.c>
    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb
</IfModule>

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>



IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

.....................

ForceLanguagePriority Prefer Fallback

AddDefaultCharset UTF-8

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

AddHandler type-map var

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Alias /error/ "/var/www/error/"

<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    <Directory "/var/www/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>


</IfModule>
</IfModule>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully


Include /usr/local/ispmgr/etc/ispmgr.inc
UserQ
() автор топика
Ответ на: комментарий от UserQ

Это бесполезно. Сказано же: кидай все конфиги, тот что ты сейчас приложил в твоей проблеме вообще бесполезен.

BaBL ★★★★★
()
Ответ на: комментарий от BaBL

Вроде все конфиги привёл. Конфиг апача

ServerTokens OS

ServerRoot "/etc/httpd"

PidFile run/httpd.pid

Timeout 120

KeepAlive Off

MaxKeepAliveRequests 100

KeepAliveTimeout 15

<IfModule itk.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

Listen 8080

LoadModule auth_basic_module modules/mod_auth_basic.so
..........


Include conf.d/*.conf


User apache
Group apache


ServerAdmin root@localhost


UseCanonicalName Off

DocumentRoot "/var/www/html"

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>


<Directory "/var/www/html">

    Options Indexes FollowSymLinks

    AllowOverride All

    Order allow,deny
    Allow from all

</Directory>

<IfModule mod_userdir.c>
    UserDir disabled

</IfModule>


DirectoryIndex index.html index.html.var

AccessFileName .htaccess

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

TypesConfig /etc/mime.types

DefaultType text/plain

<IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
</IfModule>

HostnameLookups Off

ErrorLog logs/error_log

LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent



CustomLog logs/access_log combined

ServerSignature On

Alias /icons/ "/var/www/icons/"

<Directory "/var/www/icons">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<IfModule mod_dav_fs.c>
    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb
</IfModule>

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>



IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

.....................

ForceLanguagePriority Prefer Fallback

AddDefaultCharset UTF-8

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

AddHandler type-map var

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Alias /error/ "/var/www/error/"

<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    <Directory "/var/www/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>


</IfModule>
</IfModule>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully


Include /usr/local/ispmgr/etc/ispmgr.inc

<VirtualHost 127.0.0.1:8080>
        ServerName www.domain1.com
        ServerAlias www.domain1.com domain1.com
        ServerAdmin webmaster@domain1.com
        DocumentRoot /var/www/html/domain1.com
          <Directory /var/www/html/domain1.com>
                Options +Includes -Indexes
        </Directory>
</VirtualHost>

Главный конфиг nginx.conf

user apache;
worker_processes  1;

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

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    #server_names_hash_bucket_size  64;
    #server_names_hash_max_size 512;
    server_names_hash_max_size 2048;
    server_names_hash_bucket_size 512;

    access_log  /var/log/nginx/access.log;
    #access_log        off;
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;

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

Часть конфига из директории /etc/nginx/domains/*, где лежат вхосты, ниже там уже ни чего не отсосящиеся к путям и т.п.

server {
        listen 80;
        #listen 443 default ssl;
        server_name     www.domain1.com domain1.com;
        #server_name _;
        root            /var/www/html/domain.com/;
        index           index.html index.htm index.php index.php4 index.php5 index.asp;
.................
}

Конфиг в директории include /etc/nginx/sites-avaibl/*, где описываются общие правила для всех доменов

cat sites-avaibl/default
server {
        listen   80;
        server_name  localhost;

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

        location / {
                proxy_pass         http://127.0.0.1:8080;
                proxy_redirect     off;
                #proxy_set_header X-Forwarded-for $remote_addr;
                proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
                proxy_set_header   Host             $host;
                proxy_set_header   X-Real-IP        $remote_addr;

                client_max_body_size       1024m;
                client_body_buffer_size    128k;

                client_body_temp_path      /var/tmp/nginx;

                proxy_connect_timeout      120;
                proxy_send_timeout         120;
                proxy_read_timeout         120;

                proxy_buffer_size          4k;
                proxy_buffers              4 32k;
                proxy_busy_buffers_size    64k;
                proxy_temp_file_write_size 64k;

                proxy_temp_path            /var/tmp/nginx;

                log_not_found           off;
        }

}

UserQ
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.