前言
开发期间经常需要搭建环境,网上也有很多集成环境,但是我还是推荐自己搭建。做开发的还是需要最基础的技能,开发人员不愿意折腾,难道让用户去折腾吗?
nginx
nginx是轻量级但非常强大的异步框架Web服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势,官方测试支持五万个并发连接。了解更多信息前往维基百科-Nginx。
安装
安装方法分为两种,编译安装和linux packages安装。linux packages安装非常方便,但是如果需要第三方扩展还是非常麻烦的。
-
编译安装
-
从Nginx news下载最新的安装包(当然也可以下载其他版本的安装包).
wget http://nginx.org/download/nginx-1.15.6.tar.gz
-
解压安装包
tar -zxvf nginx-1.15.6.tar.gz
-
进入文件夹
cd nginx-1.15.6
-
安装编译工具和依赖库
apt install build-essential apt install libpcre3-dev zlib1g-dev libssl-dev
-
编译安装
./configure --prefix=/usr --conf-path=/etc/nginx --user=www-data --group=www-data make sudo make install
安装完成后配置文件在
/etc/nginx
目录下,执行文件在/usr/sbin
目录下。
可以在编译时指定模块,方便扩展(以下是apt安装nginx配置参数):##安装依赖 apt install libxml2 libxml2-dev libxslt1-dev libgdchart-gd2-xpm libgdchart-gd2-xpm-dev libgeoip-dev ##配置 ./configure --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
如果找不到nginx的话,配置下环境变量:
nano /etc/profile ##末尾加入 export PATH="$PATH:/usr/share/nginx/sbin"
恢复
/etc/nginx/
目录方法:sudo apt purge nginx-common apt install nginx-common
更多
./configure
配置信息可以去nginx configure查看,相关文档nginx documentation。
-
从linux packages安装
直接安装会安装比较老旧的版本。
sudo apt install nginx
-
安装nginx-signing.key
For Debian/Ubuntu, in order to authenticate the nginx repository signature and to eliminate warnings about missing PGP key during installation of the nginx package, it is necessary to add the key used to sign the nginx packages and repository to the apt program keyring. Please download this key from our web site, and add it to the apt program keyring with the following command:
对于Debian / Ubuntu,为了验证nginx存储库签名并在安装nginx包期间消除有关丢失PGP密钥的警告,有必要将用于签署nginx包和存储库的密钥添加到apt程序密钥环。请从我们的网站下载此密钥,并使用以下命令将其添加到apt程序密钥环:wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key
-
添加官方源
echo "deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx">> /etc/apt/sources.list echo "deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx">> /etc/apt/sources.list
-
更新源并安装nginx
apt update apt install nginx
至此,nginx就安装完成了,配置文件在
/etc/nginx
目录下。
配置
如果nginx主进程使用root运行,那么nginx 将会调用 setuid()/setgid() 去设置 user/group。如果 group 没有特别指定,那么 nginx 会使用 user 相同的名称设置 group。默认为 nobody nogroup 或者安装nginx的时候在 ./configure 指定的 --user=USER 和 --group=GROUP
由于是linux packages安装,安装好nginx之后首先需要修改nginx user。
nano /etc/nginx/nginx.conf
##指定user为www-data
user www-data;
nano保存修改退出
- 保存
Ctrl+o - 确认修改
Enter - 退出
Ctrl+x
重启nginx
sudo service nginx restart
新站点
个人喜欢使用配置域名命名配置文件www.example.com。
新建一个配置文件
nano /etc/nginx/conf.d/www.example.com.conf
###内容
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/web_site/public; ##修改为自己站点目录
index index.php index.html index.htm;
server_name server_domain_or_IP ##修改为自己的域名(www.example.com example.com);
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
每次创建新的站点配置文件,或者修改配置文件都要养成好习惯。先测试,再重载,特别是线上环境。
nginx -t
nginx -s reload
现在可以去浏览器测试自己的站点是否配置正确,正常访问了。
结语
orzlee以前也使用Apache,那时候还在用C#开发,接触PHP的后才慢慢转向nginx。同行中也有不少在使用Apache,其实都各有优缺点。个人觉得nginx比Apache要简单,性能方面nginx要优于Apache。orzlee服务器主要使用Ubuntu 16.04。
评论 (0)