Nginx配置以后重启失败,后面重新启动Nginx也失败
来源:2-17 nginx反向代理服务器域名解析配置实操(linux系统同学看这节)
zw_Zero
2018-08-30
按照老师的操作一步一步来,到了这一节就出错了。刚安装完nginx的时候,能够正常启动并访问nginx后台欢迎页面。直到在 /usr/local/nginx/conf/下创建了vhost目录后,并在vhost中创建了www.imooc.com.conf配置文件以后,配置内容也没问题
server {
listen 80;
autoindex on;
server_name www.imooc.com;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
proxy_pass http://127.0.0.1:8080;
add_header Access-Control-Allow-Origin *;
}
}
然后重启失败,错误提示:
nginx: [emerg] "server" directive is not allowed here in /usr/local/nginx/conf/vhost/www.imooc.com.conf:1
我的疑问是:视频中老师并没有手动打开tomcat服务器,直接访问ip:8080就能到tomca主页,按照之前视频里的操作,不是要进入/developer/apache-tomcat-7.0.7/bin,执行./startup.sh这样才算启动tomcat服务器,然后才能访问tomcat主页吗?然后我重新启动了我的CentsOS,再次启动nginx,发现此时连nginx都启动不了了,同样报了上面的错误,肯定是配置了www.imooc.com.conf以后nginx出了问题,但是不知道问题怎么解决,另外,手工启动安装在/developer下面的tomcat,能够正常访问tomcat欢迎页。哪位大神可以帮我分析分析我的问题。
ps,在编辑nginx.conf文件的时候,我的文件的默认配置和视频中老师的文件好像有些不同,看老师的文件好像都是注释,我的配置如下:
我只是加了上面标记的一句话,其他均为默认配置。
1回答
-
zw_Zero
提问者
2018-09-01
自己又看了几遍,然后到 http://learning.happymmall.com/nginx/linux_conf/nginx.conf(没有格式化的话可以通过查看网页源码 view-source:http://learning.happymmall.com/nginx/linux_conf/nginx.conf 得到配置文件中的格式 ) 对比老师提供的配置文件,之前问题描述中说自己的配置文件和老师的不一样,是因为在 执行 vim www.imooc.com.conf 之后,默认显示的是最上面几行的代码,再往下翻几行就可以出现视频中老师编辑nginx.conf文件的那一部分(自己真是太菜了)。然后终于找出问题了!!!
我问题中将 include vhost/*.conf; 添加到了events{} 和 http{}节点之间,而正确的引入方式是 将其添加到http{}中
由于配置文件代码比较多,截图只能展示部分代码,图中最后一行的右大括号就是http{}节点的结束
修改好配置文件以后就能够重新启动nginx了。然后我访问本机ip, 192.168.60.128:8080 想访问Tomcat主页,访问失败,我又手动从/developer/apache-tomcat-7.0.7/bin目录中启动Tomcat,然后可以访问Tomcat主页了,接着再访问 www.imooc.com(前提是配置好了本地hosts文件),发现还是失败
仔细一看,浏览器自动采用了https协议,手动改成http协议就可以成功跳转到Tomcat主页
10