NGINX搭建

NGINX搭建
一 、安装所需要的工具
包:lnmp_soft.tar.gz----->nginx-1.17
其他所需要的包:gcc,pcre-devel,openssl-devel

二、编译所需要的模块
1.–with-http_ssl_module----------->web安全加密模块
2.–with-stream----------->四层代理模块
3.–with-http_stub_status_moudle----------->查看网站后台数据
三、编译阶段
1.进入nginx目录中使用./configure 编译,并添加安全加密模块(–with-http_ssl_module)
格式:./configure --with-http_ssl_module
2.make &&make install 进行编译安装
3.编译完成可在/usr/local/nginx/ 查看是否有四个目录:sbin,log,http,conf,
4.查看安装的模块:/sbin/nginx -V
额外了解:
./configure --prefix=/usr/local/nginx //指定安装路径
–user=nginx //指定用户
–group=nginx //指定组
主要目录功能:
conf //存放配置文件
html //存放网站页面
logs //存放日志
sbin //主程序目录
四、服务开启
1.开启:sbin/nginx
2.关闭:sbin/nginx -s stop
3.重新加载:sbin/nginx -s reload
五、网站认证功能
1.在配置文件中添加http内
auth_basic password:; //提示信息,用户登录网站时看到的
auth_basic_user_file /usr/local/nginx/pass; //存放用户名密码的文件路径

2.生成密码:htpasswd -c 密码文件 用户
安装包: httpd-tools //安装网站工具包,支持htpasswd命令

3.重新加载服务即可:/sbin/nginx -s reload
六、nginx虚拟主机设置
http {
server {
listen :80;
server_name www.a.com;----->域名
root html;----->网页根目录
index index.html;----->网页
}
}
七、ssl技术的安全web
加密算法一般分为对称算法、非对称算法、信息摘要。
对称算法有:AES、DES,主要应用在单机数据加密。
非对称算法有:RSA、DSA,主要应用在网络数据加密。
信息摘要:MD5、sha256,主要应用在数据完整性校验。
1、搭建加密网站只需要配置文件修改:域名和根目录即可
在这里插入图片描述

2、加密生成公私钥
openssl genrsa >conf/cert.key 创建私钥
openssl req -new -x509 -key conf/cert.key >conf/cert.pem 根据刚刚创建的私钥,再创建证书
八、LNMP部署环境
静态网站在不同环境下,浏览网站的内容不会发生变化
动态网站在不同环境下,浏览网站的内容有可能会发生变化,该种类网站显示内容效果更好,会让用户体验更好,更适合目前市场环境
L:Linux操作系统
N:Nginx网站服务软件
M:MySQL、MariaDB数据库
P:网站开发语言
1.MP包安装
M:mariadb,mariadb-server,mariadb-devel--------->3306
P:php,php-mysql,php-fpm--------->9000端口
2.动态分离
修改配置文件
在这里插入图片描述

3.测试数据库内容
mysql 登录数据库,手工创建dc账户
MariaDB [(none)]> create user dc@localhost identifiedby ‘123’;
再用刷新http://192.168.2.5/mysql.php页面,会看到dc账户
4.地址重写
在http中重写地址
格式:rewrite 旧地址(支持正则) 新地址 [选项]

➢ 相同网站内的页面跳转
rewrite ^/a.html$ /b.html;
➢ 相同网站内的页面跳转,地址栏会变化
rewrite ^/a.html$ /b.html redirect; //添加了重定向选项
➢ 不同网站的地址跳转
rewrite / http://www.tmooc.cn; 访问老网站,跳转到新的
➢ 不同网站的相同页面的地址跳转
rewrite ^/(.*)$ http://www.tmooc.cn/$1;访问老网站的某个页面时,跳转到新网站对应的相同页面

➢ 根据用户的情况决定跳转到什么样的页面
if (KaTeX parse error: Expected '}', got 'EOF' at end of input: …表匹配正则,*是不区分大小写,http_user_agent是nginx的内置变量,存储了用户的信息,比如用的什么浏览器
rewrite ^/(.*)$ /firefox/$1; //就跳转到火狐专用目录的页面
}
➢ 地址重写相关选项:
last 不再读其他rewrite
break 不再读其他语句,结束请求
redirect 临时重定向 状态码302
permanent 永久重定向 状态码301
5.代理网站
➢ 建立集群
upstream web {
server 192.168.2.100:80;
server 192.168.2.100:80;
}
在server里location中调用集群
proxy_pass http://web;
➢ 加权重来实现任务分配
server 192.168.2.100:80 weight=2;
权重值越大,任务量越多
➢ 健康检查
server 192.168.2.100:80 max_fails=2 fail_timeout=30;
连接失败两次后,需要等待30s后才能再次连接
➢ 维修
server 192.168.2.100:80 down;
加down标记,使集群服务器暂时不参
与集群的任务轮询
➢ 相同客户机访问相同服务器
upstream web {
ip_hash //相同客户机访问相同服务器,让一个客户机访问集群时锁定
一个后台服务器,避免重复登陆的问题
server192.168.2.100:80;
server 192.168.2.200:80;
}
6.其他业务集群

➢ 安装相关模块
./configure --with-stream --with-http_stub_status_module
make
make install
➢ 创建集群
在http上面创建集群
stream { //创建新业务
17 upstream backend { //创建名叫backend的集群
18 server192.168.2.100:22; //集群中的主机使用22端口对外提供服务
19 server192.168.2.200:22;
20 }
21 server {
22 listen 12345; //监听端口号
23 proxy_passbackend; //调用集群
24 }
25 }
➢ 连接测试
ssh 192.168.2.5 -p 12345 //使用12345端口号连接代理服务器
➢ 删除记录
rm -rf ~/.ssh/known_hosts //先删除远程连接的主机记录,之
后每次连接测试都先删除该文件
7.地址过长优化
➢ 修改nginx配置文件
在server上面添加:
client_header_buffer_size 200k; //存储地址栏等信息的空间大小
是200k
large_client_header_buffers 4200k; //如果不够再给4个200k
修改:
worker_processes 2; //开启的nginx进程数量,通常是随cpu的核心数一致
worker_connections 50000; //每个nginx进程支持的并发访问量

➢ 压力测试安装
yum -y install httpd-tools //安装支持压力测试命令的软件包
ab -c 1000 -n 1000 http://192.168.2.5/ //使用压力测试工具模拟1000人,一共1000次, 相当于每人访问1次,看到100%的提示说明成功,但是增加到2000之后就不行了

➢ 修改文件访问限制
vim /etc/security/limits.conf //修改53、54行,将下列两项内容修改为10万

  •  soft    nofile      100000
    
  •  hard    nofile      100000
    

➢ 查看限制
ulimit -n //检查系统对文件打开数量的值,默认1024,之后则显示10万

➢ 临时修改限制
ulimit -Hn 100000
ulimit -Sn 100000
8.解决重复登陆问题
Session:存储在服务器端,保存用户名、登陆状态等信息。
Cookies:由服务器下发给客户端,保存在客户端的一个文件里。

分别在不同的主机服务器设置LNMP环境搭建,并实现动静分离服务
然后将web1与web2的/var/lib/php/session目录中的所有session文件删除,然后再删除浏览器的历史记录(Cookies),再次登录,发现必须登录两次才能成功。

➢ 安装memcache数据库
yum -y install memcached //安装数据库工具
systemctl start memcached //启动服务
yum -y install telnet //安装远程登录工具,为了测试memcache
➢ 连接测试
telnet 127.0.0.1 11211 //使用远程工具连接到本机的11211端口,该端口就是memcached服务
set abc 0 200 3 //创建(覆盖)变量abc 0是不压缩,保存200秒,存3个字符
get abc //获取abc变量的值
add abc 0 200 3 //添加变量abc,如果变量已经存在,则添加失败
replace abc 0 200 3 //覆盖变量abc,如果变量不存在,则覆盖失败
delete abc //删除变量abc
flush_all //删除所有数据
quit //退出
➢ 在web1与web2主机修改session存储的位置,实现session共享
yum -y install php-pecl-memcache //安装php与memcached服务关联的软件包
vim /etc/php-fpm.d/www.conf //到最后一页修改配置
php_value[session.save_handler] = memcache //这里改成memcache
php_value[session.save_path] = tcp://192.168.2.5:11211 //session存储位置
systemctl restart php-fpm //重启fpm服务,让上述配置生效
所有服务器关闭selinux

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值