现在创建了一个 Nginx,一个 Springboot 的项目,两个容器,我现在想让直接访问域名的方式,让 Nginx 代理到我的项目首页,请问这个 Nginx 应该怎么配置

2019-01-15 14:21:28 +08:00
 jackzhan
3785 次点击
所在节点    NGINX
14 条回复
xnode
2019-01-15 14:24:28 +08:00
Springboot 8080 nginx 80 然后 反带 127.0.0.1:8080
shangfabao
2019-01-15 14:32:03 +08:00
boot 跟 tomcat 启动起来都一样啊
jackzhan
2019-01-15 14:33:36 +08:00
@shangfabao 使用的 docker,没怎么用过,两个容器之间,不知道怎么弄
AndyVTEX
2019-01-15 14:47:37 +08:00
docker-compose 了解一下
SorcererXW
2019-01-15 14:48:39 +08:00
配置好容器的端口映射,然后正常配置 nginx 反代就好了,和直接部署 tomcat 一样
houzhimeng
2019-01-15 14:51:49 +08:00
不就是跟 tomcat 一样么。。。
jackzhan
2019-01-15 14:58:00 +08:00
我是 Nginx 小白。。。配置都是拷贝的
server
{
listen 80;
server_name localhost;
index /login; ==》 这个地方不能配置成访问的接口吗
root /;
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:8085;
fastcgi_index /login;
}
}

一直报错:*4 open() "/login" failed (2: No such file or directory), client: ******, server: ******, request: "GET / HTTP/1.1", host: "********"
小白一个,问下大佬,应该怎么配置
HangoX
2019-01-15 15:02:37 +08:00
你用 docker 的话,需要把 springboot 加入到 nginx 中的 docker 网络,不然 nginx 是没办法通过内部端口访问的,那个东西比较负责,但是有个项目可以一键完成,就是 ngxin-proxy 这个东西启动了之后,后面启动的东西只需要输入相应的域名一起启动就能都加入 ngnix 网络中,并根据域名进行反代了
jackzhan
2019-01-15 15:03:44 +08:00
@HangoX 谢谢,我去查查这个资料
CivAx
2019-01-15 15:13:17 +08:00
访问域名的方式:你配解析了吗?如果没有买域名,本地 named 服务装了吗? resolve.conf 的服务器改了吗

NGINX 代理到项目首页:项目有前端页面吗?对应开放端口是什么?前端展示端口暴露了吗? docker exec -it nginx bash 进去直接改 nginx.conf 加一条反代配置
edigar
2019-01-15 15:15:41 +08:00
应该是 proxy_pass 吧,映射到服务器可以访问到的端口
alexmy
2019-01-15 15:49:03 +08:00
server {
listen 80;
# 改为你的域名
server_name xxxx.com;
return 301 https://$host$request_uri;
}


upstream app_proxy {
# 后端网关地址
# least_conn;
# 这里转发到你的服务器上
server 172.19.1.23:8001 max_fails=10 fail_timeout=10s;
keepalive 16;
}

server {
listen 443;
# 改为你的域名
server_name xxxx.com;

# 1.5 版本后有警告
ssl on;

# 证书申请后请放在 /etc/nginx/ssl 对应的站点下(docker 中的路径)
ssl_certificate /etc/nginx/ssl/xxxx.com/fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/xxxx.com/xxxx.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;

server_tokens off;
sendfile on;

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript application/javascript text/css;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";

client_max_body_size 10m;

location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
set $Real $http_x_forwarded_for;
if ( $Real ~ (\d+)\.(\d+)\.(\d+)\.(\d+),(.*) ){
set $Real $1.$2.$3.$4;
}
proxy_set_header X-Real-Ip $Real;
proxy_pass http://app_proxy;
}
}

nginx 的配置,转发到你的服务器上,不了解 Sprintboot 什么的,希望对你有用。

上面的意思是: http 会跳转到 https,nginx 会转发到 app_proxy 对应的服务器上。
alexmy
2019-01-15 15:50:27 +08:00
`回复这里支持 md 格式吗,我测试下`
Leszeu
2019-01-15 15:58:29 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/527226

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX