我正在 Ubuntu 服务器上制作我的第一个 go 应用程序。当我使用可执行文件或简单地运行 main.go 来运行我的服务器时,我得到了要呈现的初始 html 页面,但没有 css、图像或 js。这些路线还将我带到 404 页面。唯一似乎通过的是 index.html(它被命名为 index.gohtml 作为 go 的模板)
当我在本地主机和服务器上的 ip:port 配置上运行它时,我的所有 Assets 都被加载,但是当我使用 nginx 时, Assets 根本没有加载。由于这些因素,我假设 nginx 是我遇到问题的地方。
以下是我目前所拥有的。这是我第一次使用 nginx,所以我不知道正确配置它需要什么。
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8001;
try_files $uri $uri/ =404;
}
请您参考如下方法:
您可能希望将 try_files
和 proxy_pass
分开到不同的位置:
location / {
try_files $uri $uri/ @proxy;
}
location @proxy {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8001;
}
如果静态文件不存在,请求将被转发到运行在端口8001上的服务。
参见 this document了解详情。