以下是我们当前在应用程序上的设置
但我们想将 nginx 添加为反向代理缓存,就像鱿鱼或清漆一样,是否可以编辑此配置以启用该缓存行为,或者我是否需要在此设置前面添加另一个 nginx,就像我为鱿鱼或漆
如果这可以在不使用鱿鱼和清漆的情况下完成,那么在 nginx 中完成完整的设置会很好
多谢
upstream backend_appname{
#start1.someserver.com
server start1.someserver.com:7810 fail_timeout=3s;
server start1.someserver.com:7811 fail_timeout=3s;
server start1.someserver.com:7812 fail_timeout=3s;
server start1.someserver.com:7813 fail_timeout=3s;
}
server {
server_name appname.someserver.com;
listen 80;
access_log logs/access_appname.log;
#error_log logs/error_appname.log;
location /nginx_status {
stub_status on;
access_log off;
}
location /static {
root /home/someuser/work/appname;
expires max;
add_header Cache-Control public,max-age=604800,post-check=604800,pre-check=1209600;
}
location / {
root /home/someuser/work/appname;
fastcgi_pass backend_appname;
set $addr $remote_addr;
if ($http_x_forwarded_for ~ "(?:^|,)\s*(\d+\.\d+\.\d+\.\d+)\s*$") {
set $addr $1;
}
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param REMOTE_ADDR $addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
}
}
Run Code Online (Sandbox Code Playgroud)
我建议使用 Varnish,因为它是一个反向代理,并且在该能力下执行速度比 nginx快得多。
Varnish 针对性能进行了调整。它做了一些疯狂的事情,比如将其配置文件编译成 C 对象,然后将其加载到内存中。这可能看起来不多,但当你在配置中定义了一些逻辑时,它确实会产生影响(通过 Varnish 自己的 VCL 语言,这本身很酷)。
我明白你的意思,但是 nginx 并不意味着是一个可以完成所有事情的整体程序(与 apache 不同)。它的目的是做一些事情,并把它们做好......如果有更好的反向代理(Varnish),请改用它!
只是我的想法:)
归档时间: |
|
查看次数: |
4262 次 |
最近记录: |