一 : 卸载旧的nginx:
完全清除关联关系,删除对应文件或者文件夹。
比较靠谱的解决办法是:root权限下载命令行敲入如下命令:
rm -rf /etc/nginx/
rm -rf /usr/sbin/nginx
rm /usr/share/man/man1/nginx.1.gz
apt-get remove nginx*
原理就是删除关联文件以及文件夹。
二 : linux安装nginx
1 安装依赖
命令1:
yum install gcc
返回后下载完成确认输入"y" 回车(下面3个步骤一样):
Total download size: 6.9 M
Is this ok [y/d/N]: y
命令2:
yum install pcre-devel
命令3:
yum install zlib zlib-devel
命令4:
yum install openssl openssl-devel
//或者 一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2 .下载nginx的tar包
(我设置安装路径为/usr/local/nginx)
//创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
//下载tar包,请至官网选择http://nginx.org最新版本,我这是1.14.0
wget http://nginx.org/download/nginx-1.14.0.tar.gz
//解压包
tar -xvf nginx-1.14.0.tar.gz
//查看:是否成功解压(nginx-1.14.0 为解压文件夹)
[root@izj6c4358u3sd143jtegmtz nginx]# ls
nginx-1.14.0 nginx-1.14.0.tar.gz
3.安装nginx 非ssl
//进入nginx目录
cd /usr/local/nginx/nginx-1.14.0
//执行命令 [注意 ./configure命令后面没有编译ssh模块]
./configure
//执行make命令
make
//执行make install命令
make install
3.安装nginx 同时安装ssl
//进入nginx目录
cd /usr/local/nginx/nginx-1.14.0
//执行命令 [注意 ./configure命令后面没有编译ssh模块]
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
//执行make命令
make
//执行make install命令
make install
4. 设置配置文件
//测试nginx.conf的配置是否正确
/usr/local/nginx/sbin/nginx -t
命令:
[root@izj6c4358u3sd143jtegmtz nginx]# /usr/local/nginx/sbin/nginx -t
返回成功信息:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
5 启动nginx服务 : 根据nginx.conf里的配置,启动nginx服务
命令:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
[root@izj6c4358u3sd143jtegmtz nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
成功返回进程信息(25850进程号):
[root@izj6c4358u3sd143jtegmtz nginx]# ps -ef|grep nginx
root 25850 1 0 13:59 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/ngi
nx -c /usr/local/nginx/conf/nginx.conf
nobody 25851 25850 0 13:59 ? 00:00:00 nginx: worker process
root 25857 22885 0 13:59 pts/0 00:00:00 grep --color=auto nginx
(5.1 )如果是下面提示,说明端口被占用,
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
执行
killall -9 nginx
启动:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
结束
重启命令是:/usr/local/nginx/sbin/nginx -s reload
6 测试启动服务是否成功:
直接网页打开你的ip地址:(默认打开的文件是/usr/local/nginx/html/index.html)
http://12.34.56.789/
网页成功显示:
7 配置https
以本人购买阿里云ECS服务为例:官网配置
在腾讯云申请免费一年ssl证书后,可以进行下载:
安装证书
文件说明:
- 证书文件1527654392270.pem,包含两段内容,请不要删除任何一段内容。
- 如果是证书系统创建的CSR,还包含:证书私钥文件1527654392270.key。
####### ( 1 ) 在Nginx的安装目录conf 目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为1527654392270.key;
####### ( 2 ) 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到:
# #server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
#
#
#}
#}
( 3 ) 将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :
server {
listen 443;
server_name localhost;
#旧版本的nginx需要设置ssl on
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/1527654392270.pem;
ssl_certificate_key cert/1527654392270.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
保存退出。
( 3 ) 如果需要配置ThinkPHP , 则相关设置:
升级到 nginx 1.15,reload之后所有带 ssl 的站点都报这个警告了,不需要再写 ssl on; 了。去 nginx.conf 删掉 ssl on; 之后,reload
# HTTPS server
server {
listen 443 ssl;
server_name www.miyuanlive.com;
set $root /home/www/miyuan/public;
ssl_certificate cert/1527654392270.crt;
ssl_certificate_key cert/1527654392270.key;
root $root;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root $root;
index index.html index.php index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
location ~ \.php($|/) {
root $root;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
location ~ .*\.(css|js|gif|jpg|jpeg|png|bmp|swf)$ {
root $root;
expires 30d;
}
}
( 4 )重启 Nginx。
重启命令是:/usr/local/nginx/sbin/nginx -s reload
端口被占用:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
执行杀掉进程:
killall -9 nginx
启动:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
结束
打开网页显示"安全" ,配置成功:
( 5 ) 通过 https 方式访问您的站点,测试站点证书的安装配置。如遇到证书不信任问题,请查看帮助视频。