nginx重启失败

/usr/local/webserver/nginx/sbin/nginx -t

出现如下错误

nginx: [alert] mmap(MAP_ANON|MAP_SHARED, 10737418240) failed (12: Cannot allocate memory)

nginx: configuration file /usr/local/webserver/nginx/conf/nginx.conf test failed

nginx的cache采用mmap实现,缓存区的大小不能超过剩余的内存大小和swap值的总和。


Apache Rewrite 规则:
RewriteRule  ^/html/tagindex/([a-zA-Z]+)/.*$ /$1/ [R=301,L]


Nginx Rewrite 规则:
rewrite  ^/html/tagindex/([a-zA-Z]+)/.*$ http://$host/$1/  permanent;


Apache Rewrite 规则:
RewriteRule  ^/user/login/$ /user/login.php?login=1&forward=http://%{HTTP_HOST}  [L]


Nginx Rewrite 规则:
rewrite  ^/user/login/$ /user/login.php?login=1&forward=http://$host   last;


Apache与Nginx Rewrite 规则的一些功能相同或类似的指令、标记对应关系:


Apache的RewriteCond指令对应Nginx的if指令;
Apache的RewriteRule指令对应Nginx的rewrite指令;
Apache的[R]标记对应Nginx的redirect标记;
Apache的[P]标记对应Nginx的last标记;
Apache的[R,L]标记对应Nginx的redirect标记;
Apache的[P,L]标记对应Nginx的last标记;
Apache的[PT,L]标记对应Nginx的last标记;

nginx多条件rewrite实例

Nginx Rewrite 规则:
if ($host ~* ^(.*?)\.domain\.com$)
{
set $var_wupin_city $1;
set $var_wupin '1';
}
if ($host ~* ^qita\.domain\.com$)
{
set $var_wupin '0';
}
if (!-f $document_root/market/$var_wupin_city/index.htm)
{
set $var_wupin '0';
}
if ($var_wupin ~ '1')
{
rewrite ^/wu/$ /market/$var_wupin_city/index.htm last;
}

Nginx启动失败可能有多种原因,以下是常见的几种情况: 1. **配置文件错误**:Nginx依赖于其主配置文件(通常为`nginx.conf`),如果语法错误或配置项设置不当,可能导致启动失败。检查配置文件是否存在、权限正确以及内容是否符合规范。 2. **依赖缺失**:Nginx运行需要一些系统库和依赖,如pcre、openssl等,如果安装不全或版本不兼容,可能无法启动。确认所有必要的库已安装并正确配置。 3. **日志目录权限问题**:Nginx会尝试写入日志到指定路径,如果没有足够的权限,它将无法创建或写入日志,这时可能会显示相关的错误消息。 4. **进程限制**:某些系统设置了最大进程数,当试图超过这个限制启动新进程时,Nginx会因为资源不足而失败。 5. **端口冲突**:如果你尝试绑定的端口已被其他服务占用,Nginx也无法启动。可以查看系统中是否有其他服务监听相同的端口。 6. **环境变量**:有些情况下,环境变量设置不正确,比如PATH或LD_LIBRARY_PATH未包含Nginx的bin目录。 7. **软件包问题**:如果是通过包管理器安装的Nginx,可能是由于软件包更新或损坏导致的问题,需要重新安装或更新。 8. **硬件问题**:极少数情况下,可能是硬件资源不足或者网络连接问题影响了Nginx启动。 解决这类问题时,通常先查看Nginx的日志(通常是`/var/log/nginx/error.log`),这能提供详细的错误信息帮助定位问题。根据错误提示逐一排查上述可能性即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值