我正在使用SSL保护Nginx服务器,我有一个问题。我有两个虚拟服务器,一个用于在端口80中进行http侦听,而https在443中进行侦听,如下所示:
# HTTP server
server {
listen 80;
server_name localhost;
...
# many configuration rules here for caching, etc
}
# HTTPS server
server {
listen 443 ssl;
server_name localhost;
...
}
问题是,我是否需要将http版本中的所有配置规则复制到我的https版本中?有没有办法避免重复所有这些规则?
更新 我试图根据@ibueker的答案配置包含。看起来很简单但不知何故不起作用。包含是否需要位于某个位置?附例:
# HTTP server
server {
listen 80;
server_name localhost;
...
include ./wpo
}
其中wpo文件位于同一路径中,如:
# Expire rules for static content
# RCM: WPO
# Images
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
root /home/ubuntu/env/production/www/yanpy/app;
expires 1w;
add_header Cache-Control "public";
}
# CSS and Javascript
location ~* \.(?:css|js)$ {
root /home/ubuntu/env/production/www/yanpy/app;
expires 1w;
add_header Cache-Control "public";
}
# cache.appcache, your document html and data
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
root /home/ubuntu/env/production/www/yanpy/app;
expires -1;
}
答案 0 :(得分:1)
您可以将它们放在另一个文件中,并将它们包含在两个服务器块中。
include /path/to/file;