Nginx基础(01)

Nginx

安装包位置 /linux-soft/s2/wk/lnmp_soft.tar.gz

安装Nginx(源码编译)

安装包
  • gcc

  • make

  • pcre-devel #正则表达式依赖包

  • openssl-devel #ssl加密依赖包

  • nginx-1.22.1.tar.gz #nginx版本包

解压安装包

tar -xf nginx-1.22.1.tar.gz

详细安装nginx
  • 指定安装地址 , 指定用户,组来设定权限 , 开启加密模式确认安全

[ ./configure ] #安装
–prefix=/usr/local/nginx #指定安装路径 , 默认为 /usr/local/nginx
–user=nginx #指定用户 , 默认为 nobody
–group=nginx #指定组
–with-http_ssl_module ] #开启SSL加密功能

/usr/local/nginx/ 为具体目录

conf/nginx.conf 配置文件 sbin 主程序
html 网站目录
logs 日志文件
sbin/nginx 启动脚本

/usr/local/nginx/sbin/nginx                    #启动服务
/usr/local/nginx/sbin/nginx -s stop            #关闭服务
/usr/local/nginx/sbin/nginx -s reload        #重新加载配置文件
/usr/local/nginx/sbin/nginx -V                #查看软件信息

nginx服务默认通过TCP 80端口监听客户端请求:

ss  -anptu  |  grep nginx
Nginx 用户认证
  • 通过Nginx实现Web页面的认证,需要修改Nginx配置文件,在配置文件中添加auth语句实现用户认证。
  • 使用htpasswd命令创建用户及密码即可

修改/usr/local/nginx/conf/nginx.conf

# vim /usr/local/nginx/conf/nginx.conf
.. ..   # 34行
server {
	listen       80;
    server_name  localhost;
    auth_basic "Input Password:";                  # 38行 认证提示符信息   
    auth_basic_user_file  "/usr/local/nginx/pass";  # 39行 认证的密码文件   
    location / {
    root   html;
    index  index.html index.htm;
    }
}

生成密码文件,创建用户及密码
安装 httpd-tools包

[root@proxy nginx]# yum -y install  httpd-tools
[root@proxy nginx]# htpasswd -c /usr/local/nginx/pass tom       
													#创建用户/密码文件
New password: 新密码
Re-type new password: 新密码
Adding password for user tom

重新加载配置

[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload    
		#重新加载配置文件    
		#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:

基于域名的虚拟主机

配置 www.a.com 和 www.b.com

修改Nginx服务配置
# vim /usr/local/nginx/conf/nginx.conf
http {                                       #17 行到最后中间加入
.. ..
	server {
		listen       80;                                      #端口
    	server_name  www.b.com;                    #新虚拟主机定义域名
    	location / {
    		root   html_b;                         #指定网站根路径
        	index  index.html index.htm;            #默认页面
     	}
     }
     server {
     	listen  80;                                        #端口
        server_name  www.a.com;               #默认的虚拟主机,修改域名
        location / {
        	root   html-a;                        #指定网站根路径
            index  index.html index.htm;
         }
      }
}
创建网站根目录及对应首页文件
mkdir html_b html_a    #创建b网站的目录
echo "nginx-A~~~"  > html_a/index.html      #创建a网站测试页
echo "nginx-B~~~"  > html_b/index.html    #创建b网站测试页
vim  /etc/hosts    #修改hosts文件添加ip和域名的映射关系
192.168.99.5  www.a.com  www.b.com
恢复原本配置文件

cp /usr/local/nginx/conf/nginx.conf.default /usr/local/nginx/conf/nginx.conf

#备份的源文件 覆盖掉 当前文件

SSL虚拟主机

通过httpd访问

通过私钥、证书对该站点所有数据加密

对称算法有:AES、DES,主要应用在单机数据加密。

非对称算法有:RSA、DSA,主要应用在网络数据加密

Hash值 : 对比Hash值可以查看数据完整性 , 进行校准

  1. MD5

  2. SHA256

  3. SHA512

配置SSL虚拟主机
修改Nginx配置文件,设置加密网站的虚拟主机
    #vim  /usr/local/nginx/conf/nginx.conf
    … …    
    server {
            listen       443 ssl;
            server_name            localhost;
            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   https;                        #加密网站根目录
                index  index.html index.htm;
            }
        }


生成私钥与证书
openssl genrsa > conf/cert.key            #生成私钥
openssl req -x509 -key conf/cert.key > conf/cert.pem    
				#生成证书,生成过程会询问诸如你在哪个国家之类的问题,可以随意回答
	Country Name (2 letter code) [XX]:dc    国家名
	State or Province Name (full name) []:dc    省份
	Locality Name (eg, city) [Default City]:dc     城市
	Organization Name (eg, company) [Default Company Ltd]:dc    公司
	Organizational Unit Name (eg, section) []:dc    部门
	Common Name (eg, your name or your server's hostname) []:dc 服务器名称
	Email Address []:dc@dc.com     电子邮件
客户端验证
[root@proxy nginx]# mkdir https    #创建安全网站的目录
[root@proxy nginx]# echo "https~~~~ "  > https/index.html
									#创建安全网站的页面
[root@proxy nginx]# sbin/nginx    #服务没开的话开服务
    [root@proxy nginx]# sbin/nginx -s reload    #已经开了的话重加载配置
[root@proxy nginx]# curl  -k  https://192.168.99.5   #检验,-k是忽略安全风险
    https~~~~      #看到这个内容就说明实验成功
[root@proxy nginx]# systemctl stop firewalld   #如果用真机的火狐浏览器测试需要
    关闭防火墙,然后输入https://192.168.99.5 
上一篇:Object.is方法和==和===区别


下一篇:算法训练营第32天|LeetCode 122.买卖股票的最佳时机Ⅱ 55.跳跃游戏 45.跳跃游戏Ⅱ