Nginx和Redmine
緊接前文,我希望能夠用FastCGI協議和Nginx互動,這樣就能用在產品環境下。
Redmine啟用FastCGI文件不全,靠自己揣摩和Google得到的零散資訊,得到如下配置方法:
1. 安裝需要的開發庫
apt-get install libfcgi-dev
2. 在redmine目錄下建立檔案Gemfile.local, 內容如下:
gem "fcgi"
3. 安裝依賴,再次執行下面的命令:
bundle install --without development test
4. 強制環境變數為production,在config/environment.rb中第一行新增:
ENV['RAILS_ENV'] ||= 'production'
5. 安裝啟動fastcgi的工具軟體
apt-get install spawn-fcgi
6. 啟動:
cp public/dispatch.fcgi.example public/dispatch.fcgi
spawn-fcgi -p 9001 -f ./public/dispatch.fcgi
現在檢查一下是否監聽了9001埠:
root@redmine:~/redmine-2.3# fuser -n tcp 9001
9001/tcp: 26510
root@redmine:~/redmine-2.3# ps -def | grep dispatch
root 26510 1 2 12:53 ? 00:00:04 ruby ./public/dispatch.fcgi
7. 現在假定已經安裝了Nginx,在conf.d/default.conf檔案中新增幾行配置:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9001
location / {
fastcgi_pass 127.0.0.1:9001;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
8. 開啟網頁測試,通過!!!
如果想支援HTTPS,可以像下面這樣在Nginx的conf.d目錄下建立一個redmin.conf檔案
server {
listen 443;
server_name your_domain_name
ssl on;
ssl_certificate ./conf.d/server.crt;
ssl_certificate_key ./conf.d/server.key;
location = /favicon.ico {
log_not_found off;
log_subrequest off;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9001
location / {
fastcgi_pass 127.0.0.1:9001;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}
注意,還有另一種方式,通過passenger,請參考別人的文章。 因為經過實際運用,我的方式有時候redmine 會crash, 而且我還沒有找到原因,因為我對ruby on rails不熟悉。
相關文章
- Docker安裝Redmine並使用Nginx反向代理為httpsDockerNginxHTTP
- redmine docker部署Docker
- redmine-dockerDocker
- centos7.9安裝Redmine 5.1CentOS
- Docker 快速搭建redmine 專案管理 BUG追蹤Docker專案管理
- 我眼中的 Nginx(一):Nginx 和位運算Nginx
- nginx面試題-nginx和apache的區別Nginx面試題Apache
- Nginx 原理和架構Nginx架構
- docker(二十三):docker通過docker-compose部署redmine服務Docker
- PHP-FPM和nginx配置PHPNginx
- HTTP HSTS協議和 nginxHTTP協議Nginx
- Nginx 工作模式和程式模型Nginx模式模型
- Nginx下載和安裝Nginx
- nginx和apache的區別NginxApache
- NGINX的配置和基本使用Nginx
- Nginx R31 doc-08-NGINX 和 NGINX Plus 作為 Web 伺服器NginxWeb伺服器
- Linux上安裝Nginx依賴環境和庫、Nginx安裝,Nginx服務命令LinuxNginx
- github-schenkd/nginx-ui:Nginx UI可直接透過介面訪問和修改Nginx配置GithubNginxUI
- github-schenkd/nginx-ui:Nginx UI可直接通過介面訪問和修改Nginx配置GithubNginxUI
- nginx 502 和 504 超時演示Nginx
- Nginx 基礎理解和安裝Nginx
- 使用 Nginx 編譯 Sass 和 ScssNginx編譯CSS
- Nginx(alias 和 root的區別)Nginx
- Nginx正向代理和反向代理配置Nginx
- 偽靜態配置apache 和nginxApacheNginx
- nginx啟動命令和停止命令。Nginx
- 原始碼安裝Nginx和PHP原始碼NginxPHP
- Nginx實現原理master和workerNginxAST
- Nginx的安裝和多域名配置Nginx
- Nginx中root和alias的區別Nginx
- 使用 Nginx 和 Gunicorn 部署 Django 部落格NginxDjango
- nginx 和 PHP-fpm 的互動NginxPHP
- Nginx的幾個常用配置和技巧Nginx
- 用uWSGI和Nginx部署Flask專案NginxFlask
- 使用 uWSGI 和 Nginx 部署 Django 專案NginxDjango
- Nginx 和 Gunicorn 效能對比測試Nginx
- Ingress-nginx工作原理和實踐Nginx
- nginx建立和監聽套接字分析Nginx
- nginx 基本命令和檔案配置Nginx