我们的nginx / sites-available /文件夹中有2个文件。 odoo-80和odoo-443。如何在不创建循环的情况下为1条特定路径添加例外?如果我们将异常添加到443文件中,它会重定向回80文件,然后指向相反的文件...我通常使用apache而不是nginx进行工作,因此我很乐意提供帮助!
总而言之:我们要使用以下路径:/ pos / web使用http运行,其余所有使用https运行。
odoo-80文件
server {
listen 80;
server_name odoo.server.com;
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
location / {
rewrite ^/(.*) https://odoo.server.com:443/$1 permanent;
}}
Odoo-443文件
#odoo server
upstream odoo {
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
}
server {
listen 443;
server_name odoo.server.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
# Add Headers for odoo proxy mode
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
# SSL parameters
***
# log
***
# Redirect longpoll requests to odoo longpolling port
location /longpolling {
proxy_pass http://odoochat;
}
# Redirect requests to odoo backend server
location / {
proxy_redirect off;
proxy_pass http://odoo;
}
# common gzip
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
#pos20.07
#server {
# listen 443 default_server ssl;
# server_name odoo.server.com;
# Force pos in http for the posbox
# location ~ ^/pos/web {
# rewrite ^(.*)$ http://$host:80$1 permanent;
#}
答案 0 :(得分:0)
您可以在odoo-80文件中声明一个位置{},该位置应覆盖您所拥有的全部内容,因此它不应该首先将其发送到443。
server {
listen 80;
server_name odoo.server.com;
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
location ~ ^/pos/web {
proxy_redirect off;
proxy_pass http://odoo;
}
location / {
rewrite ^/(.*) https://odoo.server.com:443/$1 permanent;
}
}
另外,理查德·史密斯(Richard Smith)提到的话,将相同的代码块添加到443中,以防万一有人键入https://并注意他的呼叫:HSTS(我怀疑是已设置)
“我们”也应通过:D
方式发布到Serverfault上