Devon
Devon

Reputation: 335

Python and Nginx issue

I'm trying to setup a python server using port 8080 and having nginx to proxy from port 80 to 8080.

Right now I have

python -m SimpleHTTPServer 8080 

running, but for some reason I can not get Nginx to proxy it. I keep getting a "404 Not Found" error. (nginx/1.10.2) Here is the config I have on Nginx.

server {
listen       80;
server_name  localhost;

#charset koi8-r;
#access_log  /var/log/nginx/log/host.access.log  main;

location /static/ {
#    root   /usr/share/nginx/html;
    root   /home/ec2-user;
    index  index.html index.htm;
    proxy_pass   http://localhost:8080;
}

#error_page  404              /404.html;

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}

Thank you

Upvotes: 1

Views: 1372

Answers (2)

Yun Dun
Yun Dun

Reputation: 1

You can actually embed Python code in nginx with the Python module https://github.com/arut/nginx-python-module

Upvotes: 0

Tim
Tim

Reputation: 2187

You need to remove the index directive inside your location block:

server {
listen       80;
server_name  localhost;

#charset koi8-r;
#access_log  /var/log/nginx/log/host.access.log  main;

location /static/ {
#    root   /usr/share/nginx/html;
    root   /home/ec2-user;
    # index  index.html index.htm; # It is looking for an index
    proxy_pass   http://localhost:8080;
}

#error_page  404              /404.html;

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}

The index makes nginx look for an index before the proxy_pass happens. Commenting it or removing it will resolve the issue.

Also, the root is not needed either. Just this actually:

locatioin /static/ {
    proxy_pass   http://localhost:8080/
}

Upvotes: 2

Related Questions