zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
Добрый день. Есть несколько сайтов, nginx и apache site1 и site2 Сделал сертификат для одного домена site1 nginx слушает 80 и 443, терминирует ssl только для одного домена - site1 apache слушает 127.0.0.1:81 захожу на site1 - все ок, https работает но по факту получается, что работает и https://site2 (ругаясь ессно на сертификат) и вот это у меня вызывает непонимание - с чего бы вообще отрабатывает https на site2 - он вообщем то и не должен там работать вовсе. насколько я помню, в apache есть default сайт в контексте которого обрабатываются все запросы к доменным именам, которые не были явно заданы. нет ли такого и в nginx? а если есть - то как идеологически правильно "организовать" этот default site и управлять такими запросами? ЗЫ Решение в понимании как nginx обрабатывает запросы http://nginx.org/ru/docs/http/request_processing.html |
corner |
|
Темы:
6
Сообщения:
773
Участник с: 21 июля 2011
|
1. SSL директивы работают в контексте server, нужно, наверное, указать имя сервера. 2. Из вопроса непонятно, что обрабатывает apache (зачем он вообще нужен... при nginx). Возможно, это он "ругается". Т.е., обычно, при таком использовании, nginx отдает статику, apache - динамику, все с одного и того же сайта. Тогда ssl нужно настраивать на обоих серверах. P.S. Nginx уже отлично держит все технологии, так что апач на бэкенде может только тормозить. |
xfilx |
|
Темы:
3
Сообщения:
115
Участник с: 21 сентября 2010
|
nginx уже научился читать .htaccess? |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
xfilxNginX принципиально не читает .htaccess, потому что его требуется читать при каждом обращении к любому файлу в каталоге, а перед этим во всех вышестоящих. Сысоев сказал, что данное действие несовместимо с производительностью, и потому в его сервере этой пакости никогда не будет :) |
corner |
|
Темы:
6
Сообщения:
773
Участник с: 21 июля 2011
|
nginx уже научился читать .htaccess?А зачем он ему??? У него свой mod_rewrite не хуже. И вообще, .htaccess не рекомендуется к привычному вам использованию самим apache. Почитайте документацию. И пост выше. P.S. а перед этим во всех вышестоящих- и после этого. :) |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
*1. SSL директивы работают в контексте server, нужно, наверное, указать имя сервера.* - явно указан site1 апач нужен для динамики, переезд на nginx + php запланирован, миллион реврайтов в htaccess, лень пока переписывать. |
corner |
|
Темы:
6
Сообщения:
773
Участник с: 21 июля 2011
|
Наверное, пора показывать конфиги... |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
по идее, все get запросы не my.site.ru должны дропаться. но даже если забиваю адрес сервера https://192.168.17.202 - проксируется на апач, где обрабатывается, как если бы в директиве ServerName была * server { listen 443; server_name my.site.ru; access_log /var/log/nginx/my.am.access.log; error_log /var/log/nginx/my.am.error.log debug; ssl on; ssl_certificate /etc/keys/server.cert; ssl_certificate_key /etc/keys/private.key; ssl_session_timeout 5m; try_files $uri $uri/ @backend; error_page 404 = @backend; location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|xls|exe|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|docx|xlsx|js)$ { root /var/www/my.site.ru/; index index.html index.php; expires 30d; } location ~ /\.ht { deny all; } location @backend { real_ip_header X-Forwarded-For; proxy_pass http://127.0.0.1:81; proxy_set_header X-Forwarded-for $remote_addr; proxy_set_header X-Real-IP $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; } } |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
балин. разобрался. все жеж русскими буквами написанно http://nginx.org/ru/docs/http/request_processing.html сервером по умолчанию будет первый сервер, что соответствует стандартному поведению nginx по умолчанию. Сервер по умолчанию можно задать явно с помощью параметра default_server в директиве listen: |