我是个新手,现在我想使用nginx从用户传递的URL生成一个新的URL
例如:
用户在浏览器中键入like,我希望nginx生成或
如何在nginx中使用rewrite来实现这一点?您的意思是重定向,对吗
http {
# ...
server {
server_name us.domain.com;
location / {
rewrite ^/ http://www.domain.com/?portal=us;
}
}
}
http{
# ..
我有一个文件夹F和几个html文件
A.html
B.html
C.html
index.html
它们是sphinx自动生成的python文档
我希望我的url/foo显示B.html不受限制,但其他所有内容都应使用auth_basic“Restricted”提示输入密码
到目前为止,我尝试了以下方法,但没有成功
location /foo {
index B.html;
alias /home/novagile/www/doc_novasniff/doc/_build
我在CentOS 5机器上安装了带有PHP-FPM的nginx,但我很难让它为我的任何文件提供服务——不管是不是PHP
Nginx以www-data:www-data的形式运行,默认的“欢迎在EPEL上使用Nginx”站点(由root:root拥有644权限)可以正常加载
nginx配置文件有一个include指令,用于/etc/nginx/sites enabled/*.conf,我有一个配置文件example.com.conf,因此:
尽管public_html归www data所有:www
我将nginx设置为一种静态文件服务器。出于某种原因,它只有在我转到123.123.123.123/或123.123.123.123时才起作用。但是,当我转到123.123.123.123/static/content/或123.123.123.123/static/content/other.mp3时,它返回一个404 not found。以下是位于/etc/nginx/sites available中并链接到/etc/nginx/sites enabled的配置文件。我真的不明白为什么它不起
在过去的3周里,我们一直在测试Nginx作为负载平衡。
目前,我们无法成功处理超过1000个请求/秒和18K的活动连接。
当我们到达上述数字时,Nginx开始挂起,并返回超时代码。
获得响应的唯一方法是大幅减少连接数量
我必须注意的是,我的服务器每天都能处理这么多的流量,我们目前使用的是一个简单的round rubin DNS平衡
我们使用具有以下硬件的专用服务器:
英特尔至强E5620处理器
16GB内存
2T SATA硬盘驱动器
1Gb/s连接
操作系统:CentOS 5.8
我们需要平
我在nginx.conf文件中将imap_client_缓冲区设置为64k(根据imap协议的要求)
但是,当imap客户机发送一个很长的命令后验证时,长度会被截断为4k(linux操作系统的默认页面大小)
如何调试此问题?我已经使用gdb逐步完成了代码。就我所见,在mail_代理模块中,conf文件的值(测试为120000)被正确地看到
gdb) p p->upstream.connection->data
$24 = (void *) 0x9e4bd48
我的cloudbees(roo+SpringMVC)应用程序有一个很长的过程,导致超时。根据解决方案,可以更改nginx的配置(特别是send_timeout指令)
我的问题是,考虑到我不是自托管应用程序,而是使用CloudBees来实现这一点,我不确定如何改变这一点
这是我可以在cloudbees-web.xml配置文件中指出的东西吗?(我还没有找到可以包含在此文件中的配置参数的完整列表)是的,您可以这样做
您需要更改应用程序设置以使
proxyBuffering=false
当您部署时。这
我有一个带有nginx的服务器。我有很多图像-PNG和JPG保存为没有扩展名的文件(如“123123_321312”)
当我在html页面中使用标记“img”时,我会在控制台中收到这些消息:
Resource interpreted as Image but transferred with MIME type application/octet-stream: "http://xxxx/images/1350808948_997628". jquery.js:2
Resource interp
以下是先决条件:
我已经在godaddy注册了domainexample.com
我在8080端口上运行了一个带有几个应用程序的Tomcat。8080端口对世界来说是隐藏的
我想将subdomain.example.com映射到服务器:8080/subdomain。我希望将来可以进行类似的映射(subdomain2.example.com到server:8080/anotherContext,例如)
example.com应该映射到server:8080/mainPageApp
所有其他应用程
我大部分时间都在遵循HTML5样板nginx设置,但当我包含expires.conf时,一切都会中断
用于Nginx设置的HTML5BP:
我只做了一些很小的改动,我将在下面介绍。在includeconf/expires.conf中时,所有内容都返回404
作为旁注,我也不认为这只是HTML5BP。。我也跟着,图像也坏了(在Nginx提示#5静态资产到期的标题下)
我在EC2弹性负载平衡器后面的服务器上使用nginx
下面是my/etc/nginx/sites enabled/example.c
当我尝试用sudo/etc/init.d/nginx restart重新启动nginx时,我从主题那里得到消息
我发现原因很可能是脚本不知道如何停止deamon,因为pid文件(/var/run/nginx.pid)不是在启动时创建的
我在两个不同的服务器上安装了两个。。。一个是源代码编译的,另一个是phusion乘客
我试过这个命令:
start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid --exec /usr/sbin/
我可以通过“关闭服务器\u令牌”
但无论我使用的是nginx还是apache2,我都想隐藏这一点。
我怎样才能做到这一点?
有解决方案吗?有两种方法。您可以修改nginx的源代码,并在源代码中更改服务器签名,从中重新编译和安装
或者,您可以添加一个名为headers more nginx module的模块
这样,您就可以在每次希望更改标头时修改标头,而无需重新编译
然而,这两个都需要重新编译ngnx并重新安装
我在配置nginx proxy\u pass时遇到问题。有一种情况是这样的:
服务器1-xx.xx.xx.xx-代理服务器
带应用程序A的服务器2-yy.yy.yy
带应用程序B的服务器3-zz.zz.zz.zz
配置如下所示:
server {
listen 80; ## listen for ipv4; this line is default and implied
location /app_a {
rewrite /app_a/(.*)$ /
我不熟悉gunicorn和系统管理,并尝试将其部署到服务器上
进程的运行非常简单,我使用命令完成了它
gunicorn -c gunicorn_config.py --bind 127.0.0.1:8000 -k gevent_wsgi --daemon wsgi:app
gunicorn_config.py
workers = 2
worker_class = 'socketio.sgunicorn.GeventSocketIOWorker'
transports = ['websocket
标签: Nginx
reverse-proxyproxypass
我希望使用nginx作为前端代理,但是根据响应的MIME类型(Content-type头),它可以有条件地代理到另一个URL
例如,假设我有1%的客户使用不处理PNG的用户代理。对于该UA,如果响应类型为image/png,我想再次代理传递到一个特殊的URL,该URL将获取png并为我转换它
理想情况下,对于99%不需要这种特殊处理的用户,我会在不影响性能和缓存的情况下这样做。我无法修改后端应用程序。(否则,我可以让它检测UA并修复响应,或者发送一个X-Accel-Redirect以让nginx
我目前有一个web应用程序,可以生成相当大的PDF文件(每个文件100-200 MB)。应用程序当前配置为在新窗口中显示PDF。当PDF文件大小很小(50mb左右)时,我可以成功地使用Chrome和Firefox中的“另存为”来下载文件。但是,如果文件大小大于此值,我可以在浏览器中看到PDF的输出,但无法使用“另存为”(什么也不发生)
服务器正在nginx/PHP-FPM上运行。我尝试过提高脚本的内存限制,禁用脚本执行时间和其他一些随机调整来尝试和诊断问题,但我无法取得任何进展。我的日志没有显示
我有一个开放的resty nginx,其中包含增强数据的lua代码,然后我将这些数据写入访问日志以进行数据分析。
lua代码生成的数据包含双引号,但nginx将其作为\x22写入访问日志。
我可以禁用此行为或将其解码回“?简短回答您不能。
但是,您可以在logrotate之后运行URL解码
命令如下:
awk -v RS='\\\\x[0-9]{2}' 'RT{ORS=sprintf("%c", strtonum("0" substr(RT, 2)))} 1'
你不能。它是在log modul
NGINX是否可以仅使用部分URI进行哈希负载平衡
例如:
一项请求:
abc.test.com/1.jpg
def.test.com/index.html
散列只是“abc”
请求:
abc.test.com/1.jpg
def.test.com/index.html
散列为“def”。您到底需要什么?要有两个不同的应用程序,每个应用程序都位于自己的子域上?@mikhailov我们在不同的子域中有几个功能部分,现在我们有两个服务器。我们想平衡这两台服务器的负载,而每台服务器只需要几个功
我试图在我的一台计算机上设置一个简单的LEMP服务器,LEMP是Nginx、Php5 fpm和MariaDB。出于各种原因,我选择了Debian8(杰西)。我以前安装过LAMP服务器,但不是这个。我想做的就是用上面的服务器组合离线测试一些php脚本
有人知道使用php5 fpm的Nginx Debian 8示例吗
我已经阅读了超过半打的指南、Nginx wiki的示例、文档等等,我甚至无法让简单的php测试文件正常工作。我得到的只是“您想保存还是打开该文件”。
欢迎来到Nginx。但不是Php
是否有办法监控通过NGINX上的X-Accel发送到客户端的数据量?我需要从客户信用中减去发送的数据,例如每10 MB
对我来说,最好的方法是,如果NGINX可以使用给定的参数(例如用户id和发送的数据量)调用一些内部/URLPHP脚本
谢谢。您是否考虑过通过脚本管道传输访问日志?如果成本受到质疑,保留日志一段时间也会给您提供审计跟踪。我应该补充说,nginx中的配置选项是$bytes\u sent,将其添加到log\u format选项中。您是否想过通过脚本将访问日志管道化?如果成本受到质疑,
在几个解释“如何设置gzip压缩”的nginx教程站点中,我看到了重复出现的MIME类型列表:
gzip_类型text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript
然而,我立即发现这个列表并没有导致在Chromium中为JavaScript启用压缩。我不得不将application/javascript添加到列表中。这让
My nginx仅在主应用程序停止或根本不响应时将请求转发到备份上游应用程序。例如,当应用程序遇到“几乎内存不足”的情况时,它仍然会绑定端口,并且请求不会以某种方式重定向到备份应用程序,因为代理超时设置的缘故,请求不会被重定向到备份应用程序
我可以用kill-STOP复制场景:
kill -STOP 34996 #PID of primary app
telnet localhost 20401
Trying 127.0.0.1...
Connected to localhost. #appl
我已经用Elasticsearch(ES)1.7运行了ELK stack,docker容器有3个节点,每个节点运行一个ES容器,运行在nginx服务器后面。现在我正在尝试将ES升级到2.4.0。ES 2.4.0中不允许Root用户,因此我使用-Des.Root.unsecure.allow=true选项
#Pulling SLES12 thin base image
FROM private-registry-1
#Author
MAINTAINER xyz
# Pre-requisite
在我的应用程序中,我有3个站点-用户前端、管理面板和启动页面。我想在本地主机中运行用户前端:8080、在本地主机中运行管理面板:8080/Admin和在本地主机中运行启动:8080/Splash
为了运行这一切,我使用了以下配置:
server {
listen 8080;
server_name localhost;
root /home/ajit/git/univisior;
location / {
alias /home/ajit/git/univi
我正在使用varnish-3.0.3,我的expires标头设置为expires:Thu,1981年11月19日08:52:00 GMT。我想将其配置为expires标头设置为days日期,并在3600秒后刷新缓存。您可以发送max age标头,而不是expires标头,并具有相同的效果
后端应用程序应在响应时添加此标题:
Cache-Control: max-age=3600
我使用nginx在某个IP“12.12.12.12”上设置服务器,我在GoDaddy上有一个类似“domain.com”的域。
GoDaddy提供了用“domain.com”屏蔽“12.12.12.12”的可能性,但它将屏蔽完整路径(“12.12.12.12/some/path”将只是“domain.com”)
我需要什么:
我只需要用域屏蔽IP。
所以“12.12.12.12/path/nice”将变成“domain.com/path/nice”等等。
我需要该网站可以访问“domain.co
尊敬的NGINX(和Piwik)专家:
我努力用basic_auth(当然是HTTPS)锁定完整的Piwik安装。但是,我当然需要允许公众访问Piwiks选择退出功能,该功能在unter中可用,通常作为iframe嵌入到其他页面中(例如隐私声明)
我认为有效的配置(即它应该根据文档,IMHO工作)如下所示。然而,当访问到opt-out页面的深层链接时,我仍然会得到auth basic password提示
server {
listen 443 ssl;
listen [::]:
远程类型被缓存,并为新用户显示非法ip。它有助于等待3-10秒或重新启动nginx。如何完全关闭缓存?
操作系统:Centos 7
nginx版本:nginx/1.10.2
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connection
标签: Nginx
confluencecaddycaddyfile
因此,我最近开始遇到NGINX崩溃的问题,原因不明
在花了很多时间试图修好它之后,我决定换成球童
我的caddy配置用于浏览网站,但它破坏了编辑页面时使用的/synchrony访问。我使用纯websocket部分进行了测试,但Confluence也通过该路径检索一些脚本
我将以下内容用作部队射击的参考:
我的工作NGINX配置
server {
listen 443 ssl;
server_name [REDACTED];
ssl_certificate [REDAC
我正在尝试创建一个具有http功能的网站,包括http post功能和web套接字(如signalR)。我正在尝试使用nginx在ubuntu服务器上托管这个网站。一般来说,nginx上的设置如下所示:
server {
listen 80;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
我正在尝试将短名称重写为FQDN
我的nginx版本是
nginx版本:nginx/1.13.4
server {
listen 80;
server_name foo foo.bar.com;
rewrite_log on;
rewrite ^ https://foo.bar.com/ permanent;
include includes/web-site;
include includes/files-site;
}
server {
listen 443
我使用letsencrypt/certbot管理证书以供nginx使用。我发现,在设置服务器时,我陷入了一种鸡和蛋的局面:nginx必须提供。众所周知的/acme challenge目录,但如果配置的ssl证书还不存在,nginx拒绝启动
到目前为止,我已经通过手动编辑nginx服务器块中的ssl,启动它,第一次运行certbot,然后恢复更改来解决这个问题。我想知道是否有更干净的方法
(目前我使用的是webroot auth方法,但我并不喜欢它。这里的目标是提供一种配置,在初始设置时能够正确执
我将nginx入口控制器部署到集群。这在我的云提供商(假设AWS或GCE)中提供了一个负载平衡器。但是,集群内的所有流量都由控制器根据我的入口规则和注释进行路由
那么,让云中的负载平衡器坐在这个控制器前面的目的是什么?看起来控制器正在进行实际的负载平衡
我想了解如何使用它,以便云负载平衡器实际上将流量路由到集群内的机器,同时仍然遵循我所有的nginx配置/注释,或者即使这是可能的/有意义的。您可能拥有一个具有多个主服务器的高可用性(HA)集群,负载平衡器是“进入”Kubernetes集群的一种简
我在一个基本客户端项目的基础上创建了一个新的Nuxt项目,以制作一个无头web应用程序。我在NGINX服务器上托管该项目。我正在使用Pm2保持应用程序的活动状态,该应用程序正在端口3000上运行。我在Plesk中设置了一个代理通行证,以便让应用程序运行。好消息是:子URL都在工作,所以如果我去/news或/blog等,它工作正常。如果我从/新闻回到家里,我也会得到主页
但是如果我转到主url(/),我会得到一个403错误。我已经尝试了一切,比如设置根文件夹的权限或者进一步编辑配置文件。都没有用
我知道在中有一个建议的解决方案,但它并不完全符合我试图实现的目标
我们正在将一个拥有100000页的大型旧Web服务器迁移到一个新的Web服务器。在此过程中,我们将更新内容。新内容的目录是从头创建的。在更新内容时,我们希望确保如果新文件夹中缺少某些内容,可以从旧文件夹中检索
我的简化文件夹结构如下所示:
/mnt/oldcontent
/var/opt/data/company/newcontent
location / {
try_files /var/opt/data/company/
我正在尝试为应用程序配置nginx vhost,但失败了
应用程序位于目录/site/verb中
目前,应用程序具有此类链接,并且正在运行:
我需要什么?我需要为我的客户添加另一个链接,如下所示:
这只是将/verb更改为/v,但出于兼容性原因,我希望使用.php扩展名之后的所有参数处理这两个问题。
在nginx配置中可能吗?(我希望避免在目录中创建符号链接)
我尝试了符号链接,但这不是一个好的解决方案。您好。欢迎来到StackOverflow。请不要忘记阅读“如何提问”这篇文章,这篇文章将
我正在为虚拟机使用虚拟盒。我的主人是MacOS。我正在执行流浪者行动命令,一切正常。但在运行ansible playbook时,所有任务都会成功完成,但在运行nginx时会出现错误
错误:
RUNNING HANDLER [webtier : restart nginx] **************************************
fatal: [vagrant]: FAILED! => {"changed": false, "msg": "Unable to resta
我正在尝试用docker compose设置一个代理,它工作得很好
不过
我正在托管代理a“/”端点,它似乎覆盖了nginx根文件夹中的默认html文件。代理服务器只有一个url为“/login”的端点
如何查看我的index.html?我是否可以覆盖代理,即如果存在某个文件,则显示该文件
希望你能理解
Nginx conf文件:
server {
listen 80;
server_name localhost;
index index.ht
我使用nginx作为nodejs应用程序的代理。我让同一个应用程序在不同的端口上运行多次。根据主机名将请求定向到正确的应用程序/端口
So
test1.domain.com would be proxied to 127.0.0.1:8000
test2.domain.com would be proxied to 127.0.0.1:8001
test3.domain.com would be proxied to 127.0.0.1:8002
当我硬编码“proxy_pa
敬礼!我正在学习nginx定位指令。现在我遇到了一个麻烦:
server {
listen 80;
# server_name 127.0.0.1 localhost;
root /usr/share/nginx/html;
index index.php index.html index.htm index.nginx-debian.html;
location /rukovoditel/ {
index index.php index
在“位置”下使用openidc模块自省,并在下面使用调用
Policy section
#
location = /_sample {
internal;
set $api_name "sample";
access_by_lua_file /etc/nginx/path/oauth_introspection.lua;
Proxypass......
}
现在,我想在下面包含一个文件,以便在同一请求下添加一些内容并验证某些内容
Policy secti
标签: Nginx
custom-error-pageshttp-status-code-500
示例nginx config/etc/nginx/conf.d/errorpagestest.conf
server {
listen 80;
server_name errorstage.test;
error_log /var/log/nginx/errorstage.log warn;
access_log /var/log/nginx/errorstage-access.log custom;
root /var/www/errorpagestest;
标签: Nginx
nginx-reverse-proxy
我做auth\u请求/auth
如中所述
如果/auth返回401或403,如何重定向到登录页面
我试过了
error_page 401 403 = @error401;
location = ^/securedUrl {
add_header dbg-header dbg_ws_3;
auth_request /auth;
proxy_pass http://auth-module:8080;
proxy_http_ve
Ubuntu操作系统是否限制机器可以处理的最大请求数?
为了开始解决这个问题,我创建了一个Nginx代理服务器,其中一个后端服务器处理传入的POST请求。接下来,我将使用包pycurl以每次请求0.001秒(即1000个请求/秒)的速度向代理服务器地址发送总共1000个请求。(我还使用了具有类似结果的python包请求)。在服务器端,完成请求大约需要4秒,即250转/秒
当我将这个数字扩展到每次发送10000个请求。001秒,仍然是1000 RPM时,Nginx代理服务器在处理之前可以接收的请求
我是Nginx服务器的新手,但在重新加载Nginx后,我遵循官方文档,我遇到了以下警告:
在/etc/nginx/nginx.conf:9中的“try_files”指令中的参数数无效
这是我的nginx.conf文件:
events{}
http{
include /etc/nginx/mime.types;
server{listen 80;
server_name x.x.x.x;
root /var
当您使用多个斜杠导航到任何路线时,我对nginx提供静态网站文件(CSS和JS)有一个问题。例如,example.com/test可以工作,但是example.com/test/test将尝试从example.com/test/{.css |.js}而不是根目录加载css/js
就上下文而言,我在这个网站上使用React和ReactRouter
nginx配置
原来是html网页包插件没有将/放在资产前面,因为输出中没有设置publicPath
请参见此处的答案:在哪里指定CSS/JS文件的名称
我不确定这是否可行,我已经在网上搜索过了,但没有找到任何东西
我运行kubernetes并使用NGINX ingress,我可以进行第7层路由,允许我对传入请求使用单个端口,然后根据请求,将该请求路由到不同的服务
我的问题是:是否有类似的东西可以对TCP和UDP端口执行相同或类似的操作
e、 g:所以我可以路由到达TCP 9071的流量,然后根据某种标志/或流量内容将该流量路由到不同的服务
最好知道这是否也不可能?您将无法基于URL进行路由,因为这是第7层HTTP。但是,您可以执行TCP/UDP
我正在使用nginx缓存来自远程后端服务器的大型文件。
除磁盘已满外,一切正常
我希望nginx删除最近最少用于释放空间的文件(比如当缓存大小达到max_size限制时),但它会删除当前正在缓存的文件。这意味着nginx将在下次请求文件时尝试重新缓存该文件,然后由于磁盘已满而继续删除该文件
是否有任何方法可以更改此行为,以便nginx在超过max_size时删除最旧的文件
多谢各位
我试图将tcp和udp的流量同时转发到多个服务器。我发现的只是Nginx中的负载平衡。
Nginx中是否有可以处理这种类型的转发/代理的功能?我知道这不是TCP/UDP,但对于HTTP,Nginx:
ngx_http_mirror_模块(1.13.4)通过创建后台镜像子请求来实现原始请求的镜像。对镜像子请求的响应将被忽略
示例配置
location / {
mirror /mirror;
proxy_pass http://backend;
}
location = /mirr
在通过nginx反向代理后,我发现get_post函数不起作用。导致表单不起作用。有人遇到过吗
#PROXY-START/
location ~* \.(php|jsp|cgi|asp|aspx)$
{
proxy_pass https://aaa.bbb.com;
proxy_set_header Host aaa.bbb.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_
1 2 3 4 5 6 ...
下一页 最后一页 共 285 页