从零开始搭建Nginx服务器以及SVN简单配置

Posted 梦之航Mobile

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始搭建Nginx服务器以及SVN简单配置相关的知识,希望对你有一定的参考价值。

一,Nginx服务器


##1.准备工作

1. 购买一台外网云服务器,建议重装Ubuntu系统

2. 准备域名,个人申请的阿里云,里面需要备案、实名认证

3. 本地机器SSH环境配置,用于远程连接云主机


##2.服务器环境配置(nginx + Apache)

### 1.Apache下载、解压、服务启动


### 2.Nginx配置

####1,下载 Nginx 源码包

下载页: [http://nginx.org/en/download.html  ]() 

当前稳定版本: http://nginx.org/download/nginx-1.8.0.tar.gz  


####2,下载编译选项中的依赖包

1. [ zlib下载页](http://zlib.net/)

当前稳定版本: http://zlib.net/zlib-1.2.11.tar.gz  

注: Nginx 参考文档中提到需要 1.1.3 - 1.2.7 版本的 zlib  

2. [ pcre下载页](http://www.pcre.org/ )

当前稳定版本: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz  

注: Nginx 参考文档中提到需要 4.4 - 8.32 版本的 pcre 

3. [ openssl下载页](https://www.openssl.org/source/openssl-1.0.2l.tar.gz)

或者直接安装openssl

1. $sudo apt-get install openssl 或者$sudo apt-get install libssl-dev

2. $sudo apt-get install libpcre3 libpcre3-dev



####3,解压依赖源码包 && 编译安装

1. 解压依赖源码包 


cd /Users/wid/Downloads/    # 各个源码包下载文件所在位置  

tar zxvf zlib-1.2.8.tar.gz  # 得到 zlib-1.2.8 目录  

tar zxvf pcre-8.36.tar.gz   # 得到 pcre-8.36 目录  

2. 编译安装 Nginx

 

说明:这里会将各依赖的源码编译进 Nginx, 所以 --with-zlib 和 --with-pare 后为对应的依赖源码目录路径。此外, 编译选项中还开启了 HTTPS 的协议支持 --with-http_ssl_module, 若不需要 HTTPS, 可取消该选项。


cd nginx

bogon:nginx xuws$ ./configure --prefix=/usr/local/nginx --with-zlib=../zlib-1.2.11 --with-pcre=../pcre-8.38 --with-http_ssl_module

make  

sudo make install  



编译安装完成, 测试启动、重启、停止:

cd /usr/local/nginx  

  

####4. 启动 

sudo sbin/nginx     #浏览器访问 127.0.0.1 测试是否成功启动  

####5. 重启

sudo sbin/nginx -s reload  

####6. 停止  

sudo sbin/nginx -s stop  


##3.最后Nginx支持apache集群配置

*  进入nginx目录  

bogon:conf xuws$ cd /usr/local/nginx/conf/

*  编辑nginx.conf 


#user  nobody;

worker_processes  1; #工作进程的个数,一般与计算机的cpu核数一致  

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {

    worker_connections  1024; #单个进程最大连接数(最大连接数=连接数*进程数) 

}

http {

    include       mime.types; #文件扩展名与文件类型映射表

    default_type  application/octet-stream; #默认文件类型

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

    #                  '$status $body_bytes_sent "$http_referer" '

    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;

    #tcp_nopush     on;

    #keepalive_timeout  0;

    keepalive_timeout  65;

    #gzip  on;

    #服务器的集群

    upstream  wxtech421.cn {   

        server    127.0.0.1:8082  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。  

        server    127.0.0.1:8083  weight=1;

    } 

    #当前nginx配置

    server {

        listen       80;

        server_name  www.wxtech421.cn; #当前服务的域名  

        #charset koi8-r;

        location / {  

            proxy_pass http://wxtech421.cn;  

            proxy_redirect default;  

        } 

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

        # proxy the php scripts to Apache listening on 127.0.0.1:80

        #

        #location ~ \.php$ {

        #    proxy_pass   http://127.0.0.1;

        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        #

        #location ~ \.php$ {

        #    root           html;

        #    fastcgi_pass   127.0.0.1:9000;

        #    fastcgi_index  index.php;

        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

        #    include        fastcgi_params;

        #}

        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        #location ~ /\.ht {

        #    deny  all;

        #}

    }

    # another virtual host using mix of IP-, name-, and port-based configuration

    #

    #server {

    #    listen       8000;

    #    listen       somename:8080;

    #    server_name  somename  alias  another.alias;

    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}

    # HTTPS server

    #

    #server {

    #    listen       443 ssl;

    #    server_name  localhost;

    #    ssl_certificate      cert.pem;

    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;

    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;

    #    ssl_prefer_server_ciphers  on;

    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}

}

*  最后启动nginx (root权限哦~)



二,Ubuntu搭建SVN服务器

系统安装软件一般在/usr/share,可执行的文件在/usr/bin,配置文件可能安装到了/etc下等。


* 文档一般在 /usr/share

* 可执行文件 /usr/bin

* 配置文件 /etc

* lib文件 /usr/lib


首先安装SVN:


1.安装subversion,命令:

ubuntu@VM-0-4-ubuntu:~$ sudo apt-get install subversion


2.建仓库,命令:

ubuntu@VM-0-4-ubuntu:/usr/xuws_web$ sudo svnadmin create /usr/xuws_web/TaiU_hotelV2.7


3.进入/usr/xuws_web/TaiU_hotelV2.7/conf目录,修改svnserve.conf 


匿名访问的权限,可以是read,write,none,默认为read 

anon-access = none 


认证用户的权限,可以是read,write,none,默认为write 

auth-access = write 


密码数据库的路径,去掉前面的#

password-db = passwd


4.修改/usr/xuws_web/TaiU_hotelV2.7/conf/passwd: 


[users] #[users]前面得#去掉 


admin = admin 


前面是用户名,后面是密码。


然后安装Apache:

1,Apache安装命令:


ubuntu@VM-0-4-ubuntu:/usr/xuws_web/TaiU_hotelV2.7/conf$ sudo apt-get install apache2


2,配置Apache


修改端口号,防止冲突:

root@VM-0-4-ubuntu:/etc/apache2# cd /etc/apache2/


root@VM-0-4-ubuntu:/etc/apache2# vi ports.conf 


# have to change the VirtualHost statement in

# /etc/apache2/sites-enabled/000-default.conf

Listen 81

<IfModule ssl_module>

        Listen 8443

</IfModule>

<IfModule mod_gnutls.c>

        Listen 8443

</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


3,启动apache


root@VM-0-4-ubuntu:/etc/apache2# sudo apache2ctl -k start


4,安装libapache2-svn,命令行:


root@VM-0-4-ubuntu:/etc/apache2# sudo apt-get install libapache2-svn


5,添加subversion管理用户及subversion组


root@VM-0-4-ubuntu:/etc/apache2# adduser xuws


root@VM-0-4-ubuntu:/etc/apache2# addgroup svn_group


root@VM-0-4-ubuntu:/etc/apache2# addgroup xuws svn_group


5,给版本仓库权限。 这里要为apache用到的www-data添加权限 


root@VM-0-4-ubuntu:/usr/xuws_web# chown -R root:svn_group /usr/xuws_web/TaiU_hotelV2.7


root@VM-0-4-ubuntu:/usr/xuws_web# chown -R www-data:www-data /usr/xuws_web/TaiU_hotelV2.7


root@VM-0-4-ubuntu:/usr/xuws_web# chmod -R g+rws /usr/xuws_web/TaiU_hotelV2.7/


6.用htpasswd创建密码文件,取名pwdfile 


htpasswd -c /home/svn/project/conf/pwdfile xuws


7.修改/home/svn/project/conf/authz。 


加入: 

[/] 

admin= rw 

给权限,否则无法访问。


8.修改 /etc/apache2/mods-enabled/dav_svn.conf 

最后面加上:


<Location /svn>

  DAV svn

  #SVNPath /usr/xuws_web/TaiU_hotelV2.7

  SVNParentPath /usr/xuws_web//usr/xuws_web

  AuthType Basic

  AuthName "Weishun.Xu Svn Server"

  AuthUserFile /usr/xuws_web/TaiU_hotelV2.7/conf/pwdfile

  AuthzSVNAccessFile /usr/xuws_web/TaiU_hotelV2.7/conf/authz

  Require valid-user

</Location>


9.

SVNParentPath 是/home/svn, 

如果要写成SVNPath,那么就是/home/svn/project


添加成员: 

上面我们用tpasswd创建密码文件,取名pwdfile。使用的命令是:htpasswd -c /home/svn/project/conf/pwdfile admin 

admin是用户名,而如果要添加成员,则-c就不需要了。 

htpasswd /home/svn/project/conf/pwdfile admin2


访问:http://hostname/svn/project 就可以进入SVN服务器。


附: 

SVN关闭命令:root@VM-0-4-ubuntu:/home/svn/xuws_web/conf# sudo killall svnserve


SVN启动命令:root@VM-0-4-ubuntu:/home/svn/xuws_web/conf# svnserve -d -r /home/svn/xuws_web/


apache重启命令:sudo /etc/init.d/apache2 restart



如果杀不死svnserver, 

ps -ef|grep svnserve 

找到PID,sudo kill -9 进程号 

这样就杀死了


本地上传文件:


bogon:Documents xuws$ sudo scp  /Users/xuws/Documents/TaiU_hotel_V2.6/app/TSM-POS-2.0.63-131.apk ubuntu@111.231.17.77:/var/www/html/taiu_app


# **至此大功告成**



以上是关于从零开始搭建Nginx服务器以及SVN简单配置的主要内容,如果未能解决你的问题,请参考以下文章

从零开始搭建系统1.2——Nginx安装及配置

从零开始学OpenDaylight之四:Maven工具

SVN+nginx配置(亲试)

从零开始的异界生活(偏了)从零开始搭建lamp服务ECShop,简单快速

Linux下 NVIDIA显卡驱动 + CUDA + Anaconda 安装配置全流程(记录深度学习服务器环境从零开始搭建)

Elasticsearch从零开始搭建ES集群并且集成到Springboot,更好的服务电商类等需要全文索引的项目