-
配置,并自动在/opt/nginx-1.12.2/下生成objs目录
-
[root@localhost nginx-1.12.2]# make
-
编译源代码,在/opt/nginx-1.12.2/objs下生成nginx可执行程序
-
[root@localhost nginx-1.12.2]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
-
将原来旧nginx改名
-
[root@localhost nginx-1.12.2]# cp /opt/nginx-1.12.2/objs/nginx /usr/local/nginx/sbin/nginx
-
将新生成的nginx拷贝过去
-
[root@localhost nginx-1.12.2]# make upgrade
-
重启服务
-
[root@localhost nginx-1.12.2]# killall nginx
[root@localhost nginx-1.12.2]# /usr/local/nginx/sbin/nginx
-
如果重启提示错误,可以先杀掉进程,再启动
-
用户认证
-
要求:
-
- 访问web页面需要进行用户认证
-
- 用户名为tom,密码为:123456
-
方案:
-
通过Nginx实现web页面的认知,需要修改Nginx配置文件,在配置文件中添加auth语句实现用户认证。最后使用htpasswd命令创建用户及密码即可。
-
步骤:
-
- 修改Nginx配置文件/usr/local/nginx/conf/nginx.conf
-
找到server,在server_name下添加两条语句
-
35 server {
36 listen 80;
37 server_name localhost;
38 auth_basic “Input Password:”;
39 auth_basic_user_file “/usr/local/nginx/pass”;
40
41 #charset koi8-r;
42
43 #access_log logs/host.access.log main;
44
45 location / {
46 root html;
47 index index.html index.htm;
48 }
auth_basic "Input Password"是认证提示符信息
auth_basic_user_file "/usr/local/nginx/pass"是认证的密码文件,需自己创建
-
- 生成密码文件,创建用户及密码
-
使用htpsswd命令创建账户文件,需要确保系统中已经安装了httpd-tools
-
[root@localhost conf]# yum -y install httpd-tools
-
使用htpasswd创建密码文件
-
[root@localhost conf]# htpasswd -c /usr/local/nginx/pass tom
New password:
Re-type new password:
Adding password for user tom
-
追加用户,不使用-c选项
-
[root@localhost conf]# htpasswd /usr/local/nginx/pass jerry
-
重新加载配置文件
-
[root@localhost conf]# nginx -s reload
-
基于域名的虚拟主机
-
目标:
-
- 实现两个基于域名的虚拟主机,域名分别为www.a.com和www.b.com
-
- 对域名为www.a.com的站点进行用户认证,用户名称为tom,密码为123456
-
方案:
-
修改Nginx配置文件,添加server容器实现虚拟主机功能;对于需要进行用户认证的虚拟主机添加auth认证语句。
-
虚拟主机一般可分为:基于域名、基于IP和基于端口的虚拟主机。
-
步骤
-
沿用上面的配置,将localhost该为www.a.com
-
35 server {
36 listen 80;
37 server_name www.a.com;
38 auth_basic “Input Password:”;
39 auth_basic_user_file “/usr/local/nginx/pass”;
40
41 #charset koi8-r;
42
43 #access_log logs/host.access.log main;
44
45 location / {
46 root html;
47 index index.html index.htm;
48 }
-
www.b.com使用后面的示例
-
使用:86,95s/#//反注释
-
86 server {
87 listen 80;
88 server_name www.b.com;
89
90 location / {
91 root www;
92 index index.html index.htm;
93 }
94 }
配置结束
-
创建www目录,和index.html文件
-
[root@localhost nginx]# cp -r html www
-
[root@localhost nginx]# vim www/index.html
-
reload配置
-
[root@localhost nginx]# nginx -s reload
-
SSL虚拟主机
-
目标:
-
域名为www.c.com
-
该站点通过https访问
-
通过私钥、证书对该站点所有数据加密
-
方案:
-
源码安装Nginx时必须使用–with_ssl_module参数,启用加密模块,对需要进行SSL加密处理的站点添加ssl相关指令(设置网站需要的私钥和证书)
-
加密算法一般分为对称算法、非对称算法、信息摘要
-
对称算法有:AES、DES,主要应用在淡季数据加密
-
非对称算法有:RSA、DSA,主要应用在网络数据加密
-
信息摘要:MD5、sha256,主要应用在数据完整性校验
-
步骤:
-
- 配置SSL虚拟主机
-
[root@localhost conf]# cd /usr/local/nginx/conf/
-
进入conf目录
-
[root@localhost conf]# cat cert.key
-
生成私钥
-
[root@localhost conf]# openssl req -new -x509 -key cert.key > cert.pem
-
生成证书:req请求、new新的、x509格式、key秘钥
-
打开nginx.conf,找到最后的模板,去掉注释
-
server {
listen 443 ssl;
server_name www.c.com;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}