目录
这块之前遇到了点问题但是没有做出来,只理清了大体逻辑。
- 服务器上安装nginx
- 使用docker-compose配置nginx
- 然后在nginx.conf里面配置进行域名代理
好用了~~~之前使用域名访问不成功的原因是:
proxy_pass配置的localhost,发现再docker中使用localhost访问不到服务器。
猜测原因是docker的网络配置的可能有问题,换成服务器IP就可以正常使用了!
一、安装nginx
1.使用docker安装nginx之准备配置文件
docker search nginx
docker pull nginx
# 创建一个nginx目录,用于挂载nginx容器中的配置文件
cd /home/test
mkdir nginx
cd nginx
mkdir conf
mkdir log
mkdir html
docker run -d -p 80:80 --name nginx --restart=always nginx
docker ps
docker cp nginx:/etc/nginx/nginx.conf /home/test/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /home/test/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /home/test/nginx/
2.启动容器
docker rm -f nginx
# 重新启动容器
docker run -d -p 80:80 --name=nginx --privileged=true -v /home/test/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/test/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/test/nginx/log:/var/log/nginx -v /home/test/nginx/html:/usr/share/nginx/html nginx
# 测试nginx启动是否成功
curl 127.0.0.1:80
二、配置conf
1.配置文件
server {
listen 80;
server_name test.com;
#location / {
rewrite ^(.*) https://test.com$1;
#}
}
server {
listen 443 ssl;
server_name test.com;
ssl_certificate /usr/share/nginx/html/ssl/test.com.pem;
ssl_certificate_key /usr/share/nginx/html/ssl/test.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
proxy_buffering off;
client_max_body_size 200m;
location ^~ / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
}
#location ^(/v3|/webjars|/swagger-resources|/swagger-ui/html.html){
# proxy_buffer_size 128k;
# proxy_buffers 32 128k;
# proxy_busy_buffers_size 128k;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_pass http://127.0.0.1:8080/web;
#}
}
2.配置 Nginx 反向代理
- 在 Nginx 配置文件中,创建一个新的服务器块,并设置 server_name 为您的域名。
- 使用 proxy_pass 指令将请求转发到 Spring Boot 应用程序运行的端口。
- 设置其他必要的 Nginx 配置,如 SSL/TLS 证书、缓存设置等。
三、总结
- Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
- Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
- Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。
- Nginx支持热部署,启动简单,可以做到7*24不间断运行。几个月都不需要重新启动。
这是一个使用jenkins持续集成springboot项目的整体案例:
- springboot项目打包,以及打包出现的各种问题;
- jenkins任务的详细配置
- 服务器上的操作步骤
- nginx的代理过程
相关内容详见:
使用jenkins持续集成springboot项目(三、上服务器)