правильная настройка прокси на несколько сайтов.
Vladimir Skubriev
vladimir at skubriev.ru
Wed Oct 9 07:53:15 UTC 2013
Прошу прощения за такой простой вопрос.
Есть сервер с настроенным apache и несклькими Virtualhosts внутри ЛВС:
<VirtualHost *:80>
ServerName redmine.example.lab
ServerAlias redmine.examplelab.com
ServerAlias redmine
ServerAlias redmine-dev.example.lab # TODO remove this before
production release
ServerAdmin skubriev at examplelab.com
DocumentRoot /mnt/datafs/redmine/public
ErrorLog /mnt/datafs/log/error-redmine.log
CustomLog /mnt/datafs/log/access-remine.log combined
LogLevel warn
<Directory /mnt/datafs/redmine/public>
# This is unsecure, see
# http://httpd.apache.org/docs/current/misc/security_tips.html
# Protecting System Settings
# This prevents the use of .htaccess files in all directories apart
from those specifically enabled.
AllowOverride all
# Autofind resources(files) is unsecure - disable this extension by
symbol (minus)
Options -MultiViews
</Directory>
# Setup Mercurial Repos
PerlLoadModule Apache2::Redmine
PerlLoadModule Authen::Simple::LDAP
WSGIScriptAlias /hg "/mnt/datafs/config/hgweb.wsgi"
<Location /hg >
#Redmine auth
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler
RedmineDSN "DBI:mysql:database=redmine;host=localhost"
RedmineDbUser "redmine"
RedmineDbPass "redmine"
AuthType Basic
AuthName "exampleLab Mercurial Repository"
Require valid-user
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerName git.example.lab
ServerAlias git.examplelab.com
ServerAlias git
ServerAdmin skubriev at examplelab.com
ErrorLog /mnt/datafs/log/error-git.log
CustomLog /mnt/datafs/log/access-git.log combined
LogLevel warn
SetEnv GIT_PROJECT_ROOT /mnt/datafs/repos/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias / /usr/lib/git-core/git-http-backend/
# Load Redmine.pm
PerlLoadModule Apache2::Redmine
<Location "/">
AuthType Basic
AuthName "examplelab Redmine git repositories"
AuthUserFile /dev/null
Require valid-user
RedmineGitSmartHttp yes
#Redmine auth
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler
RedmineDSN "DBI:mysql:database=redmine;host=localhost"
RedmineDbUser "redmine"
RedmineDbPass "redmine"
</Location>
</VirtualHost>
На шлюзе стоит nginx со следующей конфигурацией:
upstream backendredmine {
server 192.168.128.11:80;
}
upstream backendredminedev {
server 192.168.128.12:80;
}
server {
listen 80;
server_name redmine.examplelab.com;
access_log /var/log/nginx/redmineproxy.acess.log;
error_log /var/log/nginx/redmineproxy.error.log;
location / {
proxy_pass http://backendredmine;
}
}
server {
# http://habrahabr.ru/post/195808/
listen 443 ssl;
server_name redmine.examplelab.com;
keepalive_timeout 60;
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
#private
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "RC4:HIGH:!aNULL:!MD5:!kEDH";
add_header Strict-Transport-Security 'max-age=604800';
access_log /var/log/nginx/redmineproxy-https.acess.log;
error_log /var/log/nginx/redmineproxy-https.error.log;
location / {
proxy_pass http://backendredminedev;
}
}
Сейчас пользователи работают через 80 порт только:
server {
listen 80;
server_name redmine.examplelab.com;
В дальнейшем мне нужно будет перевести всех на redmine-dev backend и
настроить https. Т.е. чтобы пользователи при обращении
redmine.examplelab.com могли работать как с веб мордой Redmine, с
репозиториями git и hg по HTTP и по HTTPS
Проблема в том, что если я попытаюсь откуда нибудь из Интернет зайти на
https://redmine.examplelab.com, то я почему то попадаю на git и вылазит
окно авторизации. Веб морда редмаин почему то ни когда не открывается.
Я не понимаю, что вообще настраиваю.
Это можно сказать мой третий веб сервер и первый прокси.
Объясните пожалуйста какая взаимосвязь между прокси и сервером внутри
сети на пальцах что-ли.
Что нужно почитать перед тем, как браться настраивать веб сервер? Просто
обычно делаешь все по каким нибудь статьям в Интернет. Спору нет к
результату приходишь. Но ясности понимания работы HTTP это не привносит.
Я конечно в курсе что есть стандарты и в Интернет много информации.
Но возможно существует какая то хорошая статья где принцип работы
разжевывается. Было бы неплохо, если бы эта статья было про проксирование.
Спасибо.
--
С Уважением,
специалист по техническому и программному обеспечению,
системный администратор
Скубриев Владимир
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Россия, Ростовская область, г. Таганрог
тел. моб: +7 (918) 504 38 20
skype: v.skubriev
icq: 214-800-502
www: skubriev.ru
Подробная информация о списке рассылки nginx-ru