要通过openresty,ngin,MySQL和redis来部署一个项目
首先需要安装以上工具
安装openresty
yum intsall yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
首先执行这两行代码
然后就可以执行安装命令
yum install openresty -y
在安装完成后会默认存储在/usr/local/oprenresty目录中
安装nginx
下载nginx可以通过nginx的官网进行下载
官网地址:http://nginx.org/en/download.html
通过xftp等软件将nginx上传到linux操作系统中
对nginx进行解压缩
tar zxf nginx-1.8.0.tar.gz
安装nginx需要先将官网下载的源码进行编译,需要安装gcc
yum install gcc-c++
在linux上安装zlib库
yum install -y zlib zlib-devel
在linux上安装openssl库
yum install -y openssl openssl-devel
进入nginx目录,使用configure命令进行安装
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
编译安装
先使用make命令进行编译
make
再使用make install命令进行安装
make install
做一个访问测试
在浏览器输入ip
如果不能访问就需要配关闭防火墙
安装mysql
从docker中拉取mysql的镜像,然后创建一个容器即可,端口号要一致,默认为3306
安装redis
先要确认redis的编译环境的命令
yum install gcc-c++
安装时有输入提示,按y即可
安装redis
先将redis存储到/usr/local目录下
解压redis包
tar -zxvf redis-5.0.5.tar.gz
编译redis
进入解压包执行make命令
cd redis-5.0.5
make
安装
make PREFIX=/usr/local/redis install
copy文件,可以通过redis.conf文件修改端口号
cp redis.conf /usr/local/redis
后端启动
设置daemonize yes,然后可以用后端模式启动
vim redis.conf
daemonize yes
启动时,指定配置文件(这里所在的文件夹时redis)
./bin/redis-server ./redis.conf
redis默认的端口号时6379,可以通过当前服务进行查看
高并发案例准备工作
先启动openresty,测试访问,输入ip/,如果显示一下如下界面则表示成功
需求分析
需要在页面上能够显示广告的信息
用lua+nginx配置
数据时事先准备在mysql数据库中的,数据中的ip一定不能出错
思路:
定义请求:用查询数据库中的数据更新到redis中
a.连接mysql,按照广告分类id读取广告,转换为json字符串
b.连接redis,将广告表json存入redis
定义请求:
请求地址是id/update_content?id=1
创建/root/lua目录,在该目录下创建update_content.lua,目的就是连接mysql中的数据并存储到redis中,如下:ip一定要是自己的ip,以及数据库的库名,账户和密码一定要是自己的
并在/usr/local/openresty/nginx/conf/nginx.conf中存入以下代码:
重启nginx,进行测试是否成功
测试地址:ip/update_content?id=1
在这个时候分类id=1的广告就会被查询出来存到redis中
出现如图页面就表示测试成功
从redis中获取数据
请求如下
在/root/local目录下创建一个read_content.lua文件
在文件中写入一下代码:
ip一定要是自己的ip
在/usr/local/openresty/nginx/conf/nginx.conf文件中存入以下代码:
重启nginx,进行测试
输入ip/read_content?id=1
此时会将分类id=1的所有广告查询出来,如图:
此图中就是我在mysql中事先存入的数据
由此可见mysql中的数据已经存进了redis中
将事先准备好的html文件上窜到nginx中,地址是/usr/local/openresty/nginx/html
测试一下是否可以接通,可以通过ip直接访问
因为每个项目都是不一样的,所以只要见到的项目没有问题就表示已经部署成功了
遇到的一些问题
在update_content.lua和read_content.lua中一定要将自己的ip改为自己的ip,同时也要将相关部分修改成自己的,比如端口号,数据库的账号密码以及库名
如果无法访问update的测试页面
可能是因为自己的ip或者数据库的相关部分和自己虚拟机上的部分不一致,或者和主机上的数据库不一致,又或者没有镜像,没有连接数据库等都可能造成无法访问update页面的问题
如果无法访问read的测试页面
如果能够访问update却无法访问read,则很有可能是因为read中的ip部署有误,又或者是nginx.conf中输入的内容有误,如图:
location是和location在一起的,不能分开,路径也不能有误,如果有一个出现错误read都无法运行
还有就是可能在update_content和read_content这两行location中有可能会有一些特殊符号,在部署项目的时候一定要注意
如果两个文件都没有问题但是最终的项目部署发现有问题,那应该就是html文件的问题了,可以先检查HTML中是否存在错误
标签:解决办法,temp,并发,--,ip,redis,nginx,首页,安装 From: https://blog.csdn.net/m0_70862775/article/details/140698920