2016-01-29 2 views
0

У меня есть конфиг, который выглядит как: 1)Возможно соответствие директивы местоположения в nginx с номером порта?

server { 
    listen 80; 
    location/{ 
     proxy_pass http://localhost:8000; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
    } 
    location /static { 
     alias /home/www/flask-deploy/project/static/; 
    } 
} 

2) обновленный

server { 
listen 8080; 
server_name mysite.com; 

location/{ 
    proxy_pass http://localhost:8000; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
} 
location /static/ { 
    root /home/www/flask-deploy/blog; 
} 

}

Обновленный выпуск:

Если просмотреть mysite.com:8080/static/css/main.css , я вижу это, но если я посещаю mysite.com:8080, он будет показывать контент для #1 не #2

+0

Похоже, что это уже есть. Почему вы думаете, что это не так? Предполагая, что вы фактически владеете доменным именем и указали DNS на компьютере, на котором работает. – davidism

+0

Значит, это будет соответствовать mysite.com:8080? Nginx не запустится – CodeTalk

+0

Пожалуйста, отредактируйте свой вопрос, включив в него [mcve], например, указав фактическую проблему, с которой вы столкнулись. – davidism

ответ

0

Первая конфигурация включает в себя alias директиву и второй состоит root. Итак, в этом причина различия в их поведении. Ниже приведены примеры соответствия URI, и реальный путь в фс для обеих конфигураций:

location /static { 
     alias /home/www/flask-deploy/project/static/; 
    } 

http://somehost:80/static/somefile ->/дома/WWW/колбовую развернуть/проект/статический/некий-файл http://somehost:80/static/dir/somefile ->/Главная/WWW/колбовую развернуть/проект/статический/реж/ некий-файл

location /static/ { 
      root /home/www/flask-deploy/blog/static; 
     } 

http://somehost:8080/static/somefile ->/дома/WWW/колбовую развернуть/блог/статический/статический/некий-файл http://somehost:8080/static/dir/somefile ->/дома/WWW/колбовую развернуть/блог/статический/статический/реж/некий-файл

+0

Итак, это фиксированное # 1, но # 2 теперь загружает информацию о статике из # 1. Как я могу загрузить его для # 2? Обновление моей конфигурации для # 2 выше, если вы можете помочь – CodeTalk

+0

Обе директивы 'server' передают все запросы, кроме'/static', на 'http: // localhost: 8000'. Мы имеем только разницу между способами обслуживания запросов с URL-адресами, которые имеют префикс '/ static'. # 1 принимает все статические файлы из '/ home/www/flask-deploy/project/static /', а # 2 берется из '/ home/www/flask-deploy/blog/static/static' –

+0

См. Обновленный выше , Я удалил статику из директивы «root». Поскольку файлы находятся в static/not static/static. Тем не менее, он все еще показывает контент для # 1, а не # 2 каких-либо идей? – CodeTalk

Смежные вопросы