我花了几天时间才把所有事情都整理好,所以我想分享一下让这一切正常工作所采取的步骤。这是为网站安装 Nginx 并使其与现有的 gitlab 存储库(使用 Nginx 的捆绑版本)一起工作的方法。我的 gitlab 存储库位于我网站的一个名为“repos”的子域中。
打开终端并安装 Nginx:
sudo apt-get update
sudo apt-get install nginx
编辑配置文件/etc/nginx/nginx.conf:
找到你的用户名,你在配置 gitlab 时会用到:
就我而言,这是“nginx”:
user nginx;
在 http{ } 块内添加这一行:
$include /etc/nginx/sites-enabled/*;
例子:
http{
include etc/nginx/mime.types;
include etc/nginx/sites-enabled/*;
(more stuff...)
}
编辑配置文件/etc/gitlab/gitlab.rb:
改变这一行:
external_url 'GENERATED_EXTERNAL_URL'
收件人:
external_url 'http://www.example.com/repos' // (whatever your server name is)
取消注释并更改此行:
nginx['enable'] = true
收件人:
nginx['enable'] = false
取消注释并更改此行:
web_server['external_users'] = []
收件人:
web_server['external_users'] = ['nginx'] // or whatever your nginx user is called, sometimes it's 'www-data'
Nginx 需要 gitlab 的配置文件:
在 GitLab 配方存储库中:https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/web-server/nginx 找到“gitlab-omnibus-nginx.conf”。
将该文件放在文件夹 /etc/nginx/sites-enabled 中(您可能需要创建启用站点的文件夹)
编辑配置文件/etc/nginx/sites-enabled/gitlab-omnibus-nginx.conf:
改变这一行:
server_name YOUR_SERVER_FQDN
收件人:
server_name www.example.com/repos // (or whatever your server name is)
您需要更改 gitlab 所在的端口,以便网站和 git 服务器都能正常工作。
改变这一行:
listen 0.0.0.0:80 default_server;
收件人:
listen 0.0.0.0:8081;
改变这一行:
listen [::]:80 default_server;
收件人:
listen [::]:8081;
编辑配置文件/etc/nginx/conf.d/default.conf:
将其设为默认服务器:
listen 80 default_server;
server_name localhost;
为 gitlab 存储库添加第二个位置,并使用 proxy_pass 指向您放置 Gitlab 的端口。
我把我的 Gitlab 放在子目录“repos”中。数字 127.0.0.1 表示 localhost(同一台计算机):
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /repos/ {
proxy_pass http://127.0.0.1:8081;
}
在终端中运行这些命令:
sudo gitlab-ctl reconfigure
sudo service nginx restart
您的网络服务器和 gitlab 现在应该都可以工作并且可以在线访问了。
当用户访问您的网络服务器时,Nginx 将默认为 /usr/share/nginx/html。那里有一个默认的 .html 文件。这是您可以为您的网站放置文件的地方。