我使用以下脚本配置的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 (我认为错误在这个文件中但是看不到哪里)
# IP which nodejs is running on
upstream app_misite.com {
server 0.0.0.0:3000;
}
# nginx server instance
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
access_log /var/www/misite.com/logs/access.log;
error_log /var/www/misite.com/logs/error.log;
location / {
root /var/www/misite.com;
index index.html index.htm;
try_files $uri $uri/ @node;
}
location @node {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://app_misite.com;
}
}
我还从/etc/nginx/nginx.conf中删除default
关键字
然后: 流浪汉ssh [vagrant @ melanie~] $ cd /var/www/misite.com [vagrant @ melanie misite.com] $ yo keystone [vagrant @ melanie misite.com] $ node keystone
我有keystone js正在运行:
------------------------------------------------
KeystoneJS Started:
My Site is ready on http://0.0.0.0:3000
------------------------------------------------
但仍然可以看到http://192.168.1.10/
任何帮助都将受到赞赏。
答案 0 :(得分:0)
免责声明:我不熟悉Nginx,我正在尝试查看Keystone的设置是否会影响它运行的端口与Nginx的对比。
Keystone默认使用端口3000(更具体地说,process.env.PORT || 3000
),除非您指定另一个。如果您可以将port
的环境变量设置为您想要的任何值(在本例中为80),那么它应该可以在http://192.168.1.10:80/上运行。
process.env.PORT = 3000
查看您的nginx服务器配置文件也会显示:
upstream app_misite.com {
server 0.0.0.0:3000;
}
尝试将:3000
更改为:80
。
答案 1 :(得分:0)
我认为你有问题:
server
指令的默认nginx.conf文件,所以你不能在配置misite文件中覆盖这个指令。您需要删除server
文件中的/etc/nginx/nginx.conf
默认声明,或者您只需使用您的配置脚本复制新的默认配置文件而无需服务器声明
我甚至不确定默认文件是否在sites-available
目录中有一个include指令(看看你的conf文件中是否有include /etc/nginx/sites-enabled/*;
)
当您创建keystone应用程序时,它不包含/var/www/misite.com/logs/
目录和日志文件,我没有看到您在脚本中创建它们因此nginx将在此失败(顺便说一句,您可以创建一个使用mkdir -pv
单个命令的目录结构)
您创建的keystone应用程序由vagrant拥有。确保将vagrant添加到nginx
组,否则在访问您的站点时可能会出现Forbidden异常
可以帮助centos,只是在开发实例上禁用它。修改/etc/sysconfig/selinux
,然后设置SELINUX=disabled