分类 "Server" 下的文章

问题:nginx的配置文件中如何写多个条件的if语句?如何写if else

解决:nginx不支持if else,所以只能使用if语句,然后将多条件合并或者使用正则表达式

方法:

set $is_allow_domain '';
if ($host ~* 'xiaomantu.com') {
    set $is_allow_domain 1;
}
if ($host ~* 'mantutu.com') {
    set $is_allow_domain 1;
}
if ($is_allow_domain != 1) {
    return 403;
}

阅读全文

问题:nginx配置文件中listen [::]:80是什么意思?

解决:

listen 80;
监听所有的ipv4的地址

listen [::]:80
监听所有的ipv6的地址

server_name
用来匹配域名域名

注:国内还没有推广ipv6……

参考:

https://segmentfault.com/q/1010000011103271

问题:nginx升级后出错nginx: [emerg] module "/usr/share/nginx/modules/ngx_http_geoip_module.so" version 1014000 instead of 1016001 in /etc/nginx/modules-enabled/50-mod-http-geoip.c
onf:1

解决:卸载旧模块

方法:

sudo apt remove nginx-mod*

参考:

https://www.cnblogs.com/mingetty/p/11125391.html

问题:如何查看带宽是否够用?1M带宽最多同时在线多少人?
解决:
带宽够不够用,可以看服务器的公网出流量,1M带宽相当于1024Kbps,如果接近1024了就是不够用了。
一般情况下,1M带宽最多可以同时在线17人左右(以页面大小为60KB计算),如果页面够小,人数会多点,计算方式如下:
1024KB / 页面大小KB = 同时请求的人数

参考:
http://lusongsong.com/reed/1396.html (服务器1M带宽同时能承受多少人在线)
https://www.aliyunyouhui.com/xsjc/31.html (服务器1m带宽够用吗?如何查看阿里云网站带宽够不够用)

问题:如何安装nginx最新版本
解决:编译安装
方法:
一、下载nginx, nginx-rtmp-module
wget http://nginx.org/download/nginx-1.12.2.tar.gz

二、解压配置nginx
tar zxf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --prefix=/etc/nginx
注:--prefix是指定nginx安装在/etc/nginx目录下
三、编辑安装
make
sudo make install
四、运行nginx
cd /etc/nginx/sbin
sudo ./nginx
五、停止nginx
sudo ./nginx -h   # 这个可看到其它命令
sudo ./nginx -s stop

拓展:
增加rtmp视频直播功能
git clone https://github.com/arut/nginx-rtmp-module.git
./configure --prefix=/etc/nginx --add-module=../nginx-rtmp-module
如果报错: error: the HTTP rewrite module requires the PCRE library.
可以安装sudo apt-get install libpcre3 libpcre3-dev(可能无法运行)
可以直接忽视
./configure --prefix=/etc/nginx --add-module=../nginx-rtmp-module --without-http_rewrite_module
当然如果需要使用php,那就不能忽视了
需要先编译安装pcre
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
tar zxf pcre-8.42.tar.gz
cd pcre-8.42
./configure --prefix=/usr/local/pcre
make
sudo make install
之后再编译安装nginx
./configure --prefix=/etc/nginx --add-module=../nginx-rtmp-module --with-pcre=../pcre-8.42
make
sudo make install
注:--with-pcre=../pcre-8.42  //这个路径就是你刚才解压pcre源码的路径。

参考:https://blog.csdn.net/kingroc/article/details/50839994
https://www.cnblogs.com/bugutian/p/4523178.html
https://www.cnblogs.com/freeweb/p/5425554.html(这是配置运行php运行环境的,包括php-fpm的配置)
https://blog.csdn.net/bujidexinq/article/details/70209625 (配置php时,如果找不到9000端口时,直接修改使用sock)