在vagrant中,无法使用nginx访问默认的keystone站点

在vagrant中,无法使用nginx访问默认的keystone站点,nginx,vagrant,centos7,keystonejs,Nginx,Vagrant,Centos7,Keystonejs,我用以下脚本配置的vagrant服务器仍然提供默认的nginx页面,而不是默认的keystone页面。 下面是我使用的脚本: 流浪汉档案: Vagrant.configure("2") do |config| config.vm.box = "centos/7" config.vm.network "private_network", ip: "192.168.1.10" config.vm.provider "virtualbox" do |vb| config.vm.prov

我用以下脚本配置的vagrant服务器仍然提供默认的nginx页面,而不是默认的keystone页面。 下面是我使用的脚本:

流浪汉档案:

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.network "private_network", ip: "192.168.1.10"
  config.vm.provider "virtualbox" do |vb|
  config.vm.provision "file", source: "mongodb-org-3.2.repo", destination: "~/mongodb-org-3.2.repo"
  config.vm.provision "shell", path: "provision.sh"
end
条款文件:

sudo yum -y update
sudo hostnamectl set-hostname melanie
echo "given hostname :"
hostnamectl status --static
echo -e "\e[1;34m

***************************************************
add host names
***************************************************"

sudo cp /etc/hosts /etc/hosts.origin
echo "192.168.1.10 melanie.misite.com melanie" | sudo tee -a /etc/hosts > /dev/null
echo -e "\e[1;34mIP, FQDN and Server name setted in /etc/hosts:"
cat /etc/hosts
echo -e "\e[1;34m

***************************************************
set timezone
***************************************************"

sudo timedatectl set-timezone America/Guayaquil
echo -e "\e[1;34msetted time zone:"
timedatectl | grep "Time zone"
echo -e "\e[1;34m

***************************************************
add automatic security update
***************************************************"

sudo yum -y install yum-cron
sudo sed -i.bak 's/.*update_cmd =.*/update_cmd = security/' /etc/yum/yum-cron.conf
sudo sed -i.bak 's/.*apply_updates =.*/apply_updates = yes/' /etc/yum/yum-cron.conf
sudo sed -n /update_cmd/p /etc/yum/yum-cron.conf
sudo sed -n /apply_updates/p /etc/yum/yum-cron.conf
sudo systemctl status yum-cron
sudo systemctl start yum-cron
echo -e "\e[1;34m

***************************************************
create limited user account
***************************************************"

sudo useradd me
sudo echo me:admin | chpasswd
echo -e "\e[1;34m

***************************************************
SSH Dameon Options
***************************************************"

sudo sed -i.bak 's/.*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
echo yum-cron.conf modified parameters:
sudo sed -n /PermitRootLogin/p /etc/ssh/sshd_config
systemctl restart sshd
echo -e "\e[1;34m

***************************************************
installing fail2ban
***************************************************"


sleep 15 #put sleep hoping it will help to fail2ban to be installed => do not work
sudo yum -y install fail2ban
sudo yum -y install sendmail
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sed 's/.*backend =*/backend = systemd./' /etc/fail2ban/jail.local
echo -e "\e[1;34m

***************************************************
installing nginx
***************************************************"

sudo yum -y install epel-release 
sudo yum -y install nginx 
sudo systemctl start nginx
echo -e "\e[1;34m

***************************************************
    configure nginx
***************************************************"

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled
sudo mkdir /var/www/misite.com/logs

sudo cp /home/vagrant/misite.conf /home/vagrant/misite.com
sudo mv /home/vagrant/misite.com /etc/nginx/sites-available > /dev/null
sudo ln -s /etc/nginx/sites-available/misite.com /etc/nginx/sites-enabled
sudo rm -rf /etc/nginx/sites-available/default
sudo chown -R nginx:nginx /var/www 
sudo service nginx restart > /dev/null
echo -e "\e[1;34m

***************************************************
installing nodejs
***************************************************"

sudo yum -y install npm
sudo yum -y install nodejs
node --version
echo -e "\e[1;34m

***************************************************
installing mongoDB
***************************************************"

sudo mv /home/vagrant/mongodb-org-3.2.repo /etc/yum.repos.d/mongodb-org-3.2.repo
sudo yum -y install mongodb-org
systemctl start mongod
systemctl status mongod
echo -e "\e[1;34m

***************************************************
installing keystone
***************************************************"

sudo npm install -g yo
sudo mkdir /var/www
sudo mkdir /var/www/misite.com
cd /var/www/misite.com
sudo npm install -g generator-keystone
sudo chown -R vagrant:vagrant /var/www/   
nginx服务器配置文件(/etc/nginx/sites available/misite.com): 在这里,keystone站点应该重定向到vagrant服务器的端口80(我认为错误在这个文件中,但看不到在哪里)

我还从/etc/nginx/nginx.conf中删除了
default
关键字

然后: 流浪汉 [vagrant@melanie~]$cd/var/www/misite.com [vagrant@melanie[misite.com]$yokeystone [vagrant@melaniemisite.com]$node keystone

我让keystone js运行:

------------------------------------------------
KeystoneJS Started:
My Site is ready on http://0.0.0.0:3000
------------------------------------------------
但是仍然可以从
http://192.168.1.10/


任何帮助都将不胜感激。

免责声明:我不熟悉Nginx,我正在尝试查看Keystone的设置是否会影响其运行的端口,而不是Nginx

Keystone默认为端口3000(更具体地说是,
process.env.port | | 3000
),除非您指定另一个端口。如果您可以将环境变量
port
设置为您想要的任何值(本例中为80),那么应该可以使用它

查看您的nginx服务器conf文件也可以看出:

upstream app_misite.com {
    server 0.0.0.0:3000;
}

尝试将
:3000
更改为
:80

免责声明:我不熟悉Nginx,我正在尝试查看与Nginx相比,Keystone设置是否会影响其运行的端口

Keystone默认为端口3000(更具体地说是,
process.env.port | | 3000
),除非您指定另一个端口。如果您可以将环境变量
port
设置为您想要的任何值(本例中为80),那么应该可以使用它

查看您的nginx服务器conf文件也可以看出:

upstream app_misite.com {
    server 0.0.0.0:3000;
}

尝试将
:3000
更改为
:80

我认为您有很多问题:

  • centos上安装的nginx有一个默认的nginx.conf文件,其中包含一个
    server
    指令,因此您无法在配置misite文件中覆盖该指令
  • 您需要删除
    /etc/nginx/nginx.conf
    文件中的
    服务器
    默认声明,或者您可以使用设置脚本复制一个新的默认conf文件,而不需要服务器声明

    我甚至不确定默认文件是否在
    站点可用
    目录下有include指令(查看您的conf文件中是否启用了
    include/etc/nginx/sites/*;

  • 当您创建keystone应用程序时,它不包含
    /var/www/misite.com/logs/
    目录和日志文件,我看不到您在脚本中创建它们,因此nginx将失败(顺便说一句,您可以使用
    mkdir-pv
    单个命令创建目录结构)

  • 您创建的keystone应用程序归vagrant所有。确保vagrant已添加到
    nginx
    组,否则在访问您的站点时可能会出现禁止的异常

  • 如果您不想与SELinux发生冲突,可以在centos上提供帮助,只需在开发人员实例上禁用它即可。编辑
    /etc/sysconfig/selinux
    ,只需设置
    selinux=disabled


  • 我认为你有很多问题:

  • centos上安装的nginx有一个默认的nginx.conf文件,其中包含一个
    server
    指令,因此您无法在配置misite文件中覆盖该指令
  • 您需要删除
    /etc/nginx/nginx.conf
    文件中的
    服务器
    默认声明,或者您可以使用设置脚本复制一个新的默认conf文件,而不需要服务器声明

    我甚至不确定默认文件是否在
    站点可用
    目录下有include指令(查看您的conf文件中是否启用了
    include/etc/nginx/sites/*;

  • 当您创建keystone应用程序时,它不包含
    /var/www/misite.com/logs/
    目录和日志文件,我看不到您在脚本中创建它们,因此nginx将失败(顺便说一句,您可以使用
    mkdir-pv
    单个命令创建目录结构)

  • 您创建的keystone应用程序归vagrant所有。确保vagrant已添加到
    nginx
    组,否则在访问您的站点时可能会出现禁止的异常

  • 如果您不想与SELinux发生冲突,可以在centos上提供帮助,只需在开发人员实例上禁用它即可。编辑
    /etc/sysconfig/selinux
    ,只需设置
    selinux=disabled


  • 我可以通过192.168.1.10:3000访问keystoneJs欢迎页面,但不能从192.168.1.10:80I访问keystoneJs欢迎页面,可以通过192.168.1.10:3000访问keystoneJs欢迎页面,但不能从192.168.1.10:801访问keystoneJs欢迎页面:我删除了nginx.conf中的默认_服务器标记;2和3:这是通过这里给出的脚本完成的。1:我对nginx.conf中定义的所有服务器进行了注释,但是nginx欢迎页面的出现2仍然不是由脚本完成的-ssh到VM中,并检查
    /var/www/miste.com/logs/
    是否存在;它不会,在你的脚本中没有任何地方是你创建这样一个目录的问题。3.您的脚本也无法完成此操作,因为您在使用
    vagrant ssh
    ssh到您的虚拟机后运行
    yo
    node keystone
    ,因此您确实可以使用vagrant登录2:在“配置nginx”部分完成:
    sudo mkdir/var/www/misite.com/logs
    。3对不起,我是手工做的。将Vagrant添加到nginx组,然后
    sudo chown-R nginx:nginx/var/www/
    chmod 770/var/www
    1:I删除nginx.conf中的默认服务器标记;2和3:这是通过这里给出的脚本完成的。1:我对nginx.conf中定义的所有服务器进行了注释,但是nginx欢迎页面的出现2仍然不是由脚本完成的-ssh到VM中,并检查
    /var/www/miste.com/logs/
    是否存在;会的
    upstream app_misite.com {
        server 0.0.0.0:3000;
    }