开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情
1. 安装依赖包
由于nginx是基于c语言开发的,所以需要安装c语言的编译环境,及正则表达式库等第三方依赖库。
执行:yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2. 下载Nginx安装包
可以自行去Nginx官网下载要安装的版本,然后通过第三方工具上传至服务器,也可以用weget命令直接再服务器去下载,我这里使用weget直接下载。
首先执行:yum install wget
再进行下载:wget https://nginx.org/download/nginx-1.20.0.tar.gz
wget :
wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。
执行完wget指令后,就会在当前所在目录看到下载下来的文件。我的目录是/tools/module。
3. 解压nginx压缩包
执行:tar -zxvf nginx-1.20.0.tar.gz
4. 配置Nginx编译环境
首先: cd nginx-1.20.0/
然后:./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
说明: prefix 指定的目录,就是我们安装Nginx的目录。后面是要配置的相关模块,因为一会要设置https,所以装一下ssl相关模块
5. 编译&安装
make & make install
6. 校验是否安装成功
首先: cd /usr/local/nginx/sbin/
然后:./nginx -V 有版本输出,就代表执行成功
7.启动并进行外部访问
还是在上面的sbin目录下:./nginx 进行启动
如果想进行外部访问,防火墙开启的情况下,还需要进行开放端口:
添加端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
使配置立即生效: firewall-cmd --reload
云服务器相应安全组也要进行配置:
上面的都完成了以后,我们可以直接访问Nginx的80端口,就是直接访问服务器的地址。
nginx常用命令:
./nginx #启动nginx
./nginx -t #检查配置文件
./nginx -s stop #停止nginx
./nginx -s quit #安全退出
./nginx -s reload #重启nginx,修改了文件之后重新加载该程序文件
ps aux|grep nginx #查看nginx进程
8.升级HTTPS
可以看到图片中,浏览器显示不安全,就是因为没有设置HTTPS。
使自己的域名从http转变为https,可以提高网站安全性,防止我们的网址被劫持。
- 把IP 改为域名,直接进入
/usr/local/nginx/conf下编辑vim nginx.conf。
ESC,然后:wq保存退出,可以先-t检查一下,然后reload重启nginx。
-
下载证书
我之前阿里云服务器过期了,现在搞得腾讯云服务器,所以要去腾讯云申请证书,不过其他云服务器基本也是一样的。
1、登录云服务器找到证书菜单
2、进行申请
3、提交就申请成功了
4、去域名那里添加解析记录
我这边因为域名是在阿里云购买的,所以要去阿里云那边添加解析
5、添加解析,完成进行验证
6、下载证书
7、上传证书至服务器
我把证书上传至/usr/local/nginx路径下了,并新建cert文件夹进行存放
8、配置HTTPS
首先进入cd /usr/local/nginx/conf,进行修改vim nginx.conf
滑到HTTP server 配置那里,把注释放开,修改443端口相关配置,我的配置如下:
server {
listen 443 ssl;
server_name www.iswho.site;
ssl_certificate ../cert/iswho.site_bundle.pem;
ssl_certificate_key ../cert/iswho.site.key;
# ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
然后80端口那边需要加上一句重定向:rewrite ^(.*) https://$server_name$1 permanent;
修改完成,保存退出,进行-t检查,然后再reload重启
开启了防火墙的话,还需要先把443端口给开放。
放行443端口: firewall-cmd --zone=public --add-port=443/tcp --permanent
使配置立即生效:firewall-cmd --reload
9.验证HTTPS
再进行去访问