云服务器Linux安装,配置,使用nginx
- linux安装nginx
- nginx的使用
linux安装nginx
- 检查是否安装了GCC(可在任何目录下输入)
yum list installed | grep "gcc"
如果像下图一样,就说明安装了,反之没安装
- 如果没安装GCC,就安装一下(可在任何目录下输入)
yum -y install gcc
- 安装nginx所需的依赖插件(可在任何目录下输入);
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
- 下载nginx安装压缩包(这个版本号可以自己更换,这个时候我们就要先创建一个文件夹用来存放nginx的安装包和解压以后的文件,然后在执行下面的命令)
wget https://nginx.org/download/nginx-1.16.1.tar.gz
- 解压(在上面那个目录下解压)
tar -zxvf nginx-1.16.1.tar.gz
- 配置(首先进入我们解压好的nginx-1.16.1的目录下);
cd nginx--1.16.1
然后在进行配置(/usr/local/nginx 的意思就是安装到/usr/local/nginx这个目录下):
./configure --prefix=/usr/local/nginx
再输入make
make
再输入make install
make install
7.检测是否安装成功
首先进去/usr/local/nginx这个目录下,再输入下面代码
./sbin/nginx -t
如果提示的是下面代码,就说明安装成功,没有任何问题
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
如果报以下错误:
nginx: [alert] could not open error log file: open() “/usr/local/nginx/logs/error.log” failed (2: No such file or directory)
2016/09/13 19:08:56 [emerg] 6996#0: open() “/usr/local/nginx/logs/access.log” failed (2: No such file or directory)
说明nginx下没有找到logs目录。
我们就要在/usr/loca/nginx/目录下创建logs目录
mkdir logs
chmod 777 logs
- 启动nginx
看当前在那个目录下,先进去/usr/loca/nginx/sbin目录下
./nginx
然后输入netstat -tunpl|grep nginx,查看nginx是否启动成功
netstat -tunpl|grep nginx
我们会看到有一个80端口,说明nginx启动成功了(我有2个,因为我用到了443端口,这个不用管,只有80端口启动了就行)
- 停止,重启nginx
停止(同样在/usr/loca/nginx/sbin目录下)
//第一种方法
./nginx -s stop
//第二种,先netstat -tunpl|grep nginx查看80端口的进程号,然后使用kill命令杀死这个进程
netstat -tunpl|grep nginx
kill -9 21472
//最后在输入netstat -tunpl|grep nginx,确认80端口被杀死了。
netstat -tunpl|grep nginx
重启(同样在/usr/loca/nginx/sbin目录下)
./nginx -s reload
- 验证是否启动成功
在浏览器输入服务器的地址然后回车
如果出来这个页面就说明nginx已经成功启动并且生效了
- nginx开机自启动
先输入vim /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
进去rc.local这个文件里,点击 i 进入可修改模式
在如图位置添加,然后点击esc键,再按shift+:键,然后输入wq! 然后回车
/usr/local/nginx/sbin/nginx
nginx的使用
- 了解nginx
进入/usr/local/nginx/conf目录下
可以看到一个nginx.conf文件
我们进入这个文件
vim nginx.conf
我们找到下面这段代码(你们的可能和这个有些不同,这个修改过)
server {listen 80; //这个的意思是监听80端口server_name local;client_max_body_size 50M;location / {proxy_pass http://localhost:6606/; //这个意思是我们访问80端口就会跳转访问我们的6606端口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;}//上面的效果就是我们在浏览器输入服务器的地址就会跳转到我们发布的这个6606的项目去//例如:127.0.0.1location /admin/ {proxy_pass http://localhost:8080/; //这个意思是我们访问80端口就会跳转访问我们的8080端口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;}//上面的效果就是我们在浏览器输入服务器在加上/admin/的地址就会跳转到我们发布的这个8080的项目去//例如:127.0.0.1/admin/}
修改完成后退出然后进入/usr/loca/nginx/sbin目录下重启nginx
./nginx -s reload
就可以了
- 解析里面的内容
server:server为一个端口的监听配置,里面可以拥有多个location路由配置。一个server是一个大单元。你可以复制多个server来监听不同端口或相同端口不同域名(server_name)
server_name:监听的主机名。可以是域名。比如aaa.dongzhongwei.com和bbb.dongzhongwei.com,虽然都是走的80端口,但可以通过server_name来区分不同的server。
listen:监听80端口
client_max_body_size: 附件上传支持最大容量。默认1M,超出则报413附件太大错误。(该配置好像可以写在location里面。)
location: 监听端口下的路由。/为监听根路径
location.proxy_pass: 转发的路径。即将127.0.0.1:80/转发到localhost:6606/。或者如127.0.0.1:80/test转发到localhost:8080/testabc
location.proxy_redirect:是否转发方式。off否
- location配置规则
优先级:
(localtion =) > (localtion完整url) > (localtion ^~) > (localtion ~,~*) > (lcoaltion部分起始路径) > (/)
说明:
= 表示精确匹配^~ 表示指定的路径开头~ 表示区分大小写的正则匹配~* 表示不区分大小写的正则匹配/ 通用匹配,所有的URL都是以此为开头
所以你看到有些配置location后直接市路径,有的会有一个^~,其实只是优先级,除此没什么区别
例子:
location ^~ /static/ {#规则1
}
location ~ \.(gif|jpg|png|js|css)$ {#规则2
}
location ~* \.png$ {#规则2
}//http://xdh.com/static/a.png 优先匹配到规则1,则不匹配后面的规则
//http://xdh.com/a.png 匹配到规则2
本文来源于:董忠伟的个人博客之linux安装nginx、配置文件详解
然后我进行了一点点修改。