弄了两天的nginx,从了解开始,可能是我理解能力太差了,惭愧惭愧!但是还好看了一些大神的文章总算有点眉目了,此篇用来当作自己的笔记,大家看不懂,勿喷,但是如果有问题,直接回复,我可以给你解答一下,前提是如果我懂的话,嘻嘻。
前提条件:服务器要能够访问80端口,服务器上安装tomcat8.0并能成功运行。
在使用中,发现重启服务器,系统就占用了80端口,以致于nginx启动报错: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) 。
可以通过netstat -aon | findstr :80 命令查看80端口被谁占用,如果是system占用,通过以下步骤解决:
一、安装nginx,下载地址:http://nginx.org/ ;
直接解压就可以了,这里解压到E盘根目录:E:\nginx;
命令行(win+r 输入cmd)切换到该目录下:cd E:\nginx,输入start nginx.exe 窗口闪一下,一般就启动成功了,去任务管理器查看一下是不是有两个nginx的进程运 行,有就成功了。浏览器输入http://localhost会出来NGINX的欢迎界面;
二、配置动静态分离和反向代理:
在nginx安装路径下的conf文件夹下面新建几个文件(新建了复制代码进去就好,主要是我也不知道啥意思):
tips:文件中的内容复制过去后要把中文注释删掉,不然可能出现编码问题,实在不行就不要复制了,勤快点,手敲嘛。
Gzip.conf:
gzip on;
gzip_min_length 1000;
gzip_types text/plain text/css application/x-javascript;
Proxy.conf(这个文件好像目前没用到的,可以不用新建):
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k; gzip on;
gzip_min_length 1000;
gzip_types text/plain text/css application/x-javascript; Proxy.conf
修改nginx.conf文件:
worker_processes 1; events {
worker_connections 1024;
} http {
charset utf-8;#设置编码
include gzip.conf;#include表示引用文件
include mime.types;
upstream localhost {
server localhost:8080; #配置tomcat地址,即需要nginx转向的地址
} server {
listen 80; #表示监听80端口,配合上面的tomcat地址使用,访问80端口,就会转向localhost:8080
server_name localhost; #设定访问静态文件直接读取不经过tomcat
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|html)$
{
root E:\static;#静态文件(gig|jpg|jpeg|png|bmp|swf|html)的存放地址
expires 30d;#设置缓存为30天
} location ~ .*\.(js|css)?$
{
root E:\static;#静态文件(js|css)的存放地址
expires 1h;#设置缓存为1小时
}
location = / {#设置首页(直接访问服务器ip或域名就可以访问E:\static目录下的index.html,如果是其他名字需要其它设置,这里没做深究,用到了再来)
root E:\static;
}
location / {
proxy_connect_timeout 3; #连接超时时间
proxy_send_timeout 30; #发送超时时间
proxy_read_timeout 30; #访问8080超时时间
proxy_pass http://localhost; #引用前面upstream的名字
}
}
}
现在可以去E盘的static文件夹下面新建一个html页面测试是不是能够访问了(修改了配置文件需要重新加载配置文件或重启nginx),如:http://ip地址/index.html
三、常用命令(切换到nginx安装目录来执行):
start nginx.exe :启动nginx
nginx.exe -s stop :停止nginx
nginx.exe -s reload : 配置文件修改,重新加载配置文件
nginx -t :查看nginx是否启动成功
nginx -v :查看nginx版本