【发布时间】:2019-06-16 09:41:06
【问题描述】:
我的云服务器 8084 端口上运行了一个 Rest-API。当我尝试访问 mysitename:8084/swagger-ui.html 时,可以看到 Swagger 的 Api Documentation 页面。但是当我以 mysitename.com/api/swagger-ui.html 尝试此操作时,出现 404 错误。
我在 StackOverflow 上阅读了很多关于这个问题的类似问题,我尝试了不同的解决方案但我无法成功。
这是我的 nginx 配置文件
server {
listen 80;
listen [::]:80;
root /var/www/mysitename.com/html/;
index index.html index.htm index.nginx-debian.html;
server_name mysitename.com www.mysitename.com;
}
server {
listen 443;
server_name mysitename.com www.mysitename.com;
ssl_certificate /etc/letsencrypt/live/mysitename.com/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/mysitename.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/petahr.access.log;
location / {
root /var/www/mysitename.com/html/;
index index.html index.htm index.nginx-debian.html;
}
}
server {
listen 443;
server_name mysitename.com www.mysitename.com;
ssl_certificate /etc/letsencrypt/live/mysitename.com/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/mysitename.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location /api/ {
proxy_set_header Host $host;
proxy_pass https://127.0.0.1:8084/;
proxy_read_timeout 90;
try_files $uri $uri/ =404;
}
}
编辑
这是nginx -T 输出
/etc/nginx/sites-available$ sudo nginx -T
nginx: [warn] conflicting server name "mysitename.com" on 0.0.0.0:443, ignored
nginx: [warn] conflicting server name "www.mysitename.com" on 0.0.0.0:443, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
如果你能帮助我,我将不胜感激。
【问题讨论】:
-
您似乎有两个
server块具有相同的listen和server_name。我怀疑其中第一个正在处理请求,而带有反向代理的请求被忽略了。使用nginx -T(大写T)测试你的配置,查看Nginx正在读取的整个配置。 -
嗨@RichardSmith,谢谢你的回答。看来您是对的,我在帖子中添加了 nginx -T 输出。你能帮我解决这个冲突吗?
标签: rest nginx nginx-location nginx-reverse-proxy