成功经验总结,正确配置五步搞定
一、安装Nginx
1、删除命令 yum remove nginx
2、使用 yum install nginx 命令安装
3、查看使用的配置文件
nginx -t
二、Nginx 阿里 HTTPS配置
/etc/nginx/nginx.conf
证书服务上下载 Nginx的证书
配置文件增加内容
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm;
ssl_certificate /etc/nginx/cert/1527604247222.pem;
ssl_certificate_key /etc/nginx/cert/1527604247222.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;
location / {
root html;
index index.html index.htm;
}
}
注意 ssl_certificate /etc/nginx/cert/1527604247222.pem; 配置的路径信息
配置完成后使用
nginx -t 命令进行配置信息校验
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
标示配置信息测试成功。
4、启动 nginx
systemctl start nginx
5、停止 nginx
ps aux | grep nginx
pkill -9 nginx
三、制作Nginx镜像
nginx.conf 文件如下:
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;
upstream tomcat_client {
server t01:8080 weight=1;
}
server {
server_name localhost; #域名
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
location / {
proxy_pass http://tomcat_client;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 443;
server_name localhost; #域名
ssl on;
root html;
index index.html index.htm;
ssl_certificate /etc/nginx/cert/1527604247222.pem;
ssl_certificate_key /etc/nginx/cert/1527604247222.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;
location / {
proxy_pass http://tomcat_client;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
Dockerfile 文件如下:
#基础镜像
FROM nginx
#作者
MAINTAINER NoTrustEvil
#定义工作目录
ENV WORK_PATH /etc/nginx
#定义conf文件名
ENV CONF_FILE_NAME nginx.conf
#删除原有配置文件
RUN rm $WORK_PATH/$CONF_FILE_NAME
#复制新的配置文件
COPY ./$CONF_FILE_NAME $WORK_PATH/
#SSL证书文件
ADD ./cert $WORK_PATH/cert
#给shell文件赋读权限
RUN chmod a+r $WORK_PATH/$CONF_FILE_NAME
注意事项
1、证书需要打包到镜像中
#SSL证书文件
ADD ./cert $WORK_PATH/cert
ssl_certificate /etc/nginx/cert/1527604247222.pem;
为docker容器中文件路径,在Dockerfile中配置,打包镜像的时候从宿主机上复杂到容器中。
2、反向代理的配置 nginx.conf 文件中通过
location / {
proxy_pass http://tomcat_client;
upstream tomcat_client {
server t01:8080 weight=1;
}
进行描述
3、t01 是指向的
docker-compose.yml 中的
links:
- sping101:t01
4、可以启动容器后进入Nginx容器中测试配置信息配置是否正确
docker exec -it image_nginx_nginx101_1 bash
exit 退出
四、制作docker-compose
docker-compose.yml 文件如下:
version: '2'
services:
nginx101:
image: myfznginx
links:
- sping101:t01
ports:
- "80:80"
- "443:443"
restart: always
sping101:
image: spingjpa
ports:
- "8080:8080"
restart: always
注意事项
links:
- sping101:t01
是将 sping101 容器以 t01 别名连接到 nginx101 容器,便于 nginx101 容器调用。
五、容器组启停
进入 docker-compose.yml 文件目录
后台启动 docker-compose up -d
停止 docker-compose stop
移除 docker-compose down
六、测试你的域名
这个时候应该能正常的实现 访问HTTPS域名,跳转到你的Tomcat服务中。
若无法访问,仔细检查之前的5个步骤,记住 归零心态很重要 。
实在查不出原因不要纠结不要气馁,从头再来一次。
网友评论