Я нашел причину этой проблемы, это блок местоположения, но я не понимаю или не понимаю почему. Это просто обычный блок лакирования и шаблон, который можно найти в global/restrictions.conf
:
Я имею в виду, этот блок даже не имеет операторов и вызвал проблему.
Было бы неплохо, если бы кто-то сделал меня умнее.
Проблема (до того, как вы обнаружите, что вы можете прочитать здесь)
Получите 404 при попытке получить доступ к изображениям хранилища на Gitlab (в браузере).
Я выдвигал это раньше и хотел знать, все ли есть, и даже RAW работает. Но когда дело доходит до изображений, я просто получаю ответ 404 для таких URL: https://git.example.tld/yyy/editor/raw/master/data/images/logo.png
Сначала я подумал, что изображения не выходят из удаленного репозитория, но затем я клонировал репозиторий в другое место на моей локальной машине и увидел, что все изображения все еще существуют и работают там.
Что может вызвать эту проблему?
Я просмотрел лог-файлы github-rails и github-workhorse, чтобы найти сообщение об ошибке. Но ожидайте, что они получат 404, больше ничего не увольняют.
Что я сделал?
Я установил Gitlab CE (v11.10.4) на Debian 9.9 (растяжение) , где также был уже установлен nginx (последний) . Установка была произведена через apt
и настроена так, как вы можете видеть в деталях этой части.
Issue-История:
Переменная-проблема в nginx-конфигурации (решена)
Исправлено путем замены proxy_set_header Upgrade $http_upgrade;
на proxy_set_header Connection "upgrade";
.
Получил только 404. При посещении страницы. (решено)
Исправлено после комментирования последней части nginx-конфигурации и помещения root
в родительскую область.
Нет CSS для FontIcons (решено)
Исправлено после комментария proxy_set_header Connection "upgrade";
Загрузка аватара не показана (решено)
Загрузка работает, файл был на правильном пути машины. Нашел эту проблему и решил ее. Но gitlab-rake gitlab:app:check
обвинил меня впоследствии и представил меня с новыми командами изменения разрешения. Но все же с тех пор это просто работает. Даже после очистки gitlab: кешировать, перенастроить и перезапустить.
- Текущая проблема, которую вы открыли в StackExchange (не решена)
Подробнее
Выход: gitlab-rake gitlab:app:check
Checking GitLab App ...
Git configured correctly? ... yes
Database config exists? ... yes
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
GitLab config up to date? ... yes
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory exists? ... yes
Uploads directory has correct permissions? ... yes
Uploads directory tmp has correct permissions? ... yes
Init script exists? ... skipped (omnibus-gitlab has no init script)
Init script up-to-date? ... skipped (omnibus-gitlab has no init script)
Projects have namespace: ...
xxx / test ... yes
yyy / editor ... yes
Redis version >= 2.8.0? ... yes
Ruby version >= 2.5.3 ? ... yes (2.5.3)
Git version >= 2.18.0 ? ... yes (2.18.1)
Git user has default SSH configuration? ... yes
Active users: ... 1
Checking GitLab App ... Finished
Отфильтрованный вывод: top
307 www-data 20 0 513156 40256 26804 S 0,0 0,7 0:30.73 php-fpm7.1
413 www-data 20 0 513140 40688 27252 S 0,0 0,7 0:28.48 php-fpm7.1
11135 www-data 20 0 513092 40084 26676 S 0,0 0,7 0:04.41 php-fpm7.1
13560 gitlab-+ 20 0 423008 17964 11820 S 0,0 0,3 0:00.35 alertmanager
13576 git 20 0 387328 12172 8776 S 0,0 0,2 0:00.05 gitaly-wrapper
13582 git 20 0 642608 34836 15232 S 0,0 0,6 0:00.99 gitaly
13598 git 20 0 449980 33260 8140 S 0,0 0,5 0:08.78 gitlab-mon
13600 git 20 0 1290172 63492 14852 S 0,0 1,0 0:02.20 ruby
13603 git 20 0 1300416 63924 14844 S 0,0 1,0 0:02.19 ruby
13610 git 20 0 414056 21572 13616 S 0,0 0,4 0:00.12 gitlab-workhors
13628 root 20 0 4276 756 688 S 0,0 0,0 0:00.00 gitlab-logrotat
13634 gitlab-+ 20 0 114272 15040 8976 S 0,0 0,2 0:00.30 node_exporter
13640 gitlab-+ 20 0 243644 14928 9088 S 0,0 0,2 0:00.26 postgres_export
13725 gitlab-+ 20 0 1629984 66220 64368 S 0,0 1,1 0:00.11 postgres
13729 gitlab-+ 20 0 1630120 4092 2240 S 0,0 0,1 0:00.00 postgres
13730 gitlab-+ 20 0 1629984 15692 13836 S 0,0 0,3 0:00.05 postgres
13731 gitlab-+ 20 0 1630120 4092 2240 S 0,0 0,1 0:00.00 postgres
13732 gitlab-+ 20 0 1630532 7180 5104 S 0,0 0,1 0:00.00 postgres
13733 gitlab-+ 20 0 33136 4916 2944 S 0,0 0,1 0:00.05 postgres
13736 gitlab-+ 20 0 704836 171360 29448 S 0,0 2,8 0:05.83 prometheus
13747 gitlab-+ 20 0 41460 5944 2720 S 0,0 0,1 0:01.80 redis-server
13751 gitlab-+ 20 0 254264 13716 7444 S 0,0 0,2 0:00.18 redis_exporter
13759 git 20 0 967164 440912 18244 S 0,0 7,2 0:27.27 bundle
13772 git 20 0 18100 3000 2568 S 0,0 0,0 0:00.15 gitlab-unicorn-
13790 git 20 0 704956 416880 16824 S 0,0 6,8 0:23.84 bundle
13796 gitlab-+ 20 0 1641188 25504 21076 S 0,0 0,4 0:00.25 postgres
13797 gitlab-+ 20 0 1639636 21296 17984 S 0,0 0,3 0:00.10 postgres
13798 gitlab-+ 20 0 1640376 23264 19936 S 0,0 0,4 0:00.16 postgres
13799 gitlab-+ 20 0 1640088 22644 19012 S 0,0 0,4 0:00.25 postgres
13868 git 20 0 861932 426076 13332 S 0,0 7,0 0:01.80 bundle
13871 git 20 0 864092 424720 15004 S 0,0 6,9 0:02.88 bundle
13874 git 20 0 864348 421884 15052 S 0,0 6,9 0:02.71 bundle
13883 gitlab-+ 20 0 1641836 28584 23760 S 0,0 0,5 0:00.12 postgres
13931 gitlab-+ 20 0 1641568 25860 21784 S 0,0 0,4 0:00.06 postgres
14040 gitlab-+ 20 0 1641548 27436 22908 S 0,0 0,4 0:00.10 postgres
14399 gitlab-+ 20 0 1640044 23452 19968 S 0,0 0,4 0:00.01 postgres
14823 gitlab-+ 20 0 1640084 20868 17608 S 0,0 0,3 0:00.01 postgres
14871 git 20 0 4184 648 588 S 0,0 0,0 0:00.00 sleep
16004 root 20 0 161400 2544 52 S 0,0 0,0 0:00.00 nginx
16005 www-data 20 0 161944 8744 5428 S 0,0 0,1 0:03.45 nginx
16006 www-data 20 0 161884 8484 5412 S 0,0 0,1 0:01.63 nginx
16851 mysql 20 0 1932868 123616 19356 S 0,0 2,0 2:06.78 mysqld
20095 root 20 0 508136 53216 44844 S 0,0 0,9 0:39.46 php-fpm7.1
Конфигурация
Файл: passwd
(только соответствующие части)
git : x : 1000 : 1000 : ,,, : /var/opt/gitlab : /bin/sh
gitlab-www : x : 999 : 998 : : /var/opt/gitlab/nginx : /bin/false
gitlab-redis : x : 998 : 997 : : /var/opt/gitlab/redis : /bin/false
gitlab-psql : x : 997 : 996 : : /var/opt/gitlab/postgresql : /bin/sh
gitlab-prometheus : x : 996 : 995 : : /var/opt/gitlab/prometheus : /bin/sh
www-data : x : 33 : 33 : www-data : /var/www : /usr/sbin/nologin
Конфигурация Gitlab: gitlab.rb
### GitLab configuration settings
external_url 'https://git.example.tld'
nginx['enable'] = false
web_server['external_users'] = ['www-data']
gitlab_rails['gitlab_default_projects_features_builds'] = false
Конфигурация Nginx VHost: gitlab.conf
upstream gitlab-workhorse {
server unix:/var/opt/gitlab/gitlab-workhorse/socket;
}
server {
listen 80;
server_name git.exmaple.tld;
location ~ .well-known/acme-challenge/ {
root /var/www/letsencrypt;
default_type text/plain;
}
location / {
return 301 https://git.exmaple.tld$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name git.exmaple.tld;
access_log /var/log/gitlab_access.log;
error_log /var/log/gitlab_error.log warn;
root /opt/gitlab/embedded/service/gitlab-rails/public;
ssl on;
ssl_certificate /etc/letsencrypt/live/git.exmaple.tld/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/git.exmaple.tld/privkey.pem; # managed by Certbot
# include global/secure_ssl.conf; # CHANGED: Unknown File
include global/restrictions.conf;
client_max_body_size 250M;
index index.php;
# Additional rules go here.
location / {
client_max_body_size 0;
## If you use HTTPS make sure you disable gzip compression
## to be safe against BREACH attack.
## https://github.com/gitlabhq/gitlabhq/issues/694
## Some requests take more than 30 seconds.
proxy_read_timeout 3600;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://gitlab-workhorse;
}
error_page 404 /404.html;
error_page 422 /422.html;
error_page 500 /500.html;
error_page 502 /502.html;
# CHANGE: Comment out because run everytimes into 404.
# Copied root parameter into parent configuration-scope.
#
# location ~ ^/(404|422|500|502)(-custom)?\.html$ {
# root /opt/gitlab/embedded/service/gitlab-rails/public;
# internal;
# }
}
Обновлено (2019-05-21)
Конфигурация ограничения Nginx:
# # Bad referrer 404 filer
# if ($bad_referer) {
# return 444;
# }
# Global restrictions configuration file.
# Designed to be included in any server {} block.
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
# Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban)
location ~ /\. {
deny all;
}
# Deny access to any files with a .php extension in the uploads directory
# Works in sub-directory installs and also in multisite network
# Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban)
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
# Directives to send expires headers and turn off 404 error logging.
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off;
log_not_found off;
expires max;
}