配置/etc/nginx/nginx.conf使nginx能同时监听80和443端口,配置文件中有一部分内容如下
server {
listen 80;
listen 443 ssl;
...
重启nginx服务时会报错,错误如下
Restarting nginx: [emerg]: "ssl" parameter can be specified for the default "listen" directive only in /etc/nginx/nginx.conf:51
configuration file /etc/nginx/nginx.conf test failed
通过搜索发现是配置文件中监听443端口的一行的ssl前必须加default,加上后重启成功。
但是在访问的时候发现http无法访问,比如说https://api.cf.me可以正常访问,http://api.cf.me就无法访问,在另外一个集群中nginx的配置文件中没有default也能启用,而且两种协议都能正常访问。
继续查找资料后发现,原来是nginx版本过低,导致必须加入default参数。所以提升nginx版本,具体操作如下
service nginx stop
add-apt-repository ppa:nginx/stable
apt-get update
apt-get remove nginx # remove 0.7.65
apt-get install nginx-full
然后启动nginx
service nginx start
再在浏览器中访问https和http两种协议的网站就能够正常打开,问题解决