1. 安装
CentOS 7上Nginx的安装和启动方法如下
# yum install nginx # firewall-cmd --permanent --zone=public --add-service=http # firewall-cmd --permanent --zone=public --add-service=https # firewall-cmd --reload # systemctl start nginx # systemctl enable nginx
安装完成后在浏览器中打开服务器对应的IP地址即可测试是否安装成功
2. 配置
Nginx的主配置文件是/etc/nginx/nginx.conf, 更详细的介绍参考文末
3. 转发
转发也叫正向代理, 以下的配置将所有http请求转发至www.example.com
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
resolver 114.114.114.114;
proxy_pass http://www.example.com:80;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
注意: Nginx不支持https正向代理.
4. 路由
章节二中把所有请求全部转发至另一个地址, 现在假如我们的服务器除了转发之外还要能够自行处理部分请求
为了进行方便区分, 我们需要进行如下路由: 除了/forward/...进行转发外, 其他请求自己处理
http://IP-A/forward/a/b/c ---> http://IP-B/a/b/c
配置如下
location / { } location ^~ /forward/ { resolver 114.114.114.114; proxy_pass http://www.example.com:80/; }
5. SSL配置
假定域名已经申请到SSL证书, 下面的配置开启SSL支持
server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name www.example.com; root /var/www ssl_certificate "/opt/certs/www.example.com_bundle.crt"; ssl_certificate_key "/opt/certs/www.example.com.key"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
常用操作:
/usr/local/nginx/sbin/nginx 启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 启动,载入当前配置
/usr/local/nginx/sbin/nginx -t 测试配置
/usr/local/nginx/sbin/nginx -s reload 加载配置--不是重启,但可以当重启使用
/usr/local/nginx/sbin/nginx -s stop 退出
/usr/local/nginx/sbin/nginx -s quit 保持未结束的进程后退出
/usr/local/nginx/sbin/nginx -s reopen 日志重新选择
配置文件位置:
/usr/local/nginx/conf/nginx.conf