一.nginx简介
Nginx是一个高性能的HTTP和反向代理服务器,它以其轻量级、占用资源少、并发能力强而广受欢迎。
详细介绍
- 开发背景与特点:Nginx由俄罗斯人Igor Sysoev开发,它是一个自由的、开源的软件。Nginx设计上注重性能和效率,能够在较低的硬件配置上提供高并发的服务。
- 功能分类:Nginx主要有三大功能分类:作为Web服务软件,处理网站页面的请求与响应;作为反向代理服务器,隐藏后端服务器的真实IP,并提供缓存等加速功能;以及基于upstream模块实现负载均衡,分散到多个服务器上以平衡请求。
- 性能表现:Nginx能够支持高达50,000个并发连接数的响应,且在高并发环境下仍保持低内存消耗和CPU使用率,这使得Nginx成为Apache服务器的理想替代品。
- 平台支持:Nginx是跨平台的,可以在多种操作系统上运行,包括Linux、Windows等。
- 常用功能:除了基本的网站托管和反向代理之外,Nginx还具备诸如负载均衡、充当静态资源服务器等高级功能。
- 社区与企业支持:Nginx在全球范围内有着庞大的用户群体,包括中国大陆的多家知名互联网公司,如百度、京东、新浪等都使用Nginx作为其主要的Web服务平台。
- 安装与配置:推荐通过源码编译安装Nginx,这样可以根据需要定制功能模块。同时,Nginx支持热启动,意味着可以在不停止服务的情况下重新加载配置文件。
- 安全性:Nginx社区活跃,定期发布更新来修复已知的安全漏洞,确保用户使用的服务器安全可靠。
- 扩展性:Nginx可以通过模块进行扩展,例如支持HTTP/2、WebSocket等现代网络技术。
二.nginx配置安装(自启动)
一键安装4个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
下载并解压安装包
tar -xvf nginx-1.13.7.tar.gz -C /usr/local/java/
进入安装包目录
cd nginx-1.13.7
# 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module
安装
make && make install
conf:反向代理,动静分离都在这里
html:静态资源,动静分离,前端项目丢这里面
logs:日志文件
sbin:启动项目都在这里面
进入sbin启动项目
进入编辑器vim /etc/rc.d/rc.local
usr/local/nginx/sbin/nginx
输入命令cd/etc/rc.d进入该文件目录给rc.local授予可读-可写-可执行,可读-可执行,可读-可执行
然后上输入reboot重启
三.nginx负载多个tomcat部署后端项目
使用递归复制两个tomcat一个8080/8081
cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20-8081/
输入命令vim server.xml进入编辑把其中的端口号都加1
开放端口
在/usr/local/nginx/conf/中输入
upstream tomcat_list { #服务器集群名字
server 127.0.0.1:8080 weight=1; #服务器1 weight是权重的意思,权重越大,分配的概率越大。
server 127.0.0.1:8081 weight=1; #服务器2 weight是权重的意思,权重越大,分配的概率越大
}
把数据导入数据库
然后启动项目./startup.sh
四.nginx前端部署
把项目导入 usr/local/mypro
下载unzip解压命令
yum install -y unzip
unzip blog.zip解压
在/usr/local/nginx/conf/里面添加
server_name www.zking.com; #当前服务的域名(虚拟域名也可以)
root /usr/local/mypro/dist; #将要访问的网站的根目录,nginx节点会自动继承父节点的配置;这里放到/usr/local/*,放到其他路径下会有权限相关问题;必要的时候配置Nginx.conf的user为root# 代理配置
location / {
#该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍
try_files $uri $uri/ /index.html;
}
location ^~/api/ {
#^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除api
proxy_pass http://tomcat_list/;
}