- 浏览: 302856 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
masuweng:
如何给新人机会 -
masuweng:
多sql结果集按列合并新结果报表实现方案 -
Ahe:
赞
坚持长跑方能赢 -
masuweng:
好好好
程序员如何更好的了解自己所做的事情 -
小楠人:
laoguan123 写道楼主好,使用过一些excel导入导出 ...
excell导入导出
Nginx + ssl + Passenger 配置
博客分类: Linux
nginxRailsRubyAccess应用服务器
好久没写blog了。
今天搞了半天才搞定 Nginx + SSL的配置,主要是对这方面不太理解,导致一开始的思路就错了,我原以为在Nginx下的一个server里同时监听 80 和 443端口,就可以让服务器自动处理这两种不同链接,如: http://www.domain.com 和 https://www.domain.com 。
但是在nginx.conf里面打开了 ssl on:之后,所有的链接变成https的,也就是变成了强制使用ssl协议了,而且使用了Rails的ssl_requirement插件后,会出现死循环的重定向,就是 http://www.domain.com 跳转到 https://www.domain.com,然后又重新跳转,我那个汗啊...
静下来研究了一番,发现对ssl还是要做重定向,思路就是:
1.在nginx里面配置两个server,一个监听80端口,一个监听443端口。
2.把所有使用https访问的请求,也就是使用443端口的请求转发给服务器的80端口来处理。
3.由于在应用里使用ssl_requirement来强制使用ssl链接,所有在应用了要求使用ssl的链接都不能使用http来访问,会强制进行跳转。
可能这个东西很多对服务器熟悉的人都明白,我还是搞了大半天才搞好,终究是底子差了点。
贴出配置文件:
Conf代码 收藏代码
#user nobody;
worker_processes 4;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 51200;
}
http {
passenger_root /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0;
passenger_ruby /usr/local/bin/ruby;
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
log_format main '$remote_addr | $remote_user | [$time_local] | "$request" | '
'"$status" | $body_bytes_sent | "$http_referer" | '
'"$http_user_agent" | "$http_x_forwarded_for" | $request_time';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
client_max_body_size 20m;
client_header_buffer_size 16k;
large_client_header_buffers 4 64k;
# forbid ip access 禁止用IP访问
server{
listen 80;
server_name _;
return 404;
}
# dev server
server{
listen 80; #监听正规的80端口
server_name www.domain.com;
access_log /home/domain.com/dev/log/access.log main;
rails_env development;
location ~ ^/(product|image|images)/ {
access_log off;
root /home/domain.com/dev/public;
expires 30d;
}
location / {
root /home/domain.com/dev/public;
passenger_enabled on;
}
}
# ssl to server 配置转发
upstream server {
server 127.0.0.1:80;
}
# ssl for dev
server{
listen 443; #监听 SSL端口
server_name www.domain.com;
access_log /home/domain.com/dev/log/ssl_access.log main;
ssl on;
ssl_certificate server.crt;
ssl_certificate_key server_nopassword.key;
# 下面这堆都是抄的
location / {
proxy_pass http://server; #把所有的请求转发给 server,看上面的配置
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
}
}
}
博客分类: Linux
nginxRailsRubyAccess应用服务器
好久没写blog了。
今天搞了半天才搞定 Nginx + SSL的配置,主要是对这方面不太理解,导致一开始的思路就错了,我原以为在Nginx下的一个server里同时监听 80 和 443端口,就可以让服务器自动处理这两种不同链接,如: http://www.domain.com 和 https://www.domain.com 。
但是在nginx.conf里面打开了 ssl on:之后,所有的链接变成https的,也就是变成了强制使用ssl协议了,而且使用了Rails的ssl_requirement插件后,会出现死循环的重定向,就是 http://www.domain.com 跳转到 https://www.domain.com,然后又重新跳转,我那个汗啊...
静下来研究了一番,发现对ssl还是要做重定向,思路就是:
1.在nginx里面配置两个server,一个监听80端口,一个监听443端口。
2.把所有使用https访问的请求,也就是使用443端口的请求转发给服务器的80端口来处理。
3.由于在应用里使用ssl_requirement来强制使用ssl链接,所有在应用了要求使用ssl的链接都不能使用http来访问,会强制进行跳转。
可能这个东西很多对服务器熟悉的人都明白,我还是搞了大半天才搞好,终究是底子差了点。
贴出配置文件:
Conf代码 收藏代码
#user nobody;
worker_processes 4;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 51200;
}
http {
passenger_root /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.0;
passenger_ruby /usr/local/bin/ruby;
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
log_format main '$remote_addr | $remote_user | [$time_local] | "$request" | '
'"$status" | $body_bytes_sent | "$http_referer" | '
'"$http_user_agent" | "$http_x_forwarded_for" | $request_time';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
client_max_body_size 20m;
client_header_buffer_size 16k;
large_client_header_buffers 4 64k;
# forbid ip access 禁止用IP访问
server{
listen 80;
server_name _;
return 404;
}
# dev server
server{
listen 80; #监听正规的80端口
server_name www.domain.com;
access_log /home/domain.com/dev/log/access.log main;
rails_env development;
location ~ ^/(product|image|images)/ {
access_log off;
root /home/domain.com/dev/public;
expires 30d;
}
location / {
root /home/domain.com/dev/public;
passenger_enabled on;
}
}
# ssl to server 配置转发
upstream server {
server 127.0.0.1:80;
}
# ssl for dev
server{
listen 443; #监听 SSL端口
server_name www.domain.com;
access_log /home/domain.com/dev/log/ssl_access.log main;
ssl on;
ssl_certificate server.crt;
ssl_certificate_key server_nopassword.key;
# 下面这堆都是抄的
location / {
proxy_pass http://server; #把所有的请求转发给 server,看上面的配置
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
}
}
}
发表评论
-
git仓库创建
2020-09-04 15:33 713推送现有文件夹 cd existing_folder git ... -
puma高并发
2020-08-19 09:31 478nginx突发大量502报错 top看一下,cpu的占用并不高 ... -
searchkick
2019-04-10 11:30 0# 通用查询块(条件) def general_ ... -
导入线下excell业务数据按权重匹配线上数据
2019-03-07 11:00 905业务场景:(系统间还没有接口对调,订单号暂时需要线下处理) 线 ... -
两对象同时映射一对一和一对多
2019-02-20 10:14 859class Kpi::Team < Applicat ... -
ruby一些类加载方式
2018-12-21 10:12 569require_dependency 'order/sco ... -
基于ruby的gem remotipart的异步上传文件
2018-12-21 10:11 537针对某一对象保存实例化之前,异步上传图片保存。 gem ' ... -
基于html2canvas的长图分享
2018-12-21 10:11 1162<span class="ui label ... -
rails处理上传读取excell&生成excell
2018-12-20 14:15 996gem 'spreadsheet' gem 'roo', ... -
基于ruby Mechanize的爬虫
2018-12-20 13:09 690def self.sang_carwler ... -
一些常用加密方式
2018-12-20 13:02 732sign = OpenSSL::Digest::SHA256. ... -
ruby 调用restful接口示例
2018-12-20 12:02 931链接参数中添加token def self.query_p ... -
rails错误日志记录
2018-12-19 14:41 779Rails中对日志的处理采用的是“消息-订阅”机制,各部分组件 ... -
railsAPI接收Base64文件
2018-12-18 11:05 1044tmp_dir = " ... -
ruby 调用savon接口示例
2018-12-18 10:51 1037例子一 module Api module Aob ... -
关于国际商城现货展示与购物车的费用设计
2018-11-15 18:34 448关于国际商城现货展示 ... -
基于多线程的全局变量
2018-10-31 19:50 1181def current_nation def ... -
hash最小值过滤算法
2018-10-31 09:52 1092[["数量","包装" ... -
阿里云裸机部署rails运用
2018-10-08 20:33 1403登录阿里云后首先 sudo apt-get update a ... -
打包订单单据发给货代
2018-09-11 15:43 1181pdf&excell&png # rend ...
相关推荐
4. **编译安装Nginx、PHP、MySQL**:按照特定的配置选项编译这些组件,例如,Nginx可能需要配置支持SSL、GZIP压缩等功能;PHP则需确保与Nginx和MySQL的兼容性。 5. **配置Nginx和PHP-FPM**:设置Nginx的server块,...
6. **SSL/TLS支持**:Nginx可以配置为提供安全的HTTPS服务,通过SSL/TLS协议加密传输,保护用户数据的安全。 **二、Nginx的配置与管理** 1. **配置文件**:Nginx的配置主要通过`nginx.conf`主配置文件进行,其中...
您还查看可用值: nginx : ssl : on passenger : enabled : off # all other passenger config index : index.html index.htm index.php locations : - match : / try_files : $uri return : 301 ...
为了在Passenger中支持多个Ruby版本,你需要配置Apache或Nginx来识别每个版本。这里以Apache为例: 1. 安装Passenger模块: ```bash gem install passenger passenger-install-apache2-module ``` 2. 编辑...
- 根据需求调整Nginx的配置,如缓存设置、SSL加密、负载均衡等。 整合Redmine和SVN到Nginx的过程需要对Linux系统、Web服务器配置、数据库管理以及版本控制系统有一定的理解。每个步骤都至关重要,尤其是版本匹配和...
奖励1 :关于SSL的最安全的nginx配置之一,能够在达到A级奖励2 :支持在使用gem websocket-rails和passenger时自动启动websocket服务器。 unicornherder ,由主管监控(在9001端口运行其Web界面),以管理unicorn...
4. **SSL与安全性**:为了数据安全,应使用HTTPS,并配置SSL证书。同时,确保你的应用没有开启不必要的开发模式特性,如Rails的调试信息。 5. **代码版本控制**:使用Git来管理源代码,创建并推送生产分支。 6. **...
- **安全配置**:为了防止未授权访问,需要对Redmine的配置文件进行安全优化,如设置SSL加密、限制IP访问等。 - **定期备份**:为防止数据丢失,定期备份数据库和重要文件。 - **升级维护**:关注Redmine的最新...
例如,对于Apache,你可以创建一个名为`redmine.conf`的虚拟主机配置文件,并启用mod_passenger模块。 8. 生成Redmine的session和secret_token: ``` rake redmine:keys RAILS_ENV=production ``` 9. 复制生成...
3. **性能优化**:考虑使用如Passenger这样的Ruby应用服务器,以及缓存机制如Memcached或Redis,以提高性能。 **四、安全与维护** 1. **备份**:定期备份数据库和Redmine配置文件,以防数据丢失。 2. **安全**:...
最后,配置Apache或Nginx作为Foreman的反向代理,并启动Foreman服务。 在客户端机器(agent1.domain.com)上,配置Puppet客户端以连接到服务器。在`/etc/puppet/puppet.conf`中指定服务器的主机名,并启动Puppet...
在实际生产环境中,你可能还需要考虑设置SSL/TLS以确保数据传输的安全,以及通过Nginx或Apache等反向代理服务器进行负载均衡和优化。 这个过程可以通过一个自动化脚本来简化,比如`redmine.sh`。脚本通常会包含上述...
可能会讲解Capistrano自动化部署,Nginx和Unicorn/Passenger等服务器配置,以及Docker容器化方案。 6. **集成其他技术**:Rails通常与其他企业级技术结合使用,如前端框架(如React或Angular)、消息队列(如...
5. ** Passenger (mod_rails)**: Passenger(也称为 mod_rails)是 Apache 和 Nginx 的一个模块,它允许无缝集成 Ruby on Rails 应用程序。在这里,Passenger 被用来部署和管理 Webistrano 的 Ruby 应用。 6. **...
这通常涉及以下步骤:安装必要的服务器软件(如Nginx或Apache作为Web服务器,Passenger或Puma作为应用服务器),配置环境变量,设置SSL证书以实现HTTPS安全连接,以及调整服务器防火墙规则允许HTTP和HTTPS流量。...