一、安装
sudo apt-get install nginx
二、文件结构
/etc/nginx
所有的配置文件都在此目录
/etc/nginx/sites-enabled
配置虚拟主机
/usr/share/nginx/html
根目录,里面有两个默认网页 index.html和50x.html
/usr/sbin/nginx
启动程序文件
/var/log/nginx
存放日志,分别是access.log和error.log
/etc/init.d/
启动脚本nginx
三、启动,停止,重启
看了很多参考,方法不唯一,先介绍最简单且一定有效的方法:
方法一:
启动
$nginx
停止
$nginx -s stop
重启
$nginx -s reload
方法二:
启动:
/etc/init.d/nginx start
停止
$ ps -ef | grep nginx
master进程好为3170,终止该进程
$ sudo kill -QUIT 3170
重启
$ /etc/init.d/nginx restart
还有很多种方法,不过目前来看,最有效的方式是采用方法一;
四、基本配置
/etc/nginx
目录下存在 nginx.conf 文件,这是nginx的配置文件,通常,我们需要对nginx设置时,都在此文件进行。
文件结构为
events{
......
}
http{
......
}
一个server是一个虚拟主机,我们需要添加虚拟主机时,在http下添加server,
http{
......
......
server {
listen 80 default_server;
server_name localhost;
root /usr/share/nginx/html; #存放写好的网页
index index.html index.htm;
}
server{
......
}
.......
}
但新版本添加server时要在/etc/nginx/sites-enabled/
目录下的defaut文件中,原因在于nginx.conf文件中
events{
......
}
http{
......
......
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
其实都是读nginx.conf文件而已。很多发行版在nginx.conf底部添加include sites-enabled/*.conf、sites-available是为了方便管理,这样你就可以把已经配置好的各种 server conf 放在 sites-enabled里,如果想启用的时候只要复制或者软连接到 sites-available 或者sites-enabled文件夹里,想关掉或者换配置的时候取消include或者软连接;
五、常见的语法
1、基本配置
server {
listen 80 default_server;
server_name localhost;
root /usr/share/nginx/html;
index index.html index.htm;
}
我们自己写的网页可以放在usr/share/nginx/html 目录下进行访问。
2、内部变量
server {
listen 80 default_server;
server_name localhost;
location / {
if ( $query_string ~* ^(.*)cc=(.*)$ ){
proxy_pass http://$arg_cc;
}
}
}
querystring代表网址的参数 arg_name 参数值
3、设置变量
server {
listen 80 default_server;
server_name localhost;
location / {
set $b "";
if ( $query_string ~* ^(.*)cc=(.*)$ ){
set $b "$arg_cc";
proxy_pass http://$b;
}
}
}
4、服务器池的参数
upstream back{
server 192.1.1.1:80;
server 192.1.1.2:80 max_fails=3 fail_timeout=30s wight=3;
}
server后可以添加参数,
max_fails
最大失败次数,如果3次没连上,任务服务器损坏,下次就跳过
wight
权重,优先使用权
还有其他一些参数,视情况添加。
5、个别参数说明
(1)proxy_set_head X-Forwarded_for
location / {
proxy_pass http://back;
proxy_set_head X-Forwarded_for $remote_addr;
#转送真实客户端访问者的IP 而非代理IP
}
(2)nginx.conf 文件
worker_processes 1; #进程数,一般情况设置与内核数相等;
events {
worker_connections 1024;
# multi_accept on;
}
worker_connections 最大并发量,最大值为1024,受制于linux系统最多打开文件数;