一、nginx简介
Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发, 性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高 达 50,000 个并发连接数
二、nginx安装和启动
采用docker进行安装,利用:
docker search nginx
搜索镜像,用:
docker pull nginx
下载最新的镜像文件,在nginx后添加“:‘版本号’”可以添加指定版本,创建nginx文件夹,同时创建配置文件,配置文件内添加内容如下:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
},
将容器的指定端口映射到宿主机的指定端口,并指定主页,以虚拟机90端口为例,在nginx/conf.d文件夹下创建90.conf文件,内容为:
server {
listen 90; # 监听的端⼝
server_name localhost; # 访问路径
location / { # 访问路径配置
root /usr/share/nginx/html;# 根⽬录
index index.html index.htm; # 默认⾸⻚
}
error_page 500 502 503 504 /50x.html; # 错误⻚⾯
location = /50x.html {
root html;
}
},启动nginx:
docker run -id --name=c_nginx \
-p 90:90 \ //将宿主机的90端口匹配到nginx容器的90端口,下面一样
-p 91:91 \
-p 92:92 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \ //将当前目录下的conf/nginx.conf挂载到容器的相应位置
-v $PWD/conf.d:/etc/nginx/conf.d \ //同上
-v $PWD/logs:/var/log/nginx \ //同上
-v $PWD/html:/usr/share/nginx/html \ //同上
nginx ,
此时外部访问宿主机端口就可以访问到静态主页。
三、静态页面绑定
利用域名绑定宿主机ip,在host文件中添加映射,例如:192.168.91.129 www.ceshinginx.com。在nginx配置文件中配置域名权限,在上面配置的90端口的配置文件中,将server_name所对应的localhost改为www.ceshinginx.com,此时在外部机器访问www.ceshinginx.com就可以访问已编写好的静态页面。
四、反向代理
反向代理(Reverse Proxy)⽅式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部⽹络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器
对外就表现为⼀个反向代理服务器。
实现反向代理的具体流程为:
1.配置并启动tomcat,安装不在赘述,启动tomcat:
docker run -id --name=tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat,
2.配置8080端口,在nginx/conf.d/下添加proxy.conf文件,写入:
upstream tomcat-ceshi{
server 192.168.91.129:8080; //这里设置自己虚拟机的地址
}
server {
listen 80; # 监听的端⼝
server_name www.kkb.com; # 域名或ip
location / { # 访问路径配置
# root index;# 根⽬录
proxy_pass http://tomcat-ceshi;
index index.html index.htm; # 默认⾸⻚
}
},
此时外部访问tomcat时,就会跳转到nginx进行处理。
五、负载均衡处理
添加多个端口到tomcat容器,将启动tomcat时 -p 8080:8080改为-p 8081:8080,就可以添加新的端口去访问tomcat。修改proxy.conf文件:
upstream tomcat-ceshi{
server 192.168.91.129:8080; //这里设置自己虚拟机的地址
server 192.168.91.129:8081;
server 192.168.91.129:8082;
}
server {
listen 80; # 监听的端⼝
server_name www.kkb.com; # 域名或ip
location / { # 访问路径配置
# root index;# 根⽬录
proxy_pass http://tomcat-ceshi;
index index.html index.htm; # 默认⾸⻚
}
error_page 500 502 503 504 /50x.html; # 错误⻚⾯
location = /50x.html {
root html;
}
} ,
此时外部访问tomcat就会发现8080,8081,8082三个端口轮流被访问。当想让某个端口访问次数提高时,在server语句最后添加weight=x,x为多少,这个端口就会多出现几次。
Nginx简介
最新推荐文章于 2023-11-02 11:41:42 发布