简介:
Nginx:是一款轻量级Web服务器,也是一款发现代理服务器。
作用:
- 可以直接支持Rails和PHP程序
- 可作为HTTP反向代理服务器
- 可作为负载均衡服务器
- 可作为邮件代理服务器
- 帮助实现前后端的动静分离
特点:
- 高稳定
- 高性能
- 资源占用少
- 功能丰富
- 模块化结构
- 支持热部署
常用命令
(以下命令都是在安装目录下执行)
| 序号 | 命令 | 说明 |
|---|---|---|
| 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';
}
}

1396

被折叠的 条评论
为什么被折叠?



