01

高性能的Http和反向代理服务器

IMAP/POP3/SMTP等邮件代理服务器

代理:

  • 正向代理: 客户端client, 通过代理服务器proxy,访问远程服务器server
    | client -> proxy | -> server
    从客户端的角度, 是知道proxy的存在 (代理服务在客户端一边,用户能够感知)
    场景:

    1. 可以访问原来无法访问的自由
    2. 做缓存使用, 加快访问速度
    3. 对客户端授权或记录访问信息等
  • 反向代理: 服务器通过代理服务接收连接请求, 然后在转发给内部网络的服务器, 将服务器的结果返回给客户端
    客户端不知道proxy的存在, 由服务端操作proxy (代理服务在服务端一边,用户不感知)
    client -> | proxy - server |
    场景:

    1. 保证内网的安全, 阻止web攻击
    2. 负载均衡, 优化网站的负载(处理能力)

查看进程: ps -ef|grep nginx

关闭: nginx -s stop

查看目录: pwd

02

启动: nginx

关闭: nginx -s stop

关闭(通过结束进程): kill + 参数 + pid

  • 启动: nginx
  • 关闭: nginx -s stop
  • 杀死进程: kill + 参数 + pid

    • kill -9 pid 强制停止服务
    • kill -TERM pid 快速停止服务
    • kill -QUIT pid 平缓停止服务
  • nginx -h
  • nginx -s 信号处理命令(stop,quit,reopen,reload)

    • nginx -s reload

03配置

三部分: 全局块、events块、http块

全局块:

全局指令, 指定运行时的用户组、进程id存放位置、日志存放位置、worker process数量等

  1. # 配置用户或者用户组
  2. # user nobody;
  3. # 允许生成的进程数
  4. worker_processes 1;
  5. ## 日志路径设置 可以配置级别
  6. # debug | info | notice | warn | error | crit
  7. # error_log logs/error.log;
  8. # error_log logs/error.log notice;
  9. # error_log logs/error.log info;
  10. # 存储进程id的文件地址
  11. # pid logs/nginx.pid;

events块

影响nginx服务器和用户网络连接的配置,

比如每个进程的最大连接数, 选取那种事件驱动模型, 以及在网络连接过程中, 是否开启多个, 是否序列化等待

  1. events {
  2. # 每个进程的最大连接数
  3. worker_connections 1024;
  4. }

http块

配置代理、缓存、日志等绝大部分功能的地方, 可以包含(潜逃)多个server块,

不同的server可以对应不同的域名(虚拟主机)

虚拟主机: 同一台nginx服务器, 支持多个网站运行, 每个虚拟主机之间都相互独立, 具有完整功能

  1. http {
  2. # 对应虚拟主机的配置
  3. server{
  4. # 监听端口
  5. listen 80;
  6. # 监听域名
  7. server_name localhost;
  8. # 定位出路径或文件地址
  9. location / {
  10. # 相对路径
  11. root html;
  12. # 默认跳转的首页地址
  13. index index.html index.htm
  14. }
  15. }
  16. server{
  17. }
  18. }

配置置顶域名(www.heheee123.com)