Ruby on rails 如何配置nginx和passenger with rails应用程序
我遵循了这个教程 我已经在我的虚拟机上安装了带有nginx的passenger,并尝试访问该站点 在根目录中,我将路径指定为Ruby on rails 如何配置nginx和passenger with rails应用程序,ruby-on-rails,ruby,nginx,ruby-on-rails-3.1,passenger,Ruby On Rails,Ruby,Nginx,Ruby On Rails 3.1,Passenger,我遵循了这个教程 我已经在我的虚拟机上安装了带有nginx的passenger,并尝试访问该站点 在根目录中,我将路径指定为root/var/rails_apps/public/这让我欢迎来到Nginx页面 server{ listen 80; server_name localhost; root /var/rails_apps/public/;
root/var/rails_apps/public/代码>这让我欢迎来到Nginx页面
server{
listen 80;
server_name localhost;
root /var/rails_apps/public/;
passenger_enabled on;
}
因为我的站点的根页面位于/var/rails\u apps/app/views/home/index.html.erb
因此,我将路径更改为root/var/rails_apps/app/views/home/代码>
server{
listen 80;
server_name localhost;
root /var/rails_apps/app/views/home/;
passenger_enabled on;
}
但对于这两个root用户,我都得到了欢迎使用Nginx
页面
我的请求URL如下->/#{IpAddressOfVirtualMachine}:80/
当我为监听指定了不同的端口时,例如1027,它会给我错误无法连接
请解释如何使用nginx和passenger运行我的站点,是否需要任何其他设置?将根目录更改回公共文件夹,并打开URL
,不带端口号您需要将nginx配置中的服务器名称更改为连接到的同一IP,是的,将根目录保存在公共文件夹中,rails就是这样工作的
server_name 123.456.789.000; # replace with your IP
而不是本地主机,然后重新启动nginx。我可以运行我的站点,只是做了以下更改
Install nginx init script
nginx init script by Jason Giedymin helps us to administer web server easily.
$ cd
$ git clone git://github.com/jnstq/rails-nginx-passenger-ubuntu.git
$ sudo mv rails-nginx-passenger-ubuntu/nginx/nginx /etc/init.d/nginx
$ sudo chown root:root /etc/init.d/nginx
之后,railsg控制器页面主页
并将root指向公共文件夹root/var/rails\u apps/helloworld/public代码>
然后通过http{IpAddressOfVirtualMachine}:1027/pages/home访问我的虚拟机
端口80
正忙,所以我使用了不同的端口,即端口1027
And it works !!!
你可以参考这个博客来了解更多信息
但是在我的公用文件夹中没有文件..那么它能工作吗?实际上我已经在虚拟机上安装了nginx passenger。在我试图访问该站点的本地计算机上,这就是为什么我访问的站点的虚拟机ip地址设置为public。我仍然收到欢迎页面。你重新启动了nginx吗?是的,我重新启动了服务器。我收到了页面my_app/public/index.html
。但是我想要一个默认页面,它通常是home/index
(HomeController,index action),并且在routes.rb
中指定。那么/var/rails\u apps/helloworld/public
向您展示了什么-public/index.html页面?其他动态页面-*.html.erb如何?rails应用程序默认具有公用文件夹,因此需要具有index.html,并且其他动态页面将位于rails视图文件夹中的相同位置,例如`views/users/dynamic_pages.html.erb。它不必具有public/index.html,因为如果具有,则将显示它而不是“root”来自“routes.rb”的页面。在使用nginx的情况下,如何让它显示应用程序/视图中的动态页面?然后删除该索引文件,您可以将公用文件夹保持为空,并在您可能已指定根url的路由中显示。然后它将把根url作为您的站点主页。但是root/var/rails\u apps/helloworld/public代码>这将保持原样。server\u name
代表什么?我可以把我的公共DNShttp://ec2-11-222-123-11.ap-southeast-2.compute.amazonaws.com/
在那里?从技术上讲,它将是http头中发送的字符串,名为主机
,简单的解释是它是您将在浏览器中键入的内容。因此它可以是类似于“gjkgdgjk”的任何内容,并且仍然可以工作?是的,它可以是任何内容。例如,example.com。你可以在这里输入你想要的站点名称。dns服务器仍然需要能够解析它,例如,如果你选择facebook.com
,你不会从facebook窃取流量,因为dns服务器不会向你的服务器发送任何facebook流量