- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有用于当前和旧应用程序的 nginx 配置,其中两个 block 之间的唯一区别是特定于 DNS 的条目和根路径。如何将配置的特定部分放入变量或其他内容中,然后在两个服务器配置 block 中调用该变量?
server {
listen 0.0.0.0:443 ssl;
server_name mysite.com;
ssl_certificate /etc/ssl/server.crt;
ssl_certificate_key /etc/ssl/server.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers RC4:HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:15m;
ssl_session_timeout 15m;
root /home/deployer/apps/myapp/current/public;
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
return 403;
}
if ($http_user_agent ~* (spider|AcoiRobot|msnbot|scrapbot|catall|wget) ) {
return 403;
}
location ^~ /assets/ {
gzip_static on;
gzip_vary on;
expires max;
add_header Cache-Control public;
}
location ~ \.(gif|png|jpe?g|JPE?G|GIF|PNG {
valid_referers none blocked mysite.com *.mysite.com;
if ($invalid_referer) {
return 403;
}
}
location /evil/ {
valid_referers none blocked mysite.com *.mysite.com;
if ($invalid_referer) {
return 403;
}
}
try_files $uri/index.html $uri @puma;
location @puma {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://puma;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
root
下面的所有东西线?
最佳答案
时间证明了 Alexey Ten 关于使用 include
的评论成为正确的方法。
我们在生产中使用它:/etc/nginx
中的文件结构
nginx.conf
sites-enabled/app_config
modules/shared_serve
modules/shared_ssl_settings
/etc/nginx/sites-enabled/app_config
:
upstream puma {
server unix:/tmp/puma.socket fail_timeout=1;
}
server {
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include modules/shared_ssl_settings;
include modules/shared_serve;
}
/etc/nginx/modules/shared_ssl_settings
:
listen 443 ssl;
listen [::]:443;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers On;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:30m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;
/etc/nginx/modules/shared_serve
:
location ~ \.(php|aspx|asp|myadmin)$ { return 444; log_not_found off; }
root /home/deployer/apps/example_app/current/public;
try_files $uri/index.html $uri @puma;
location @puma {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://puma;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
/etc/nginx
中的文件结构.当然,您可以将模块目录命名为其他任何名称。您甚至可以将可包含的文件保留在
/etc/nginx
中。没有子目录。
关于nginx - 如何干燥 nginx 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27373428/
我有几个链接和 div,我希望它们具有相同的功能。基本上,您单击一个链接/按钮/任何选择的触发器,相应的空间幻灯片就会打开。 标记看起来像... First Second Third 到目前为
我正在尝试使用数据提供程序对多个输入运行 Jasmine 测试。为此,我尝试使用以下链接使用 jasmine-data-provider 包: http://blog.jphpsf.com/2012/
我有一个脚本,可以将用户的输入传递到completed.html 页面上,但这里有两个问题: 所有用户输入都显示在地址栏上,我想隐藏它,但我不想使用 POST 方法,这会破坏我的 JS 脚本的用途。有
DRY(不要重复自己) 假设我在我的应用程序中经常使用此代码: observable$.pipe( tap(value => console.log(value)), map(value =>
这是我正在运行的 MySQL 查询: -- get the sid of every supplier who does not supply both a red and green part SE
下面的内容可以干一点吗? if(totals[label]) { totals[label] += increment; } else { totals[label] = increm
我有这个,而且效果很好: $(document).delegate("tr.updating input, tr.updating a, tr.updating label", 'click', fu
我有一个在程序中广泛使用的简单 C++ 结构。现在我希望将结构作为单个字段保存在 sqlite 数据库中(现在不是作为 blob)。 将struct的属性映射到数据库列有什么好的方法? 最佳答案 由于
在下面的测试中,Bar 和 Baz block 包含相同的规范。 首先撇开为什么需要这样的重复不谈,我想知道如何才能把它干掉。 我尝试将 block 转换为对象并在 Bar 和 Baz 下调用它们,但
很抱歉我的菜鸟问题,但我有一个适用于大型形式的特定领域的函数。我知道我可以对每个可能的字段进行硬编码,但我想让我的代码保持干燥。我可以做什么来将这种独特的功能添加到表单中的每个字段中。 (它们都共享一
我正在用 java 编写一个程序,它本质上测试了很多东西...... 对于每次调用,我都需要检查 NullPointerExceptions、StackOverflow、IndexOutOfBound
我有一个冗长的组件,它传递了许多 Prop 。有没有更干燥的方式将该组件传递给 child ? 谢谢。 let products; if (!this.state.loading) { produ
我有许多 Angular Controller ,其中包含以下代码块(包括一些我无法分解的更具体的内容)。 {{title}} 我希望以最符合 Angular 主义的方
我正在尝试使用 jasmine 测试一些 View 代码。我需要在 View 对象处于不同的包含状态时测试某些元素的存在,而不必在每个状态下重复大量代码。 我有 NodeView 类,它表示具有一些端
我真的很享受 Django 1.8 中 setUpTestData 和 --keepdb 带来的便利! 但是,我遇到了在多个测试文件中保持数据一致的问题。我想将我的 setUpTestData 类方法
EasyMock 测试似乎倾向于遵循以下模式: @Test public void testCreateHamburger() { // set up the expectation Easy
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我有一个重复比较,我必须检查三个变量是否等于某个变量。为简单起见,我将创建一个场景来说明我遇到的问题。 if time == -1 and day_of_week == -1 and month ==
我已经在 Spring listA 中进行了配置(见下文)。最好有另一个包含 listA 中的所有值并展开它的。 a b
我有一个函数当前正在 JavaScript 中使用 .getElementBy... DOM 调用。 var $ = function (selector) { var elements = []
我是一名优秀的程序员,十分优秀!