项目实战1—LNMP的搭建、nginx的ssl加密、身份验证的实现

254 阅读2分钟

一、搭建LNMP及商业网站的实现

1. 安装包、开启服务

yum -y install nginx mariadb-server php-fpm php-mysql

如果nginx安装失败就需要安装epel-release。装上了 EPEL之后,就相当于添加了一个第三方源。

yum install epel-release yum update

如果epel-release安装失败配置centos镜像 阿里云:developer.aliyun.com/mirror/cent…

然后再次执行 yum -y install nginx mariadb-server php-fpm php-mysql

systemctl start nginx

systemctl start mariadb

systemctl start php-fpm

2. 修改nginx的配置文件

(1)cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf 有个模板例子覆盖了配置文件 vi /etc/nginx/nginx.conf修改下面几项

① user root;   使用用户
error_log  /var/log/nginx/error.log  info;   错误日志
② events {
    worker_connections  65535;    
}
④ server {
        listen       80;
        server_name  localhost;
        root         /usr/share/nginx/html;
        location / {
            root   html;
            index  index.php index.html index.html;
        }


location ~ .php$ {      # 开启.php,配置文件有例子,只需去掉注释,修改一行即可
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME       $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

(2)修改完,可以nginx -t 查看发现有[warn]65535

重启systemctl restart nginx

屏幕截图 2021-10-11 122115.png

image.png

(3)ulimit -n查看linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值。

ulimit -n 65535 修改内核参数

3. 把网站传进/home/www

然后就可以连接数据库了

二、SSL加密

(1)一个物理服务器设置一个https

1. 创建存放证书的目录

mkdir /etc/nginx/ssl

2. 自签名证书

cd /etc/pki/tls/certs/

make nginx.crt

image.png openssl rsa -in nginx.key -out nginx2.key 因为刚私钥被加密了,为了后边方便,解密

3. 把证书和私钥cp 到nginx存放证书目录

cp nginx.crt nginx2.key /etc/nginx/ssl/

cd /etc/nginx/ssl/

mv nginx2.key nginx.key 把名字改回来

4. 修改配置文件,加一段server

server {
    listen       443 ssl;
    server_name www.along.com
    ssl on;
    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;
    ssl_session_cache  shared:sslcache:20m;
    ssl_session_timeout  10m;

1634367461(1).png

(2)因为nginx 强大,可以实现多个虚拟主机基于不同的FQDN 实现ssl加密,httpd不能实现

一个物理服务器设置多个https

1、生成3个证书和私钥

make nginx2.crt

make nginx3.crt

image.png

2、把证书和私钥cp 到nginx存放证书目录,并解开私钥的加密

cp nginx{2,3}* /etc/nginx/ssl/

openssl rsa -in nginx2.key -out nginx2.key

openssl rsa -in nginx3.key -out nginx3.key

3、创建各自对应的访问网页

mkdir -p /app/website{1,2,3}

echo website1 > /app/website2/index.html

image.png

三、## 实现身份验证

1. 生成密码账户文件

image.png

2. 生成密码账户文件

vim /etc/nginx/nginx.conf 在location段中指向账户密码文件

image.png

3. 网页查看验证

image.png