编程技术分享平台

网站首页 > 技术教程 正文

Nginx与Https加密网站(nginx https正向代理)

xnh888 2024-09-28 02:49:15 技术教程 16 ℃ 0 评论

一、Web服务器对比

Unix和Linux平台下

--Apache、Nginx、Tengine、Lighttpd

--Tomcat、IBM WebSphere、Jboss

Windows平台下

--微软公司的IIS(Internet Information Server)

二、Nginx(“engine x”)简介

1.是俄罗斯人编写的十分轻量级的HTTP服务器。

2.是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。

三、搭建Nginx服务器

1.Yum安装依赖包 gcc pcre-devel openssl-devel

2.创建用户及组 nginx(防止使用root用户被人攻击网站时获得root权限)

3.解压nginx源码包,进入压缩包,设置配置文件

./configrue

--prefix=/usr/local/nginx \ //指定安装路径,默认为这个

--user=nginx \

--group=nginx \

--with-http_ssl_module //指定所要安装的模块,nginx为模块化安装,可根据个人需求选择合适的模块进行安装,这个为ssl加密功能

--....

4.make && make install //编译并安装

5.Ln -s /usr/local/nginx/sbin/nginx/ /sbin/ //创建软链接,方便使用

6.nginx命令的使用

Nginx //启动服务

Nginx -s stop //关闭服务

Nginx -s reload //重新加载配置文件

Nginx -V //查看软件信息

Ps : netstat与ss命令都是查看系统中启动的端口信息,常用选项有:

-a:显示所有端口的信息

-n:以数字格式显示端口号

-t:显示TCP连接的端口

-u:显示UDP连接的端口

-l:显示服务正在监听的端口信息,nginx和httpd都是80,不可同时启用

-p:显示监听端口的服务名称是什么(程序名称)

7.关防火墙和selinux,访问测试页面,默认的网页根目录为/usr/local/nginx/html/

四、升级nginx服务器

1.编译新版本nginx软件,无需安装(./xxx make)

2.备份老的nginx主程序。并使用编译好的新版本nginx替换老版本

Mv /usr/local/nginx/sbin/nginx > /usr/local/nginx/sbin/nginxold

//备份的好处是当新版本不好用时可降回老版本

Cp 新版本目录下的objs/nginx /usr/local/nginx/sbin/ //拷贝新版本

Make upgrade 或 killall nginx 再重启

3.检查版本 -V

五、Nginx配置文件的基本框架

Vim /usr/local/nginx/conf/nginx.conf

全局配置(用户名,日志,进程)

User nginx; //进程所有者

Worker_processer 1; //启动进程数量(一般与cpu核数一样)

Error_log /var/log/nginx/error.log; //日志文件

Pid /var/run/nginx.pid; //PID文件

Events{

Worker_connections 1024; //单个进程最大并发量

...

}

http{

Server{ //定义虚拟主机

Listen 80;

Server_name localhost;

Location{ //发布目录

Root html;

Index ....

}

}

Server{

Listen 80;

Server_name www.xx.com;

Root www;

}

...

}

六、Nginx设置用户认证界面

目标:访问页面需要通过用户名:tom,密码:123456来登陆后才可以访问

1.修改配置文件

Server下{

Auth_basic “认证提示信息”;

Auth_basic_user_file “/usr/local/nginx/pass” //认证密码文件

Location前{}

...

}

2.安装生成密码的文件(httpd-tools),并创建用户和密码

Htpasswd -c /usr/local/nginx/pass tom //创建密码文件,与配置文件里面的路径对应

Htpasswd /usr/local/nginx/pass azby //追加用户,不使用-c选项

Cat /usr/local/nginx/pass //查看用户是否创建成功

3.重启nginx服务并访问测试

七、Nginx虚拟主机

分类:基于域名、端口、IP的虚拟主机

1.基于端口的虚拟主机

Server{

Listen 8080; //端口

Server_name www.xx.com;

...

}

Server{

Listen 8000; //端口

Server_name www.xxcom;

...

}

2.基于IP的虚拟主机

Server{

Listen 192.168.0.1:80;

Server_name www.xx.com;

...

}

Server{

Listen 192.168.0.2:8;;

Server_name www.xxcom;

...

}

3.基于域名的虚拟主机

Server{ //定义虚拟主机

Listen 80;

Server_name www.yy.com; //域名1

Location / { //发布目录

Root html; /usr/local/nginx/html/

Index .... //首页文件

}

}

Server{

Listen 80;

Server_name www.xx.com;

Location / { //发布目录

Root www; /usr/local/nginx/www/

Index ....

}

}

...

八、HTTPS加密网站

1.密钥分类

对称密钥:AES、DES 应用:RAR、ZIP压缩加密(单机加密)需要告诉别人密码,所以多用于单机

非对称密钥:RSA、DSA 应用:网络加密(https、ssh),对方有私钥,发传输信息用公钥加密,只有对方能解密

Hash值:MD5、SHA256、SHA512 应用:数据完整性校验,文件妙传

2.配置ssl加密网站

生成私钥 openssl genrsa > cert.key

生成证书 openssl req -new -x509 -key cert.key > cert.pem

修改配置文件

Server{

...

Ssl_certificate cert.pem; //指定证书文件

Ssl_certificate_key cert.key; //指定私钥文件

去掉配置文件里关于ssl的注释

...

Location{}

}

重启并https访问验证

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表