docker、nginx、jar
windows修改nginx配置文件后,重启nginx命令
之前每次改配置文件,为了让修改后的配置生效都要在任务栏中找nginx杀进程,太麻烦了
nginx -s reload
java -jar 参数不生效,是因为main方法没有加args
java -jar -Dfile.encoding=utf-8 /emqx.jar --server.port=9001
Linux下执行Shell脚本出现$‘\r‘: command not found解决方法
原因: 是Windows和Linux的.sh脚本文件格式不同,如果在脚本中有空行,脚本是在Windows下进行编辑之后上传到linux上去执行的话,就会出现这个问题。 windows 下的换行符是\r\n,而 linux 下的换行符是\n,没有识别/r,所以会导致上述的报错,这个属于脚本编码的问题。 解决方法:(运行以下命令即可修改该脚本格式) 在start.sh对应脚本目录下,执行以下命令即可。 vim start.sh :set ff=unix :wq
#!/bin/bash
镜像制作完成后输入 docker run -d --privileged=true -p 10081:80 -v /root/centos/start.sh:/start.sh -v /root/centos/html:/usr/local/nginx/html -v /root/centos/nginx.conf:/usr/local/nginx/conf/nginx.conf -v /root/centos/emqx.jar:/emqx.jar c7-jdk8-nginx1.8:v1 /start.sh 执行上述命令后,使用docker ps 发现容器并未运行, 继续使用docker logs xxx(容器id) 显示如下信息: standard_init_linux.go:190: exec user process caused "exec format error" 原因 sh文件里缺少 #!/bin/bash
#!/bin/bash /usr/local/nginx/sbin/nginx java -jar -Dfile.encoding=utf-8 /emqx.jar --server.port=9001
nginx conf
worker_processes 1; events { worker_connections 1024; } #http块 http { #http全局块 include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #server块 server { #server全局块 listen 80;#监听端口 server_name 192.168.44.128#监听地址,填自己服务器ip 0.0.0.0 不做限制 charset utf-8; #location块很重要!!!! location / { root /usr/share/nginx/html/dist;#前端资源路径 try_files $uri $uri/ /index.html; index index.html index.htm; } # 配置地址拦截转发,解决跨域验证问题 location /prod-api/ {# proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://192.168.44.128:8080/;#后端转发地址,你的服务器ip+端口 以斜杠结尾,会去掉请求路径中的prod-api,去掉斜杠,路径不做处理 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } include /etc/nginx/conf.d/*.conf; }
Docker容器中的/etc/hosts文件与--add-host
docker run --name api-dist3 --add-host=apihost:192.168.4.104 -d -p 934:10001 api-dist:v3
server { listen 10001; server_name 0.0.0.0; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; client_max_body_size 50m; location / { root /usr/share/nginx/html/dist/; try_files $uri $uri/ /index.html; index index.html index.htm; } location /tg5000-api/ { proxy_ignore_client_abort on; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 600s; proxy_pass http://apihost:9002/api/; } }
给start.sh添加权限
chmod 777 start.sh