Nginx

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ycd500756/article/details/79947670

官网地址

简介:

Nginx:是一款轻量级Web服务器,也是一款发现代理服务器。


作用:

  1. 可以直接支持Rails和PHP程序
  2. 可作为HTTP反向代理服务器
  3. 可作为负载均衡服务器
  4. 可作为邮件代理服务器
  5. 帮助实现前后端的动静分离

特点:

  • 高稳定
  • 高性能
  • 资源占用少
  • 功能丰富
  • 模块化结构
  • 支持热部署

常用命令

(以下命令都是在安装目录下执行)

序号 命令 说明
1 nginx/start nginx 启动命令
2 nginx -s stop 停止命令
3 nginx -t 检查配置文件的语法(建议修改配置文件,先执行该命令,再reload)
4 nginx -s reload 平滑重启
5 kill -HUP [PID号] 结束进程
6 ps -ef l grep nginx 查看进程号

遇到的错误

1.启动Nginx失败

1.当启动服务失败的失败时候,如果可以查看log,首先去看看具体的错误日志是什么。打开Nginx的安装目录下的logs文件夹(存放Nginx日志的文件夹),该文件夹下打开error.log文件

以下是启动Nginx的错误日志

2018/04/16 16:41:37 [emerg] 16900#18436: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

通过日志信息得知启动失败是因为80端口被占用。

2.那么接下看看是那个进程占用了80端口,在命令窗口输入

netstat -aon|findstr "80" 

这里写图片描述
然后:得到占用端口PID号

taskkill /pid "XXX" /f 

但是我这里结束进程失败,查看网上资料得知是系统占用80端口
3.解决80端口被PID=4占用
3.1方法1:修改注册表
这里写图片描述
但是我试了还是不行。

3.2方法2:80端口被PID=4占用

以上博客提示:有可能是SQL Server Reporting Services (MSSQLSERVER)服务占用了端口
停止服务:WIN+R,然后输入services.msc
这里写图片描述
在服务中找到SQL Server Reporting Services (MSSQLSERVER)服务并且右键停止即可
这里写图片描述
我的80端口被pid=4是可以通过这种方法解决。

2.遇到的錯誤2

nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 32

原因:域名过长
解決:原文
在nginx.conf文件在http结点下添加
server_names_hash_bucket_size 64;
这里写图片描述

补充配置文件的HTTP节点的其他常用配置

http {
    #mark添加
    #解决400
    client_header_buffer_size 1024k;
    large_client_header_buffers 4 128k;
    server_names_hash_bucket_size 64;
    #解决上传问文件过大
    client_max_body_size 20m;

自定义的配置文件demo



#配置负载均衡
upstream www.choisaaaa.campuso2o.com{
    #负载到不同的nginx服务中 ,weight:权重
    server 127.0.0.1:8080 weight=1; 
    #server 127.0.0.1:9080 weight=1; 
    #server www.choisaaaa.campuso2o.com:8080;
    #server www.choisaaaa.campuso2o.com:8090;
} 

#开启一个server服务,配置代理转发
server { 
    listen 80; #监听80端口(http访问的默认端口)
    autoindex on; 
    server_name www.choisaaaa.campuso2o.com; #监听的host name
    access_log D:/nginx/access.log combined; #nginx的日志路径,combined表示合并
    index index.html index.htm index.jsp index.php; #默认首页
    #如果找到对应的首页返回404错误
    if ( $query_string ~* ".*[\;'\<\>].*" ){ 
        return 404;
    }
    #location:代理的路径
    # =/ :表示完全的根路径代理的路径
    location =/ {
        root D:\ftpFile\img;
        add_header Access-Control-Allow-Origin *; 
    }
    #使用正则,配置以html结尾
    location ~ .*/.html {
        root XXXXXXX;

    }
    #/:表示配置所有请求 
    location / {
        proxy_pass http://www.choisaaaa.campuso2o.com/; 
        #添加头部信息
        #add_header Access-Control-Allow-Origin http://www.user.campuso2o.com; 
        #add_header Access-Control-Allow-Credentials true; 
        #add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept'; 
        #add_header 'Access-Control-Max-Age' '3600'; 
        #add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS, DELETE'; 
    }   
}
阅读更多

没有更多推荐了,返回首页